#define _ISR_STARTADDRESS 0x33ffff00
#define pIsr_Timer (*(unsigned *)(_ISR_STARTADDRESS+0x48)) //中断向量的地址
2440 (Timer0):
void Timer_Init()
{
rINTMSK &=(~1<<10); // 打开中断
pIsr_Timer = (U32)MyTimer;
rTCFG0 &= ~0xff;
rTCFG0 |= 15; //prescaler = 15+1
rTCFG1 &= ~0xf;
rTCFG1 |= 2; //mux = 1/8
rTCNTB0 = (PCLK>>7)/1000-1;
rTCMPB0 = rTCNTB0>>1; // 50%
rTCON &= ~0x1f;
rTCON |= 0xb; //disable deadzone, auto-reload, inv-off, update TCNTB0&TCMPB0, start timer 0
rTCON &= ~2; //clear manual update bit
}
void __irq MyTimer()
{
dosomething();
}
MMU_Init();必须在main中添加,弄了好久 后来发现someone的blog。。。