主任务文件,实现状态机管理__main.c

#define __GLOBAL__
#include"global.h" 

#define u8 unsigned char
#define u16 unsigned int

#define Temp_channel 4
    
unsigned char BlankFlag;
static unsigned long Count = 0;
unsigned char device_status;
unsigned char set_temperature;
unsigned char set_time;
//此函数为初始化函数,上电后执行一次
void USER_PROGRAM_INITIAL()  
{
    LIBRARY_RESET();
    BS84C12A_LIBV413_INITIAL();   
    IO_Init();
    Adc_Init();
    Time0_Init();
    _emi=1;   
}

//此函数为用户程序,
void USER_PROGRAM()
{
    BS84C12A_LIBV413();
    Task_key();
    Task_StatusManage();
    Task_Display();
    
    

}

void HeatControl(u8 status)
{
    
}
void MotorControl(u8 status)
{
    
}
u8 ReadTemper(void)
{
    GetAdcValue(Temp_channel);
}
u8 ReadWaterLevel(void)
{
    
}

//状态机处理
void Task_StatusManage(void)
{
    _BEGIN(100);
    switch(device_status)
    {
        case CHECK_STATUS:
        //读EEROM值
        
        break ;
        case RUN_STATUS:
            HeatControl(ENABLE);
            MotorControl(ENABLE);
            
        
        break ;
        case SET_TIME_STUTAS:
        
        break ;
        case SET_TEM_STUTAS:
        
        break ;
        case ALARM_STUTAS:
            HeatControl(DISENABLE);
            MotorControl(DISENABLE);
        
        break ;
        case SLEEP_STUTAS:
        
        break ;
        case WAIT_STUTAS:
            HeatControl(DISENABLE);
            MotorControl(DISENABLE);
        
        break ;
        
        default:
        break;
    }
    _END();    
}
/*

vector
0x04          External
0x08        Touch Key Module
0x0c        Timer/Event Counter
0x10        SIM
0x14        Time Base
0x18        EEROM
0x1c        A/DConverter
*/

//time0中断 1ms
DEFINE_ISR(time0,0x0c)
{
    Count++;
    if(Count%1000 == 0)//1000ms=1s
    {
        BlankFlag = ~BlankFlag;
    }
    
}

//防止外界修改Count
unsigned long GetCount(void)
{
    return Count;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流动的星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值