关于LPC9107定时器/计数器问题,纳闷..

[复制链接]
2973|4
 楼主| yzgwxflove 发表于 2007-12-20 21:35 | 显示全部楼层 |阅读模式
最近用LPC900系列的片子,发现一些和定时器/计数器相关的问题 

先说第一个:
  LPC9107的芯片,外部脉冲从T1(P0.7)输入 (T1C/T = 0),可是T1中并不计数,如果对PCLK计数(T1C/T = 1),则T1计数正常,测试如下程序:

//-------------------------------------------------------------------//功能:定时器初始化
//-------------------------------------------------------------------
void TimerInit(void)
{
    TMOD = 0x51;        //T0为16位定时器 T1为外部计数器
    //TMOD = 0x11;        //T0为16位定时器 T1为定时器

    TH1 = 0xff;
    TL1 = 0x00;    

    TR1 = 1;
    ET1 = 1;
}

//-------------------------------------------------------------------
//功能:管脚模式初始化
//-------------------------------------------------------------------
void IOInit(void)
{
     P1M1 = 0x00;
     P1M2 = 0x07;             //P1.0 P1.1 P1.2推挽输出

     P0M1 = P0M1 & 0xd9;
     P0M2 = P0M2 | 0x26;    // P0.7(T1)高阻抗输入

     KB5 = 0;
}
//-------------------------------------------------------------------
//
//-------------------------------------------------------------------
void main(void)
{
    TimerInit();
    IOInit();
    EA = 1;

    while (1)
    {
              ;
    }
}
//-------------------------------------------------------------------
//功能:对脉冲计数
//-------------------------------------------------------------------
void Timer1_interrupt(void) interrupt 3 using 3
{
    TR1 = 0;
    TH1 = 0xff;
    TL1 = 0x00;    
    TR1 = 1;

    RxD = !RxD;;    //闪烁指示进入中断
}

谢谢大家看看,是不是别的原因造成的?
 
 
 楼主| yzgwxflove 发表于 2007-12-20 21:37 | 显示全部楼层

re

外部脉冲肯定是送进去了,用示波器看的,1KHz左右。
 楼主| yzgwxflove 发表于 2007-12-21 08:45 | 显示全部楼层

大家帮我看看

看手册没有看出LPC的定时器和标准51有什么差别,为什么不行?谢谢了
 楼主| yzgwxflove 发表于 2007-12-21 11:34 | 显示全部楼层

谢谢LS

测试程序应该没有什么问题,是不是还有什么寄存器要设置?
 楼主| yzgwxflove 发表于 2007-12-21 18:05 | 显示全部楼层

结果

和LPC936对比测试,LPC9107的T1外部脉冲输入存在问题!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

179

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部