Одновременный вывод ШИМ
- Войдите на сайт для отправки комментариев
Пнд, 25/03/2013 - 02:00
Делаю имитатор ЭКГ на arduino Atmega 168, пытаюсь сделать вывод сигнала на несколько шим выходов одновременно, на один выход все работает. А если добавить код для второго выхода, то не работает совсем, подскажите в чем проблема, может так делать нельзя?
Вот код всего этого:
int Signal1 = 3; int Signal2 = 5; int Signal3 = 6; int Signal4 = 9; int Signal5 = 10; int Signal6 = 11; int val1 = 0; int val2 = 0; void setup() {} void loop() { //======================== Первый рубец ============================== for (int x = -27; x <= 28; x++){ val1 = (x*x*(-1)/25+30); analogWrite(Signal1, val1); delay(2); } //=================================================================== //=========================== Второй рубец =============================== for (int x = -7; x <= 7; x++){ val1 = (x*x*(-1)*2+100); analogWrite(Signal1, val1); delay(2); } Вот тут не получается: //for (int x = -16; x <= 16; x++){ //val2 = (x*x*(-1)/25+10); //analogWrite(Signal2, val2); //delay(2); //} //======================================================================== //========================== Третий рубец ================================= for (int x = -77; x <= 0; x=x++){ val1 = ((x/10)*(x/10)*(-1))/2+30; analogWrite(Signal1, val1); delay(3); } //========================================================================= //=========================== Четвертый рубец =============================== for (int x = 0; x <= 38; x++){ val1 = (x*x*(-1)/50+30); analogWrite(Signal1, val1); delay(2); } //=========================================================================== analogWrite(Signal1, 20); analogWrite(Signal2, 20); delay(1000); }
Что не работает совсем???
Работает вот так:
этот код:
Но если в первый рубец добавить:
То получается полный ужас:
Тоесть вы хотите сказать, что на 3 выводе дуины у вас сигнал как на картинке берюзовым цветом и как только вы добавляете данный кусок кода не известно куда (нужно указывать хотябы номер строки), то на том же 3 выводе сигнал становится таким как на картике красным цветом?
Если так то покажите код, с которым не работает так как вы хотите, а не код, который работает правильно и если в него что-то дабавить, то он работает не так.
Он становится таким после добавления:
Это до добавления и после (только голубой)
Работает вот так:
Там же код ниже есть
Если выводить одновременно, то первый меняется на графике, а по идее не должен этого делать
Вы понимаете что вы вас невозможно понять? Что за "до", что за "после"?
Попробую я сформулировать ваш вопрос:
Если в дуину залить такой код:
то осциллограмма на 3 выводе такая:
Если же в залить такой код:
то осциллограмма на том же 3 выводе становится такой:
Так? Правильно?