📄 timer0.c
字号:
#include "def.h"
#include "2410addr.h"
#include "config.h"
#include "board.h"
#include "utils.h"
#include "key.h"
#define TICKS_PER_SEC 100
void Timer0ISR(void);
void DebugUNDEF(void)
{
printf("!!!Enter UNDEFINED. \n");
}//BreakPoint
void DebugSWI(void)
{
printf("!!!Enter SWI. \n");
}
void DebugABORT(void)
{
printf("!!!Enter ABORT 0\r\n");
}
void DebugABORT1(void)
{
printf("!!!Enter ABORT 1\r\n");
}
void DebugFIQ(void)
{
printf("!!!Enter FIQ.\n");
}
void BreakPoint(void)
{
printf("!!!Enter FIQ. n");
}
//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= 0x00000002; // mux0 = 1/2
//timetick is 1000, FCLK=200MHZ
rTCNTB0= 200000000/TICKS_PER_SEC/8; //每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)
{
rINTMSK&=(~(BIT_TIMER0 )); //Default value=0x7ffffff
}
void InstallIrqHandler(void)
{
pISR_UNDEF = (unsigned) DebugUNDEF;
pISR_SWI = (unsigned) DebugSWI;
pISR_PABORT = (unsigned) DebugABORT;
pISR_DABORT = (unsigned) DebugABORT1;
pISR_FIQ = (unsigned) BreakPoint;
pISR_EINT0 = (unsigned) BreakPoint;
pISR_EINT1 = (unsigned) BreakPoint;
pISR_EINT2 = (unsigned) BreakPoint;
pISR_EINT3 = (unsigned) BreakPoint;
pISR_EINT4_7 = (unsigned) BreakPoint;
pISR_EINT8_23 = (unsigned) BreakPoint;
pISR_NOTUSED6 = (unsigned) BreakPoint;
pISR_BAT_FLT = (unsigned) BreakPoint;
pISR_TICK = (unsigned) BreakPoint;
pISR_WDT = (unsigned) BreakPoint;
pISR_TIMER0 = (U32) Timer0ISR;
pISR_TIMER1 = (unsigned) BreakPoint;
pISR_TIMER2 = (unsigned) BreakPoint;
pISR_TIMER3 = (unsigned) BreakPoint;
pISR_TIMER4 = (unsigned) BreakPoint;
pISR_UART2 = (unsigned) BreakPoint;
pISR_LCD = (unsigned) BreakPoint;
pISR_DMA0 = (unsigned) BreakPoint;
pISR_DMA1 = (unsigned) BreakPoint;
pISR_DMA2 = (unsigned) BreakPoint;
pISR_DMA3 = (unsigned) BreakPoint;
pISR_SDI = (unsigned) BreakPoint;
pISR_SPI0 = (unsigned) BreakPoint;
pISR_UART1 = (unsigned) BreakPoint;
pISR_NOTUSED24 = (unsigned) BreakPoint;
pISR_USBD = (unsigned) BreakPoint;
pISR_USBH = (unsigned) BreakPoint;
pISR_IIC = (unsigned) BreakPoint;
pISR_UART0 = (unsigned) BreakPoint;
pISR_SPI1 = (unsigned) BreakPoint;
pISR_RTC = (unsigned) BreakPoint;
pISR_ADC = (unsigned) BreakPoint;
}
void Timer0ISR(void)
{
//关闭中断
rINTMSK |=BIT_TIMER0 ;
keyscan();
rSRCPND |= BIT_TIMER0;
rINTPND |= BIT_TIMER0;
//打开中断
EnableTimer0();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -