#include <avr/io.h> // dostęp do rejestrów
#include <util/delay.h>
void main(void)
{
TCCR1A=0b10100010;
TCCR1B=0b10110000;
DDRD = 0b110000;
OCR1A = 0;
OCR1B = 255;
while(1)
{
OCR1A = OCR1A + 5;
OCR1B = OCR1B - 5;
_delay_ms(5);
}
}Pod OC1A (PD.5) mam podpiętą diodę led - świeci non-stop, na maxa. Jeśli zrobię program zupełnie prosty, na stałe zapiszę w programie do OCR1A jakąś wartość, dioda nadal świeci tak samo. Sądzę, że problem tkwi w ustawieniu rejestrów TCCR1A i TCCR1B, chcę uzyskać zwykłe PWM, preskalowane 1024, na dwóch niezależnych kanałach (sterowanie silnikami w robocie). Dodam, że mam megę16l (chociaż raczej to nie robi żadnej różnicy). Taktowana 8MHz, w makefile'u jest to zapisane. Już nie wiem co robię źle, od godziny-dwóch czytam raz-po-raz opis timera1 w DSie i nadal nie rozumiem co robię źle. Dodam, że w C programuję może od kilku dni, a akurat pwm to dla mnie zupełny mus, koniecznie sprzętowo (potem muszę mieć jak najbardziej odciążonego proca do wszelakich bardziej skomplikowanych obliczeń - jakaś kontrola trakcji itp, przy prędkości robota ponad 1 m/s (minisumo) raczej się przyda).
