system.c

来自「这里有很多我自己做的凌阳单片机源程序」· C语言 代码 · 共 112 行

C
112
字号
#include<spce061a_chf.h>
#include"bit.h"
#include"TCS230.h"
extern timer;
///////////////////////////////////////////
//函数:void init_IO(void)
//描述:IO口初始化
//参数:无
//返回:无
/////////////////////////////////////////////
void init_IO(void)
{
	PA_Dir->bit.bit0=1;
	PA_Attrib->bit.bit0=1;
	S0=1;
	PA_Dir->bit.bit0=1;
	PA_Attrib->bit.bit0=1;
	S1=0;//20%
	PA_Dir->bit.bit0=1;
	PA_Attrib->bit.bit0=1;
	S2=1;
	PA_Dir->bit.bit0=1;
	PA_Attrib->bit.bit0=1;
	S3=0;//Clear
	PA_Dir->bit.bit0=0;
	PA_Attrib->bit.bit0=0;
	out=0;
}
///////////////////////////////////////////
//函数:unsigned int Red(void)
//描述:启用红色滤波器
//参数:无
//返回:在0.25s时间的频率计数值
/////////////////////////////////////////////
unsigned int Red(void)
{
	unsigned int counter=0;
	S2=0;
	S3=0;
	asm("irq on");
	while(timer==0xffff)
	{
		if(out==1)
		{
			counter++;
			//*P_Watchdog_Clear=0x01;		
			while(out==1)
			{
				*P_Watchdog_Clear=0x01;
			}
		}
	}
	asm("irq off");
	timer=0x0000;
	return counter;
}
///////////////////////////////////////////
//函数:unsigned int Blue(void)
//描述:启用蓝色滤波器
//参数:无
//返回:在0.25s时间的频率计数值
/////////////////////////////////////////////
unsigned int Blue(void)
{
	unsigned int counter=0;
	S2=0;
	S3=1;
	asm("irq on");
	while(timer==0xffff)
	{
		if(out==1)
		{
			counter++;
			//*P_Watchdog_Clear=0x01;		
			while(out==1)
			{
				*P_Watchdog_Clear=0x01;
			}
		}
	}
	asm("irq off");
	timer=0x0000;
	return counter;
}
///////////////////////////////////////////
//函数:unsigned int Green(void)
//描述:启用绿色滤波器
//参数:无
//返回:在0.25s时间的频率计数值
/////////////////////////////////////////////
unsigned int Green(void)
{
	unsigned int counter=0;
	S2=1;
	S3=1;
	asm("irq on");
	while(timer==0xffff)
	{
		if(out==1)
		{
			counter++;
			//*P_Watchdog_Clear=0x01;		
			while(out==1)
			{
				*P_Watchdog_Clear=0x01;
			}
		}
	}
	asm("irq off");
	timer=0x0000;
	return counter;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?