Witam, wczytuję się w pdf Attiny10 i próbuje ustawić nośną 36 kHz, nie wiem czy dobrze to rozumiem - w nocie na stronie 74 w ustawieniach rejestrów pisze ze dla trybu CTC ustawiamy bity WGM0 tak:
Cytuj:
Mode WGM03:0 Mode of Operation TOP Update ofOCR0x at TOV0 Flag Set on
4 0100 CTC (Clear Timer on Compare) OCR0A Immediate MAX
Rozumiem ze muszę ustawić bit WGM03 (?), zrobiłem tak - potem prescaler 1 i jest nośną - niby jest bo jakieś losowe wartości, a tylko czasem gdy zbilizę pilot i odbiornik to pokazuje dokładną wartość. Nie jestem pewien czy prawidłowo ustawiłem ten Timer. Według obliczen, przy 1MHz, presclerze 1 i OCR0A = 12 osiągamy zadaną częstotliwość ale z błędem ponad 6 procentowym - rozumiem ze to tez może zakłócić transmisję.
Tu tu sie zaczyna drugi problem - aby zmniejszyc błąd chciałem przestawić rejestry na taktowanie 8 Mhz - ale nie wiadomo dlaczego dioda kontrolna (co sekunde) zaswieca sie i gasnie w tak zółwim tempie... i oczywoscie transmisja IR wogole nie działa - mimo ustawienia timera pod 8 MHz. Na stronie 21 jest podane ze domyslnie oscylator jest ustawiony na 8 MHz
ale tez domyslnie właczony jest dzielnik tego taktowania czyli koncem konców przy starcie domyslnie jest 1 Mhz, prawda?
Chciałem ustawić 8 Mhz wiec wyczysciłem cały rejestr CLKPSR co według noty dałoby pełną częstotliwosc bez podziału, a tu taki zonk ze jest jeszcze wolniej. zmieniałem tez czestowtliwosc w ustawieniach projektu za kazdym razem.
Poniżej wklejam mój cały kod z main.c
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.