打印
[硬件设计]

求教 如何将arduino中两路PWM输出波形信号从中心对齐改到边...

[复制链接]
2186|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 11122000 于 2015-3-2 20:49 编辑


如图所示,现在实现的只能让两路信号中心对齐,是不是定时器的设定问题?
需要改动到下面这种情况,两路信号边缘对齐。


arduino里面执行语句表达为:
void loop()
{
  
    if ( Enc_PWM1.read() != 0) {
            PWM1_Value += (Enc_PWM1.read()/2) ;//Read data from encoder /*to choose the correct waveform*/
            Enc_PWM1.write(0);//Clear encoder data
            PWM1_Value = constrain(PWM1_Value, 0, 100);
             Timer3.pwm(PWM1_out, PWM1_Value * 10.24);           
            lcd.setCursor(11, 0);
            lcd.print(PWM1_Value);// display Lset value
            lcd.print("%   ");
    }   
     if ( Enc_PWM2.read() != 0) {
            PWM2_Value -= (Enc_PWM2.read()/2) ;//Read data from encoder
            Enc_PWM2.write(0);//Clear encoder data turn more 0from the waveform
            PWM2_Value = constrain(PWM2_Value, 0, 100);
            Timer3.pwm(PWM2_out, PWM2_Value * 10.24); // analogWrite(PWM2_out, PWM2_Value * 2.55);           
            lcd.setCursor(11, 1);
            lcd.print(PWM2_Value);// display Lset value
            lcd.print("%   ");
    }   
         if ( Enc_Freq.read() != 0) {
            Freq_Value += (Enc_Freq.read()*25) ;//Read data from encoder
            Enc_Freq.write(0);//Clear encoder data
            Freq_Value = constrain(Freq_Value, 100, 20000);
            Timer3.setPeriod(1000000/Freq_Value);
             Timer3.pwm(PWM2_out, PWM2_Value * 10.2);
             Timer3.pwm(PWM1_out, PWM1_Value * 10.2);
    }   

相关帖子

沙发
11122000|  楼主 | 2015-3-2 20:56 | 只看该作者
想让工作模式为边缘对齐PWM输出

使用特权

评论回复
板凳
11122000|  楼主 | 2015-3-3 09:40 | 只看该作者

类似这种调整办法

使用特权

评论回复
地板
林00| | 2017-5-4 15:05 | 只看该作者
楼主成功了吗。想看修改后的波形

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝