Официальный сайт компании Arduino по адресу arduino.cc
Собственно описание ниже
В общем, пока писал описание проблемы, понял где ошибка.
Объясню суть, решил машинку запилить ребенку на колесах меканум.
Ну и понадобился независимый ШИМ на 8 пинах.
Написал вот это.
Но не мог въехать почему при значении 0, у меня нога дрыгается на 4мкс.
В общем то из за <=
#include <avr/interrupt.h> volatile byte count=0; byte pwm0=0; byte pwm1=100; byte pwm2=200; byte pwm3=255; ISR(TIMER2_COMPA_vect){ count<=pwm0?PORTB|=1:PORTB&=~1; count<=pwm1?PORTB|=2:PORTB&=~2; count<=pwm2?PORTB|=4:PORTB&=~4; count<=pwm3?PORTB|=8:PORTB&=~8; count++; } void setup(){ DDRB|=0x1111; TCCR2B=0; TCCR2B|=(1<<CS20); TCCR2A=0; TCCR2A|=(1<<WGM21); TIMSK2|=(1<<OCIE2A); OCR2A=127; PORTB=0; } void loop(){ }
Теперь дилемма:
Упростить условие убрав "=", но тогда при максимальном значении провал , или же написать :
pwm0&&count<=pwm0?PORTB|=1:PORTB&=~1;
Но тогда время обработки значений увеличивается
Вы не дописали слово микросекунду.
В общем, пока писал описание проблемы, понял где ошибка.
Объясню суть, решил машинку запилить ребенку на колесах меканум.
Ну и понадобился независимый ШИМ на 8 пинах.
Написал вот это.
Но не мог въехать почему при значении 0, у меня нога дрыгается на 4мкс.
В общем то из за <=
Теперь дилемма:
Упростить условие убрав "=", но тогда при максимальном значении провал , или же написать :
Но тогда время обработки значений увеличивается
Вы не дописали слово микросекунду.