这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 2146 请教2146的定时器问题

共2条 1/1 1 跳转至

2146 请教2146的定时器问题

院士
2006-09-17 18:14:16     打赏
2146 请教2146的定时器问题



关键词: 请教     定时器     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 最近用LPC2146做了块扳子,正在调试中,却发现其定时器使用上有问题,不知各位大虾是否碰到相同问题?怎么解决的?
#include "config.h"

#define        BEEPCON        0x00008000

void    Time0Init()
{
    T0PR=99;
    T0MCR=0x03;
    T0MR0=221184;
    T0TCR=0x03;
    T0TCR=0x01;
}
        int main (void)
{
    PINSEL0=0x00000000;
    IO0DIR=BEEPCON;
    Time0Init();    
    while(1);
           {
            while((T0IR&0x01)==0);
            T0IR=0x01;
            if((IO0SET&BEEPCON)==0)
         IO0SET=BEEPCON;
       else
         IO0CLR=BEEPCON;
            }
    return 0;
}
这是ZLG提供的原程序,模板也是ZLG的,我用的22.1184M的晶振,理论上定时器应该0.1s翻转一次IO输出的,可实际上是4s一次,相差40倍,不知是为什么,望各位大虾不吝赐教 1: re   首先,你必须在config.h文件中修改你的外部晶振值,默认是11059200,那么你要改为: 22118400.
   其次,你的定时器分频值为100,所以你要定时0.1s,建议这样设置:
   T0PR= 0;
   T0MR0=pclk/100;
  具体为什么要这样做,请参考深入浅出的上册.

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]