Arduino Polska Forum

Pełna wersja: UNO + Tiny RTC - data
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Hej,

chce zrobić pogram, który wykona pewną część kodu co 2 dni.

Z wykonaniem codziennie o danej godzinie nie ma problemu, bo wystarczy prosty if porównujący godzinę, a jak będzie wyglądał kod, który uruchomi pogram co 2 dni? Czy zrobić tablicę z dniami, w których kod ma się uruchamiać i później porównać z datą dzisiejszą, czy jest jakiś prostszy sposób?

Pozdrawiam.
A dlaczego nie następny if...? Jak masz że codziennie to wystarczy dodać zmienną i już np. dzień=dzień+1 i potem jak dzień>=2 to coś...... i zerujesz dzień a jak co trzy dni to dzień>=3 itd.
Dzięki za odpowiedź.

A co w przypadku gdy odłączę Arduino od prądu i znowu podłącze? Czy program nie zacznie wykonywać się od początku?
Przechowuj informację kiedy ostatnio było wykonane działanie w eeprom procka. Są przykłady w arudino jak zapisać/odczytać.  W setup odczyt, po zmianie dnia zapis - ważne by to było tylko RAZ. Drugi lepszy sposób jeśli zegar ma jakiś ram do dyspozycji dla użytkownika, a sam ma zasilanie baterią. http://forum.arduino.cc/index.php?topic=152248.0 przykład zapisu dla DS1307. Ważne by zapis do EEPROM wykonywać z rozwagą, wystarczy wgrać jeden niefortunny szkic by zużyć eeprom - zapis w każdej pętli, która jest wykonywana 16mln razy/s po paru minutach (zapis trochę trwa, więc to nie będzie 16mln), a producent gwarantuje 100 tys. cykli kasowania/zapisu. Przy racjonalnym użytkowaniu, np. 1 raz dziennie wystarczy jego życia na 300lat. Zapis co godzinę też jest OK - starczy na >12lat. Przy zachowywaniu informacji, w którym dniu było wykonane zadanie w RAM podtrzymywanym baterią można po nim jechać na okrągło. I jeszcze uwaga, Eeprom zużywa sie przy kasowaniu, także są funkcje update - dłużej trwa, ale sprawdza czy nie próbujesz zapisać takiej samej wartości jaka już jest w EEPROM w danej komórce.