我是想通过定时器0实现中断定时 void PLL_init()
{
CLKMD = 0x2cd4; //fclk = 100MHz, clkout = 50MHz
} void timer0_init()
{
PRD0 = 9999;
PRSC0 = 9;
TCR0 = 0x0D38; //TOUT = 500Hz
}
void INT_init()
{
ST1_55 |= 1<<11; //失能所有中断
IER0 |= 1<<4; //使能定时器0, 是这样设置吗?,
ST1_55 &= ~(1<<11); //开所有中断
}
interrupt void timer0(void) //中断函数就是为了控制一个引脚的电平
{
cnt++;
if(1000 == cnt)
{
if(flag&0x01)
{
ST1_55 |= (1<<13);
cnt = 0;
flag = ~flag;
}
else
{
ST1_55 &= ~(1<<13);
cnt = 0;
}
}
}
main()
{
PLL_init();
timer0_init();
INT_init();
TCR0 &= ~(1<<10); TCR0 的TLB = 0
TCR0 &= ~(1<<4); //启动定时器
ST1_55 &= ~(1<<13); //
while(1); } 中断向量表的设置: _VECSTART:
.ivec _c_int00, C54X_STK
nmi .ivec no_isr
nop_16
int0 .ivec no_isr
nop_16
int1 .ivec no_isr
nop_16
int2 .ivec _timer0 //这里是这样设置对吗?
nop_16
int3 .ivec no_isr
nop_16
int4 .ivec no_isr
nop_16
int5 .ivec no_isr
nop_16
int6 .ivec no_isr
上面的设置之后能关联中断函数和中断向量表吗?还需要其他的设置吗? 我就是不太明白,当定时器0发生中断后怎么找到我的中断函数呢?
|