Модулятор.

gena321
Offline
Зарегистрирован: 19.01.2019
Здравствуйте
Есть красный и зеленый PB7, PA8 , как получить голубой на PB6 ?

HardwareTimer pwmtimer1(1);
HardwareTimer pwmtimer4(4);

int out1 = PB7;  //T4CH2
int out2 = PA8; //T1CH1
int out3 = PB6;

void setup()
{
  pinMode(out1, PWM);  //T4CH2, 20 kHz
  pinMode(out2, PWM);  //T1CH1, 2kHz
  pinMode(out3, PWM);

  pwmtimer1.pause();
  pwmtimer1.setPrescaleFactor(10);
  pwmtimer1.setOverflow(3600);
  pwmtimer1.setCompare(TIMER_CH1, 1800);
  pwmtimer1.refresh();
  pwmtimer1.resume();

  pwmtimer4.pause();
  pwmtimer4.setPrescaleFactor(1);
  pwmtimer4.setOverflow(3600); // 20kHz
  pwmtimer4.setCompare(TIMER_CH2, 1800);
  pwmtimer4.refresh();
  pwmtimer4.resume();
}
void loop() {
}

 

 

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

ловишь фронты на PB7 и отключаешь выход PA8 по заднему фронту, а по переднему - включаешь

Kakmyc
Offline
Зарегистрирован: 15.01.2018

Один транзистор и один элемент "&".

Ну и вопрос: а точно на PB6 есть ЦАП ?

gena321
Offline
Зарегистрирован: 19.01.2019
Спасибо, сделал
void loop() {



  if ((digitalRead(PB7) == HIGH) && (digitalRead(PA8) == HIGH))
    {
    //digitalWrite(PB6, 1);
    digitalWrite(out3, 1);
  }
else
{
    //digitalWrite(PB6, 0);
  digitalWrite(out3, 0);
  }


}

 

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

для точности процесса ловить лучше прерыванием видимо или один элемент &

b707
Offline
Зарегистрирован: 26.05.2017

gena321 пишет:

Спасибо, сделал
void loop() {



  if ((digitalRead(PB7) == HIGH) && (digitalRead(PA8) == HIGH))
    {
    //digitalWrite(PB6, 1);
    digitalWrite(out3, 1);
  }
else
{
    //digitalWrite(PB6, 0);
  digitalWrite(out3, 0);
  }


}

 

это щляпа полная, для реальной работы непригодно

как уже сказали выше - используйте прерывания. На первом таймере заведите два обработчика - по переполнению и по совпадению, в одном разрешайте второй таймер, в другом запрещайте

gena321
Offline
Зарегистрирован: 19.01.2019

Так проще, возникнуть птьоблемы буду пробовать как подсказывают - сложнее