Hej zwracam się o pomoc ponieważ już nie mogę wyjaśnić zjawiska, które zachodzi z moją attiny13. Pewnie mam błąd w programie, ale nie mogę się go doszukać.
Napisałem prosty programik do włączania taśmy ledowej, sterowania PWM oraz jest wykorzystany jeden przycisk.
W pętli głównej wymieram przyciskiem 100% świecenia lub 50% świecenia na biało.
Jeśli podczas włączania zasilania trzymam przycisk to wchodzę do wyboru innych kolorów.
Ustawienia koloru zapisuję w pamięci EEPROM, aby po uruchomieniu odczytać zmienne 8-bitowe ledr, ledg, ledb.
Ogólnie wszystko działa według założeń, po włączeniu zasilania mam kolor taki jaki był wybrany poprzednio.
ALE...
Niestety jak testuję i losowo np. po 5-15 włączeniach zasilania taśma nagle świeci innym kolorem, albo na 50% zamiast na 100%, albo jak mam wybrany biały kolor to zaświeci na błękitny, albo nawet wejdzie ustawienie którego nie mam w prgramie np. czerwony świecący na 10%, itp.
Na początku myślałem, że mam problem ze stosem bo program zajmował 88,3%, więc go odchudziłem i obecnie zajmuje 76,6%:
----------------------------------------
Device: attiny13
Program: 784 bytes (76.6% Full)
(.text + .data + .bootloader)
Data: 7 bytes (10.9% Full)
(.data + .bss + .noinit)
EEPROM: 3 bytes (4.7% Full)
(.eeprom)----------------------------------------
Czy jest mi ktoś w stanie pomóc? Czy problem jest z moim wsadem czy problem jest gdzieś indziej?
MCU: AtTiny13
F_CPU: wewnętrzny oscylator 9 600 000 Hz (wyłączony CKDIV)
main.c:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
common.c:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
common.h:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.