ucos-ii lpc2138的定时中断怎么进入不了
staticvoidTmr_TickInit (void){
CPU_INT32Upclk_freq;
CPU_INT32Utmr_reload;
/* VIC TIMER #0 Initialization */
VICIntSelect &= ~(1 << VIC_TIMER0); /* Enable interrupts */
VICVectAddr2= (CPU_INT32U)Tmr_TickISR_Handler; /* Set the vector address */
VICVectCntl2= 0x20 | VIC_TIMER0; /* Enable vectored interrupts */
VICIntEnable= (1 << VIC_TIMER0); /* Enable Interrupts */
pclk_freq = BSP_CPU_PclkFreq();
tmr_reload = pclk_freq / OS_TICKS_PER_SEC;
T0TCR = 0; /* Disable timer 0. */
T0PC = 0; /* Prescaler is set to no division. */
T0MR0 = tmr_reload;
T0MCR = 3; /* Interrupt on MR0 (reset TC) */
T0CCR = 0; /* Capture is disabled. */
T0EMR = 0; /* No external match output. */
T0TCR = 0x01; /* Enable timer 0 */
}
void Tmr_TickISR_Handler (void)
{
T0IR = 0xFF; /* Clear timer #0 interrupt */
//LED_ON();
OSTimeTick(); /* Call uC/OS-II's OSTimeTick() */
}
前一个函数式设置定时器0,后一个是服务子程序,uc编译和运行已经没问题了,但是tick总是为零,没有调度其他任务,iar观测第一次运行任务切换次数3次,清零后任务切换次数为0,我怀疑是 定时器0没有进中断,没有系统时钟的原因,但是看上边的设置没有看出问题,请高手赐教 自己做个沙发,顶下 等待高手中。。。。。。。。。。 路过帮顶 依然等待高手,谢谢楼上帮顶 哈哈 lpc2138 是 ARM7TDMI-S 内核的 CPU.
void Tmr_TickISR_Handler (void) 这样定义中断函数是不行的.
要用 __irq关键词定义中断函数. airwill 发表于 2012-12-18 13:42
lpc2138 是 ARM7TDMI-S 内核的 CPU.
void Tmr_TickISR_Handler (void) 这样定义中断函数是不行的.
要用 __i ...
哈哈谢谢谢谢 LPC2138,很早之前的ARM7产品了,现在新产品还用这个?
建议切换到Cortex-M4, 据称 这个器件有些问题哦,也很久了,不希望现在再使用了
页:
[1]