📄 timer3.c
字号:
#include "typedef.h"
#include "f2407regs_c.h"
extern uchar counterTime;
extern uchar b_com_success;
extern uchar b_com_counter;
extern uchar bFlashError;
extern uchar flashErrorCounter;
extern uchar syncTimeoutCounter;
extern uchar syncTimeoutFlag ;
extern uchar syncTimeoutCounter_out;
extern uchar syncTimeoutFlag_out;
extern uchar bReadTag;
extern uchar readTagCounter;
extern uchar bReadyReadTag;
extern uchar readyReadCounter;
extern uchar bPowerUp;
extern uchar PowerUpCounter;
extern uchar bAlarm ;
extern uchar alarmCounter;
extern uchar bufferReadCouner;
extern uchar scanReadCounter;
void initTimer3();
void interrupt T3INT(void);
void initTimer3()
{
asm(" setc SXM");
asm(" clrc OVM");
asm(" clrc CNF");
IMR |= 0x02; // int2
IFR = 0xffff;
EVBIMRA |= 0x0080; //允许定时器3 的周期中断
EVBIFRA &= 0x0080; //清除定时器1的周期中断
T3CON = 0x170c; // x/128
//T3PR = 62500; // 200ms added 20050825
T3PR = 31250; // 100ms added 20051129
T3CNT = 0x00;
T3CON |= 0x0040; //启动
}
void interrupt T3INT(void)
{
uint flag;
flag = EVBIFRA & 0x0080;
if(flag == 0x0080)
{
counterTime ++;
if(bReadTag == 0x01)readTagCounter ++;
if(b_com_success)b_com_counter ++; //串口通讯灯计数器
if(bFlashError)flashErrorCounter ++; //flash 错误指示灯计数器
if( syncTimeoutFlag == 0x01)syncTimeoutCounter ++;
if( syncTimeoutFlag_out == 0x01)syncTimeoutCounter_out ++;
if(bReadyReadTag == 1)readyReadCounter ++;
if(bPowerUp == 1) PowerUpCounter ++;
if(bAlarm == 0x01) alarmCounter ++;
bufferReadCouner ++;
scanReadCounter ++;
T3CNT = 0;
EVBIFRA |= 0x080; //clr period int flag
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -