打印

请教LPC1114中断哪里设置错了

[复制链接]
3880|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
profess|  楼主 | 2011-5-2 16:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*********************************************************************************************************
** Function name:       timer1Init
** Descriptions:        32位定时器1初始化函数
** input parameters:    无
** output parameters:   无
** Returned value:      无
*********************************************************************************************************/
void timer1Init (void)
{
    SYSAHBCLKCTRL |= (1ul << 10);                                        /*  打开定时器模块              */
    //IOCON_PIO1_0   = PIO1_0_CON;
   
    TMR32B1IR      = 1;
    TMR32B1PR       = 0;        /* 设置分频系数    */
    TMR32B1MCR     = 3;        /* 设置MR0 匹配后复位TC  */
             /* 并产生中断     */
    TMR32B1MR0     = 0x0E4E1C00;    //FAHBCLK / 1;      /* 设置中断时间    */
    TMR32B1TCR     = 0x01;       /* 启动定时器     */
   
   
    zyIsrSet(NVIC_TIMER32B1, (unsigned long)timer1Isr, PRIO_TWO);       /*  设置外部中断并使能          */
}

经过以上初始化之后,仿真发现并没有进入timer1Isr,而是进入了以下中断:
/*********************************************************************************************************
** Function name:           defaultVectorHandle
** Descriptions:            默认异常处理程序
** input parameters:        none
** output parameters:       none
** Returned value:          none
*********************************************************************************************************/
void defaultVectorHandle (void)
{
#ifdef DEBUG
    while (1);
#else
    zyReset(ZY_HARD_RESET);
#endif                                                                  /*  DEBUG                       */
}

请问是哪里设置错了,导致没有进入正确的中断函数。

相关帖子

沙发
profess|  楼主 | 2011-5-3 09:07 | 只看该作者
求救求救,捯饬了一晚还是没搞定

使用特权

评论回复
板凳
bit6019| | 2011-5-4 18:49 | 只看该作者
不懂,帮顶啊!

使用特权

评论回复
地板
lo_xiaohua_ve| | 2011-5-7 11:51 | 只看该作者
以下是我10ms中断的配置,用的也是Timer32-1,希望对你有所帮助

#define                BASETIMER_INTERVAL        (SystemAHBFrequency/800 - 1)                        // 定时器计数值

void BaseTimerInit(uint32_t TimerInterval)
{
        /* Some of the I/O pins need to be clearfully planned if
        you use below module because JTAG and TIMER CAP/MAT pins are muxed. */
        LPC_SYSCON->SYSAHBCLKCTRL |= (1<<10);                /* Enable AHB clock to the Timer32-1. */

        LPC_TMR32B1->PR  = 0x07;                /* set prescaler to 8 */

        LPC_TMR32B1->MR0 = TimerInterval;

        LPC_TMR32B1->MCR = 3;                                /* Interrupt and Reset on MR0 */

        /* Enable the TIMER320 Interrupt */
        NVIC_EnableIRQ(TIMER_32_1_IRQn);
        EnableBaseTimer();
}

使用特权

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

本版积分规则

0

主题

7

帖子

1

粉丝