📄 timer.c
字号:
#include "timer.h"
#include "ap.h"
extern AP_ATTRIBUTE apAttribute;
void Timer3Init(void)
{
T3IE=1;
TIMER3_INT_ENABLE(T3INT_ON);
T3IF=0;
TIMIF &= ~0x07;//清除中断标志位
T3CC0=maxticks; //最大为11ms
T3CTL=T3CTL|0x91;//down only one mode and DIV is 2,T3的TICKS为64US模式为向下一次性计数
}
void Timer1Init(void)
{
T1IE=1;
T1IF=0;
OVFIM=1;
T1CC0H=0x7A;
T1CC0L=0x12;
T1CTL=T1CTL|0x06;//设置为模式3,自动增到目标中断再自动重计,设置分频1/8
}
BYTE ReadTimer3CNT(void)
{
BYTE count=T3CC0;
return count-T3CNT;
}
#pragma vector=T3_VECTOR
__interrupt void timer3_IRQ(void)
{
GLOBAL_INT_ENABLE(INT_OFF);
T3IF=0;
TIMIF &= ~0x07;//清除中断标志位
TIMER3_START(T3_HALT);//为定时器重新装配
apAttribute.flags.bit.time3over=TRUE;
GLOBAL_INT_ENABLE(INT_ON);
}
#pragma vector=T1_VECTOR
__interrupt void timer1_IRQ(void)
{
GLOBAL_INT_ENABLE(INT_OFF);
T1IF=0;
T1CTL=T1CTL&(~0x10);
if(apAttribute.dayTime<86400)
apAttribute.dayTime++;
else
apAttribute.dayTime=0x0000; //24小时到了清0
GLOBAL_INT_ENABLE(INT_ON);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -