Witam, mam dziwny problem z moja ATMEGA32A-PU.
Chcialem opanowac sterowanie servo, i przegladalem wideo pana Mirka "#0545 AVR + SERVO + ANALOG INDICATOR"
Po wyliczeniu wszystkiego wyszedl mi zakres OCR1A od 100 - 500, poniewaz datasheet pokazuje ze ten chip ma 16MHz taktowanie. O dziwo, serwo tylko lekko szarpalo zamiast zrobic ruch o 180st.
W sieci znalazlem inny tutorial z ponizszym kodem:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Tutaj servo dziala ale tez nie dokladnie.
Postanowilem zaczac od podstaw i zrobilem mrugajaca lede, zeby sprawdzic czy piny wogole dzialaja. Co odkrylem ze delay 200ms mrygal bardzo wolno.
Odrazu przyszlo mi do glowy ze chodzi o taktowanie, wiec zdefiniowalem recznie F_CPU = 16000000UL, efekt ten sam. Dopiero przy F_CPU 1000000UL wszystko dziala poprawnie, w kodzie z filmu pana Mirka, po przeliczeniu wartosci pod 1MHz, wyszlo 8-32 i wszystko dziala normalnie.
Co moze byc powodem przetaktowania chipa z 16MHz na 1MHz?