/****************************************************************
函数名称:void Set_User_T16(void)
函数功能:定时器计数定时256us
函数参数:无
函数返回值:无
函数说明:
****************************************************************/
#define USER_TIMER_CONFIG() $ T16M IHRC, /4, BIT10
#define ENABLE_TIMER() SET1 INTEN.2 //$ INTEN T16 //开定时器中断
#define DISENABLE_TIMER() SET0 INTEN.2 //关定时器中断
#define INIT_TIMER_VALUE(n) STT16 n//装载定时器计数值
#define CONST_TIMER_VALUE 0
#define EA_INT() ENGINT//开总中断
#define DIS_INT() DISGINT//关总中断
/**************************************************************/
void Set_User_T16(void)/*定时256us进一次中断 2^10/(16/) = 256us*/
{
//SET0 T16flag;//reset the flag
USER_TIMER_CONFIG();
T16val = CONST_TIMER_VALUE;//256us
INIT_TIMER_VALUE(T16val);
INTRQ = 0;//清除INTRQ
EA_INT();
ENABLE_TIMER();
}
/************************************************
中断服务函数
************************************************/
void Interrupt (void)
{
pushaf;
if (Intrq.T16)/*256us进入一次中断*/
{ // T16 Trig
// User can add code
Intrq.T16 = 0;
T16val = CONST_TIMER_VALUE;
INIT_TIMER_VALUE(T16val);
LED_Scan1();
//LED_scan2();
}
popaf;
}