Serwisy partnerskie:
Close icon
Serwisy partnerskie

Sprytne porady i sztuczki cyklu Ekscytacje Maxa dotyczące kodowania (16)

Article Image
Obawiam się, że ten odcinek będzie przypominać jedną z męczących opowieści mojej mamy. Te opowieści zazwyczaj zaczynają się tak: „Pewnego dnia wpadłam w sklepie rybnym na panią Greebles. Pamiętasz, była najstarszą z trzech sióstr. Najmłodsza, Beryl, była złośnicą, a średnia uciekła z australijskim wypychaczem zwierząt i mieli dwóch synów, którzy bali się bananów, i...”. Niesamowite jest to, że po tym, jak mama zapuszcza się tak daleko w gąszcz – aż jej słuchacze zaczynają rozważać wysłanie jakiejś grupy poszukiwawczej – w jakiś sposób udaje się jej doprowadzać historię do triumfalnego zakończenia: „I dlatego nigdy nie powinieneś nazywać morsa imieniem Wally!”.

A ludzie zastanawiają się, dlaczego piję...

We wcześniejszych poradach i wskazówkach (Practical Electronics, lipiec 2021; EdW, luty 2025) zwróciliśmy uwagę, że mikrokontrolery, takie jak Teensy (którego używamy do sterowania 10-znakowym, 21-segmentowym wyświetlaczem wiktoriańskim) czy Arduino (którego używam do projektów wszelkiego rodzaju), zawierają trzy rodzaje pamięci: FLASH, SRAM i EEPROM. Pamięć FLASH, nieulotna (zachowuje zawartość po wyłączeniu zasilania), służy do przechowywania programu. W przeciwieństwie do niej pamięć SRAM jest ulotna (traci zawartość po wyłączeniu zasilania) i jest miejscem, w którym program tworzy, przechowuje i manipuluje zmiennymi w trakcie pracy. Mamy również niewielką ilość nieulotnej pamięci EEPROM (pamięć stała elektrycznie kasowana i programowana), w której możemy przechowywać małe ilości informacji przez długi czas.

W przypadku Teensy 3.6 mamy do dyspozycji 4KB pamięci EEPROM – czyli 4096 bajtów, ponumerowanych od 0 do 4095; szesnastkowo od 0x000 do 0xFFF. Jeśli chcemy użyć tej pamięci w naszych programach, musimy najpierw dołączyć specjalną bibliotekę, która jest dostarczana jako część zintegrowanego środowiska programistycznego Arduino (IDE). Używamy następującej instrukcji:

Zacznijmy od rozważenia zestawu wartości domyślnych, przechowywanych w DefSettings. Przede wszystkim mamy pewną „magiczną liczbę”, której cel użycia zostanie wkrótce wyjaśniony, a której wartość ustaliłem sobie na 0x42 szesnastkowo (01000010 dwójkowo). Wartość ta – jak wiedzą wtajemniczeni – stanowi „odpowiedź na zasadnicze pytanie o życie, wszechświat i wszystko” (https://bit.ly/pe-nov21-42). Dalej następuje numer wersji, który zapisuję w postaci dwóch połówek 4-bitowych, czyli „nibble” (pamiętaj, że „dwa nibble tworzą bajt”). Bardziej znacząca połówka zawiera podstawowy numer wersji, a mniej znacząca – numer dodatkowy. Nasze „nibble” to dwójkowo 0001 i 0000, więc numer wersji wynosi 1.0.

Dalej mamy zapisany format czasu (0 = 12-godzinny, 1 = 24-godzinny), a następnie format daty: 0 = RRRR/MM/DD, 1 = MM/DD/RRRR, 2 = DD/MM/RRRR. Po nich następuje liczba trybów pracy oraz liczba efektów. Na potrzeby tej dyskusji załóżmy, że mamy trzy tryby o numerach 0, 1 i 2, w których wyświetlane są odpowiednio: godzina, data lub przewijana wiadomość tekstowa. Zauważ, że dla celów tego przykładu tylko dwa z nich (godzina i data) mają powiązane ustawienia formatu.

Jeśli chodzi o efekty, to załóżmy, że mamy ich szesnaście (ponumerowanych od 0 do 15). Na przykład efekt 0 może być statycznym białym tekstem na czarnym tle, efekt 1 – statycznym czarnym tekstem na białym tle, efekt 2 może być animowaną tęczą kolorowego tekstu na czarnym tle i tak dalej.

Następnie mamy trzy bajty opisujące efekty powiązane z każdym z trybów pracy. Jak widzimy, z założenia z każdym trybem będzie domyślnie powiązany efekt 0 (biały tekst na czarnym tle).

Aby przeczytać ten artykuł kup e-wydanie
Kup teraz
Firma:
AUTOR
Źródło
Elektronika dla Wszystkich czerwiec 2025
Udostępnij
Zobacz wszystkie quizy
Quiz weekendowy
Historia tranzystora
1/10 Właściwości prostownicze złącza metalu z półprzewodnikiem zostały odkryte:
Oceń najnowsze wydanie EdW
Wypełnij ankietę i odbierz prezent
W tym numerze znajdziesz źródłową wersję artykułu publikowanego obok
Elektronika dla Wszystkich
czerwiec 2025
Elektronika dla Wszystkich
Przejrzyj i kup
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"