ATNEL tech-forum
https://forum.atnel.pl/

Attiny13 EEPROM - dziwne zachowanie
https://forum.atnel.pl/topic24443.html
Strona 1 z 1

Autor:  Tom92 [ 23 mar 2023, o 13:45 ]
Tytuł:  Attiny13 EEPROM - dziwne zachowanie

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:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


common.c:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


common.h:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  tonygryps [ 23 mar 2023, o 16:59 ]
Tytuł:  Re: Attiny13 EEPROM - dziwne zachowanie

Spróbuj po funkcji led_and_key_init(); dać niewielkiego delaja tak z 5ms.

Autor:  Tom92 [ 24 mar 2023, o 13:35 ]
Tytuł:  Re: Attiny13 EEPROM - dziwne zachowanie

@tonygryps zrobiłem tak jak zaproponowałeś i trochę się poprawiło. Już nie wchodziły mi tak często inne kolory po włączeniu zasilania, ale jednak zjawisko występowało.

Zmieniłem ostatecznie funkcję do ustawienia koloru bo bardzo mi się nie podobała, była nieoptymalna i wydawała mi się podejrzanie. Dodatkowo nie wpisywała do zmiennych ram_cfg.ledr, ram_cfg.ledg, ram_cfg.ledb wartości kolorów i moim zdaniem to był ten błąd.

Zmiana zaszła z tej funkcji:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


na tą funkcję:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jak widać znaczna różnica :P mocno odchudziło to kod :lol: Po tej zmianie, dziwnego efektu wyświetlania przypadkowych kolorów już nie ma.

Autor:  tonygryps [ 2 kwi 2023, o 09:08 ]
Tytuł:  Re: Attiny13 EEPROM - dziwne zachowanie

Cytuj:
Jednak ten delay musi być, bo jak go wyrzuciłem to znowu co jakiś czas inne kolory wchodziły po restarcie.

Chodzi o to żeby dać trochę czasu na ustalenie się stenów na pinach procka , możesz jeszcze dać podciąganie rezystorami tych pinów od przycisków tak z zakresu 10kom do 47kom.

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/