timer0.c

来自「三星2410的一些DEMO小例程」· C语言 代码 · 共 46 行

C
46
字号
#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 + =
减小字号Ctrl + -
显示快捷键?