【问题标题】:Is it possible to store timer value into a variable?是否可以将计时器值存储到变量中?
【发布时间】:2012-05-21 07:54:17
【问题描述】:

当传入数据的值为“0”时,我使用 DS89C450 timer0 从 0 开始计数,并且它只会在数据为“1”时停止,并且它将与我拥有的值进行比较。但是,是否可以存储计时器计数的值,以便我可以使用 if 循环来比较值。

例如:

for(i=0;i<15;i++)
{
  if(in_data == 0)
  {  
    TH0 = 0x00;          //Set Timer0 to count from 0
    TL0 = 0x00;
    TR0 = 1;             //Start Timer0
    if(in_data == 1)             //if InputData = 1
    { 
       TR0 = 0;          //Stop Timer0
       //Store Timer0 value under "TimerValue"
     }
    if(TimerValue == 2212)         //If TimerValue = 2212(decimal)/08A4(Hex)
    {
      Data[i] = 0x00;               //Set Data[i] = 0
    }
}

有谁知道可以这样做吗?

【问题讨论】:

    标签: c if-statement for-loop timer 8051


    【解决方案1】:

    我猜TH0 持有你的计时器值。

    您应该能够在手册中找到此端口的处理器输入大小。

    那么你就可以了

    //since no more details are provided i'm assuming TH0 and TL0 are 8 bits
    short TimerValue = (TH0 << 8) | TL0; // to store the value.
    

    【讨论】:

    • 嗯,TH0 和 TL0 都有定时器的值。所以即使只存储 TH0,它也不准确,因为它丢失了 TL0 的值
    • 顺便说一句,这是在提出问题时值得一提的。端口的大小以及端口包含什么。
    • 抱歉没有提到端口的大小。是的,TH0 和 TL0 都是 8 位。
    猜你喜欢
    • 2012-04-04
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多