当输入数据的值为“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
}
}
有谁知道有可能这样做吗?
答案 0 :(得分: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.