微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 9ms脉冲怎么算出来的

9ms脉冲怎么算出来的

时间:10-02 整理:3721RD 点击:
有哪位大虾能帮帮吗,红外发射set-count=672(表示发送9ms脉冲)中672这个数字怎么算出来的呢?

你这个问题有点怪,set=? count?这两个是什么

根据每条指令的指令周期,一条一条的把循环算完

可以慢慢调试啊

你用中断的吧,还有提问题的时候把问题描述的完整一点,坛里有很多单片机高手但是猜谜语高手不多

对啊,我是用中断的。因为是初学,所以很多都不懂。
void ir_send() //发送红外数据
{
set_count=692;//672;//发送编码中的引导码(9ms高电平+4.5ms低电平) (//后为12M晶振下的数值)
irflag=1; //启动红外发射二极管发射
count=0; //中断计数清0
TR0=1;
while(count<set_count);
TR0=0;
}
void timer0()interrupt 1 //定时器0中断
{
count++;
if(irflag==1) ir=~ir; //有发射标志,则发射38khz的矩形波
else ir=1; //否则不发射,即相当于发射编码中的低电平
}
void timer0_init() //定时器初始化
{
EA=1;
TMOD=0x02; //定时0 8位自动重装模式
ET0=1;
TH0=0xe6;//0xf3; //定时13us,38K红外矩形波,晶振24M (//后为12M晶振下的数值)
TL0=0xe6;
}
还望赐教672/692这两个数字是怎么来的,谢谢大虾啦!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top