qq502835899 发表于 2013-4-19 15:49:50

单片机做红外解码和PWM输出;解码影响PWM输出

用STC12C系列的单片机;
3路PWM输出;
红外遥控器接制PWM输出波形脉宽;

碰到的问题:
   
         红外脉冲时长100多ms;影响PWM占空比输出;
   
      造成PWM输出时波形不稳定;



请问各位支个招;

    目前想到的办法:

                用两个单片机;一个只做解码;一个只用来产生PWM;两个之间用串口进行通信;

                软件怎么处理才能用一个单片机就把这个给搞定 ;

qq502835899 发表于 2013-4-19 15:50:26

我先顶个;

shower.xu 发表于 2013-4-19 16:05:24

小定时中断收码,pwm周期控制到到够用就行

qq502835899 发表于 2013-4-19 16:32:27

shower.xu 发表于 2013-4-19 16:05 static/image/common/back.gif
小定时中断收码,pwm周期控制到到够用就行




如上图:

      发码时间固定在一个范围内;

   中断收码时间是固定的一个范围;

   这个时间远大于20ms;


PWM初值计算方式;20ms/255=78us; 定时器初值设置的是50us;

number007cool 发表于 2013-4-19 16:43:02

以前也一直未这个问题纠结    红外解码就很占用资源其他对时间要求精度高的任务就很难办到

不知有没有集成的解码接收芯片

shower.xu 发表于 2013-4-19 16:44:25

不是让你在中断里整个收码,是在中断里判断信号的高低电平,设置标志位和累加计数,其它在主程序里处理。
或者反过来做:
收码在主函数里,三路pwm用定时器模拟,1ms中断一次,把pwm精度放为5%,频率50HZ,一般的马达看不到抖动。也不会影响收码。

tongdayusu 发表于 2013-4-19 16:47:41

所谓底半部

czzhouyun 发表于 2013-4-19 18:45:32

中断放标志,用主程序判断标志处理状态,不会影响

lxa0 发表于 2013-4-19 19:47:16

建议你把红外解码做成一个带点智能型的模块~~~~~~~~~

tonyone 发表于 2013-4-19 23:22:01

pwm中断设标志位,利用这个标志位来红外解码,基本上可以解决问题

qq502835899 发表于 2013-4-20 09:15:58

感谢诸位;问题已经得到解决;

用6楼 shower.xu 的方法;改变PWM的精度;
页: [1]
查看完整版本: 单片机做红外解码和PWM输出;解码影响PWM输出