⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0001.c

📁 aduc7026裸机程序
💻 C
字号:
#include "main.h" 

extern int p;              //优化变量
extern int t;
extern int w; 
extern unsigned char ratiointendh; 	     //eto co2中间转换值
extern unsigned char ratiointendl;	
extern unsigned char rr1;			     //呼吸率转换值
extern unsigned char rr2;			
extern unsigned char factor;	  
extern unsigned char a2;                 //rationint changing number时时的co2值
extern unsigned char a1;

extern unsigned char flagadjust;	
extern unsigned char text;			
extern unsigned char ttflag;
extern unsigned int  countadjust;

extern	int   utem;					//采用得到温度值
extern	int   uco2tem;				//temp variable
extern	int   ureftem;

void SystemInit(); 
void DataProc();
void Hand(); 
 
/********************************************
 *	 定时器0中断服务子程序
 *
 *******************************************/
void IRQ_Handler(void) __irq   
{
  	if(IRQSTA & TIMER0){
		T0CLRI = 0;
		PrintStr("T0 interrupt!");
		NewLine();
		if((countadjust<1000) && (flagadjust==0x00) && (ttflag==0x00)){
			t--;
			if(t == 0){
				if(p > 3000){
					rr1 = 0;
					rr2 = 0;
				}
				if(w == 1){
					SendHex(0x80);SendHex(0x0a);SendHex(0x05);
					SendHex(a1);  SendHex(a2); 	SendHex(0x01);
		          	SendHex(0x00);SendHex(0x00);SendHex(0x00);
				  	SendHex(0x00);SendHex(0x00);SendHex(0x80);
	              	SendHex(0x07);SendHex(0x05);SendHex(a1);
		          	SendHex(a2);  SendHex(0x03);SendHex(rr1);
                  	SendHex(rr2);
                  	w=0;
				}else{ 
					 SendHex(0x80);SendHex(0x07);SendHex(0x05);
			         SendHex(a1);  SendHex(a2);	 SendHex(0x02);
			         SendHex(ratiointendh);
			         SendHex(ratiointendl);
					 w=1;
			    }
				 SendHex(0x80);	SendHex(0x0a); SendHex(0x05);
				 SendHex(a1);	SendHex(a2);   SendHex(0x01);
				 SendHex(0x00);	SendHex(0x04); 
				 SendHex(0x80); SendHex(0x0a); SendHex(0x05);
				 SendHex(a1);	SendHex(a2);   SendHex(0x01);
				 SendHex(0x00);	SendHex(0x00);				
			     t=198;
			}
		}		
	}else{
		PrintStr("Error!");
	}
}

void main()
{
	SystemInit();
	PrintStr("hello begin!");
	NewLine();		
	Hand(); 	
	
	LEDON; 						//开光源
	T0CON 	|= 0x80; 			//T0 run
	while(1){
		uco2tem = ADCChannel(1);
		ureftem = ADCChannel(2);
		utem	= ADCChannel(3);
		DataProc();
	}

	while(1);
	
}
/**********************************
 *	整个系统初始化
 *
 *********************************/
void SystemInit()	 
{
	//the arm core initial ARM内核初始化
	PLLKEY1 = 0xAA;
    PLLCON = 0x01;       //PLL + 32kHz oscillator – default configuration
    PLLKEY2 = 0x55;
    POWKEY1 = 0x01;
   	POWCON = 0x00;	     //the clock configured as 45.088M
    POWKEY2 = 0xF4;

	//the light control	 指示灯P4.2
//	GP4DAT |= (LED2 << 24);	   //set p4.2 as output

	//ADC initial  AD初始化
	ADCInit();

	//Uart initial 19200 串口初始化
	UartInit();

	//time 0  10ms interrupt initial 定时器0初始化
	Timer0Init(); 
}

/*****************************************************
 * 将factor存入falsh永久保存?
 * 函数主要功能是用过串口终端, 用户输入:factor参数
 * 0xa7 factor
 * 否则factor = EDATA1中的值
 *****************************************************/
void Hand()
{
	unsigned char v2 = 0;
	unsigned char tmpv = 0;
//	unsigned char factor = 0;
//	unsigned char ttflag = 0;

	v2 = GetData();
	if(0xa7 == v2){			
		tmpv = GetData();	//输入factor数值 	
		FlashWriteByte(FACTADDR,tmpv);			
		factor = FlashReadByte(FACTADDR);					//factor 
		SendHex(factor);
		
		FlashWriteByte(FACTADDR+1,0x01); // default factor = 0x01  write to flash			
	}else{ 			
		factor  = FlashReadByte(FACTADDR);
	} 		
	while(1){
		tmpv = GetData();
		if((0xCC == tmpv) || (0x80 == tmpv)){
		 	SendHex(0xCC);
			SendByte(' ');
			SendHex(0x01);
			SendByte(' ');
			SendHex(0x33);
			NewLine();

			tmpv = FlashReadByte(FACTADDR+1);
			if (tmpv < 4){
				tmpv += 1;	
				FlashWriteByte(FACTADDR+1,tmpv);
			}
			ttflag = 0;	
			return ;
		}
	}

}

⌨️ 快捷键说明

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