Vyčítání dat z DS3232 (nebo DS1307) pořád dokola
Moderátor: Moderátoři
V tom případě se ale změna projeví až při nejbližším srovnání času a hranice. Když budu mít například nastaveno
Záleží jak často děláme to srovnání
Může být třeba v každém běhu hlavní smyčky (test má jen 11 cyklů)
a změna se projeví okamžitě.
Edit:
Ovšem, nefunguje to pozpátku.
Když mám nastaveno zapnutí na 11 hodin a v 10 hodin změním zapnutí na 9 hodin, tak nijak nereaguje, zapne se až v příští 9. hodině.
Kód: Vybrat vše
//inicializacia vyp=22; zap=6;
//podmienka
if ((hod>vyp)|(hod<zap)) lcd_string("Displej OFF"); else lcd_string("Displej ON ");
hotova vec http://youtu.be/WePF-IR5ed8 uz by to malo ist
A konkrétní zobrazování na displeji mám zde:
Kód: Vybrat vše
ISR (TIMER1_OVF_vect){
TCNT1 = 65535 - 250; //pro preruseni kazdych 1ms => (1ms/4us = 250)
//zobr_cas(hours, minutes, seconds, tecka);
PORT_BLANK ^= (1 << BLANK);
if (double_click == 1) //rezim nastaveni
{
nastaveni_hodin(); //zavola se funkce, ktera ridi nastaveni hodin
}
if ((double_click == 0) && (displej_off == 1)) //normalni rezim zobrazeni a displej bude zapnut stale
{
zobrazeni_casu(); //funkce, ktera zobrazi cas
}
if ((double_click == 0) && (displej_off == 0)) //rezim, kdy bude displej vypnut
{
zobr_vlastni(20,20,20,20,20,20); // na vsech digitech nezobrazi nic
}
}A zbytek kódu je zde: http://paste.ofcode.org/W9raRfxu6gxD4MFX7NbVuT
Jenom jsem tam nedával inicializaci. Snad je to aspoň trošku přehledné.
Na jakém vyplém zařízení? Řešíme tu obecnou věc, jak nastavovat zapnutí nebo vypnutí v daném denním intervalu. A pokud chci reakci na změnu nastavení co možná nejdříve, tak způsob, který navrhnul AB1 nevyhoví.Jeejda píše:Z logiky věci, když chci něco nastavovat na vyplým zařízení, tak ho musím nejdřív zapnout, že…
Co mám zkušenosti se zákazníky, tak s přístupem "když jste si to jednou nastavili, nemůžete to zpětně změnit" by mě brzo vyfakovali.
Ad posouvání času dozadu - tak tohle to bylo opravdu zbytečné. Cílem je možnost kdykoliv zadat nové nastavení a jeho uplatnění co nejrychleji, a konkrétní příklad jsem, myslím, jasně popsal. Nikoliv revokovat historii.