打印

ucos-ii lpc2138的定时中断怎么进入不了

[复制链接]
2153|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dzh128@126.com|  楼主 | 2012-12-16 17:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
static  void  Tmr_TickInit (void)
{
    CPU_INT32U  pclk_freq;
    CPU_INT32U  tmr_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没有进中断,没有系统时钟的原因,但是看上边的设置没有看出问题,请高手赐教

相关帖子

沙发
dzh128@126.com|  楼主 | 2012-12-16 18:55 | 只看该作者
自己做个沙发,顶下

使用特权

评论回复
板凳
dzh128@126.com|  楼主 | 2012-12-16 18:56 | 只看该作者
等待高手中。。。。。。。。。。

使用特权

评论回复
地板
xlhtracy| | 2012-12-17 13:15 | 只看该作者
路过帮顶

使用特权

评论回复
5
dzh128@126.com|  楼主 | 2012-12-17 18:15 | 只看该作者
依然等待高手,谢谢楼上帮顶 哈哈

使用特权

评论回复
6
airwill| | 2012-12-18 13:42 | 只看该作者
lpc2138 是 ARM7TDMI-S 内核的 CPU.
void Tmr_TickISR_Handler (void) 这样定义中断函数是不行的.
要用 __irq  关键词定义中断函数.

使用特权

评论回复
7
haitao10086| | 2012-12-20 16:55 | 只看该作者

使用特权

评论回复
8
13039826907| | 2019-8-5 17:43 | 只看该作者
airwill 发表于 2012-12-18 13:42
lpc2138 是 ARM7TDMI-S 内核的 CPU.
void Tmr_TickISR_Handler (void) 这样定义中断函数是不行的.
要用 __i ...

哈哈谢谢谢谢

使用特权

评论回复
9
Synwit华芯微特| | 2019-8-7 11:30 | 只看该作者
LPC2138,很早之前的ARM7产品了,现在新产品还用这个?

建议切换到Cortex-M4,

使用特权

评论回复
10
airwill| | 2019-8-10 18:45 | 只看该作者
据称 这个器件有些问题哦,  也很久了,  不希望现在再使用了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

8

帖子

0

粉丝