📄 0001.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 + -