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

📄 timer0.c

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