用查询法是不行的。如果你的单片机系统很小问题不大,如果你的单片机时庞大的系统。那基本都会出错。
一是查询时间要短,二是会被其他中断插入而导致错误。
所以必须采用中断。用单片机的“输入捕获”这个功能来实现计算持续电平的时间。
遥控器的编码可以自己定义,不过这有国标的。
开始码+数据码+数据反码+重复码
2250 // “1”数字脉冲标准宽度(2250微秒)。
250 // “1”数字脉宽误差容限。
1125 // “0”数字脉冲标准宽度(1125微秒)
250 // “0”数字脉宽误差容限。
13500 // “Start”信号脉冲标准宽度。(13500微秒)
500 // “Start”信号脉宽误差容限。
15000 // “Repeat”信号脉冲标准宽度。(11250微秒)
500 // “Repeat”信号脉宽误差容限。
10800 // 一帧遥控器信号间隔标准宽度。 (108毫秒) |