mainc.c
来自「某种型号的取暖器的控制软件,包括高压打火,气体检测」· C语言 代码 · 共 130 行
C
130 行
#include "externh.h"
//#define SetOSC(1) (ClrBit(PORTD,0))
//#define SetOSC(0) (SetBit(PORTD,0))
GOB g;
U16 us[5];
void SetMode(U8);
void SetOSC(U8 os);
int main(void)
{
SystemInit();
g.State=0;
IntEn();
Delay(2);
// PowerOn();
wdt_enable(WDTO_250MS);
while(1){
wdt_reset();
if(g.Flag.ms10){
g.Flag.ms10=0;
KeyScan();
}
switch(g.State){
case 0:
GetKey();
if(ONOFF==Key.hz){
PowerOn();
g.State=1;
}
break;
case 1:
SetOSC(1);
SetMode(1);
DianTimer=1000;
g.State=2;
break;
case 2:
GetKey();
if(ONOFF==Key.hz){
SetMode(0);
PowerOff();
break;
}
if(DianTimer){
if(ChkBit(PINB,0)){
SetOSC(0);
g.State=3;
}
break;
}
SetOSC(0);
PowerOff();
g.State=0;
break;
case 3:
GetKey();
if(!ChkBit(PINB,0)){
PowerOff();
g.State=0;
}
if(ONOFF==Key.hz){
SetMode(0);
PowerOff();
break;
}
if(BIG==Key.hz){
SetMode(2);
break;
}
if(SMALL==Key.hz){
SetMode(1);
break;
}
break;
}
// g.Flag.ms10=0;
}
}
void SetOSC(U8 os)
{
if(os){
SetBit(TCCR0A,COM0A0);
ClrBit(TCCR0A,COM0A1);
ClrBit(PORTD,0);
}else{
ClrBit(TCCR0A,COM0A0);
SetBit(TCCR0A,COM0A1);
SetBit(PORTD,0);
}
}
void SetMode(U8 ch)
{
switch(ch){
case 0:
SetBit(BIG_1S_P,BIG_1S);
SetBit(BIG_H_P,BIG_H);
ClrBit(LED_BIG_P,LED_BIG);
SetBit(SMALL_1S_P,SMALL_1S);
SetBit(SMALL_H_P,SMALL_H);
ClrBit(LED_SMALL_P,LED_SMALL);
// Delay(100);
break;
case 1:
ClrBit(SMALL_1S_P,SMALL_1S);
ClrBit(SMALL_H_P,SMALL_H);
SetBit(LED_SMALL_P,LED_SMALL);
Delay(20);
SetBit(BIG_1S_P,BIG_1S);
SetBit(BIG_H_P,BIG_H);
ClrBit(LED_BIG_P,LED_BIG);
Delay(30);
SetBit(SMALL_1S_P,SMALL_1S);
break;
case 2:
ClrBit(BIG_1S_P,BIG_1S);
ClrBit(BIG_H_P,BIG_H);
SetBit(LED_BIG_P,LED_BIG);
Delay(20);
SetBit(SMALL_1S_P,SMALL_1S);
SetBit(SMALL_H_P,SMALL_H);
ClrBit(LED_SMALL_P,LED_SMALL);
Delay(30);
SetBit(BIG_1S_P,BIG_1S);
break;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?