⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer0.c

📁 三星2410的一些DEMO小例程
💻 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 + -