打印
[ARM入门]

求助:关于用LPC Time3 做的延时程序

[复制链接]
1364|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jaijai9898|  楼主 | 2013-7-25 13:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void init_timer ()
{
  LPC_SC->PCONP |= 1<<23;  //使能TIME3
}


void Tim3_delayMs( uint32_t delayInMs)
{
LPC_TIM3->TCR = 0x02;                                      /* reset timer */
LPC_TIM3->PR  = 0x00;                                       /* set prescaler to zero */
LPC_TIM3->MR0 = delayInMs * (9600000 / 1000-1);
LPC_TIM3->IR  = 0xff;                                          /* reset all interrrupts */
LPC_TIM3->MCR = 0x04;                                     /* stop timer on match */
LPC_TIM3->TCR = 0x01;                                     /* start timer */
  
  /* wait until delay time has elapsed */
while (LPC_TIM3->TCR & 0x01);
return;
}

通过调用函数void Tim3_delayMs() 来获得延时效果,问题是:只有在第一次调用的时候延迟有效果,而在第二次调用是无延迟效果。
想请教一下大家该怎么改。

相关帖子

沙发
啥是arm| | 2013-7-26 08:38 | 只看该作者
不懂LPC 但你的问题可能是第二次时,你的定时初值没有被赋给某个定时寄存器吧

使用特权

评论回复
板凳
long870912| | 2013-7-26 15:40 | 只看该作者
路过!

使用特权

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

本版积分规则

4

主题

18

帖子

0

粉丝