#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;
}