📄 timer0.c
字号:
#include "2410addr.h"
#include "2410lib.h"
#include "Def.h"
#include "key.h"
#include "timer0.h"
#define TICKS_PER_SEC 100
//Initialze interrupts.
void uHALr_InitInterrupts(void)
{
rINTMOD = 0x0; //All=IRQ mode
rINTMSK = BIT_ALLMSK; //All interrupt is masked.
}//uHALr_InitInterrupts
void InitTimer0(void)
{
rTCFG0= 0x00000000; // prescaler0 = 0
rTCFG1= 0x00000000; // mux0 = 1/2
//timetick is 1000, FCLK=200MHZ
rTCNTB0= 50000000/TICKS_PER_SEC/2; //每10ms扫描一次
rTCMPB0= 0x0;
rTCON=0x2; //update mode for TCNTB0 and TCMPB0.
rTCON=0x9; //timer0 = auto reload, start
}
//Start system timer & enable the interrupt.
void EnableTimer0(void)
{
rINTPND=0x00000000;
rINTMSK&=(~(BIT_TIMER0 )); //Default value=0x7ffffff
}
void __irq Timer0ISR(void)
{
//关闭中断
rINTMSK |=BIT_TIMER0 ;
keyscan();
rSRCPND &= BIT_TIMER0;
rINTPND |= BIT_TIMER0;
//打开中断
EnableTimer0();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -