Stránka 4 z 7

Napsal: 23 dub 2021, 17:30
od FHonza
S tím "if" na konci main() se ale stejně při každém přerušení displej na okamžik zapne.

Napsal: 23 dub 2021, 17:44
od buchar
A jak často a na jak dlouho se zapne? Bude to mít velký vliv na vybíjení baterie?

Napsal: 23 dub 2021, 17:48
od FHonza
To přerušení se volá jednou za 1/256 sekundy. Vliv na vybíjení baterie má hlavně ten "jalový" chod MCU v main(). V aktivním stavu odebírá samotná ATMega8 cca 4mA. Záleží na velikosti napájecího napětí a frekvenci hodin.

Napsal: 23 dub 2021, 17:55
od buchar
Z toho co píšeš nejsem moc moudrý, ale hodiny se napájí 5V, jako záložní baterii jsem použil CR2032 (3V) a nevím co myslíš "frekvencí hodin". V zapojení je krystal 14,7456MHz a Atmega bere frekvenci z tohoto krystalu (fuses L-FF, H-C9).
https://ok1kvk.cz/clanek/2010/digitalni ... s-atmega8/

Napsal: 23 dub 2021, 18:23
od FHonza
Tou frekvencí hodin myslím takt procesoru, v tvém případě je to těch 14,7456 MHz. Čím vyšší napájecí napětí a frekvence, tím větší spotřeba.

MCU má možnost uspání, kdy má sníženou spotřebu. A u těch hodin MCU většinu času jen hlídá tlačítka (a teď i napájení), přitom by mohl být uspán.

Starší, ale stále pěkná kniha je Programujeme AVR v jazyku C od Ondřeje Závodského. Pro začátek vřele doporučuji. Najdeš tam i režimy spánku MCU.

Napsal: 23 dub 2021, 18:27
od buchar
Takže mi radíš s tou mojí úpravou kódu ještě uspat procesor při odpojení napájení a provozu na záložní baterii?
Na tu knihu určitě mrknu.

Napsal: 23 dub 2021, 18:34
od FHonza
Přesně tak. A při chodu z baterie bych ani netestoval tlačítka. Stejně nesvítí displej.

Napsal: 23 dub 2021, 18:45
od buchar
Testování tlačítek při vypnutém displeji je stejně hloupost.
Udělal jsem si ještě teploměr skoro stejné konstrukce jako hodiny (ze stejného webu) a mám velmi malé displeje na obě konstrukce a chci si je dát do auta. Takže bych musel při každém nastartování nastavovat hodiny. Proto řeším tuto zálohu z baterie. A nebo by pořád byly v chodu i s teploměrem na autobaterii. I když je to baterie s velkou kapacitou, nevím jak by se vybíjela, když bych chtěl jet třeba až po delší době (týden, dva, tři....)

Napsal: 25 dub 2021, 21:30
od FHonza
Použij nějaký RTC obvod. K tomu jsou určeny. Třeba DS3231 nebo DS1307.

Napsal: 25 dub 2021, 21:40
od buchar
To mě taky už napadlo, ale ten má svůj hodinový krystal a nevím jak bych to spolu se stávajícím obvodem spářil.

Napsal: 25 dub 2021, 21:51
od FHonza
Nijak, MCU pak může využívat svůj vnitřní oscilátor. Přesnost času na něm nebude záviset. Komunikuje s RTC přes I²C. RTC si můžeš představit jako paměť, ve které se aktualizují data dle reálného času. MCU jednou za zvolenou dobu z RTC přečte reálný čas. Po odpojení napájení "jede" RTC obvod na baterii.

Případně spíš vyber DS3231, je přesnější.

Napsal: 26 dub 2021, 05:52
od buchar
Mrknu se na to. Ono to moje řešení není 100%ní. Nechal jsem celou noc a celý den hodiny vypnuté jen na záložní baterii a po zapnutí byl displej vynulovaný. Toto řešení je jen na krátkodobé vypnutí hodin (výpadek elektřiny, přenesení hodin na jiné místo....).

Napsal: 23 kvě 2021, 15:12
od buchar
Tak jsem tady zpátky. Myslel jsem, že dokážu hodiny doplnit o RTC obvod, ale velice jsem se mýlil. Po konstrukční stránce bez problémů, ale neumím upravit kód tak, aby spolu MCU a DS1307 komunikovali.
Nejste-li z mých dotazů začátečníka v "C" unaveni a nebo najde-li se někdo jiný kdo by mi pomohl až do fáze plné funkčnosti, tak napište a pomozte prosím.
Díky

Napsal: 25 kvě 2021, 09:14
od Mahoney
Protože tě, dle mého názoru a nic ve zlém, trochu zavedl. Řešil jsi jednoduchý problém a vyřešil jsi ho v daném kontextu ke spokojenosti. "Jalový chod" MCU nevadí když to MCU prostě odměřuje čas, a dělat tam nějaké uspávání a přidávat kvůli tomu RTC je prostě už měnění toho kontextu a jiná konstrukce. Já bych to nehrotil. S RTC si stejně moc nepomůžeš, protože i to potřebuje záložní baterku, nějakou kontrolu atd. Nestačí výdrž? Lze dát místo CR2032 třeba dva nebo tři alkalické AAA články do držáku a je to taky řešení. Když máš červený, tak za mě třeba například použít nějaký SRWA displej (vysokosvítivý) a nechat segmenty svítit na málo, tím dosáhneš lepšího výsledku co se týče úspory (proudu i času) daleko jednodušeji.

Napsal: 25 kvě 2021, 09:29
od buchar
Díky za reakci Mahoney. Takže myslíš, že nemá smysl se v tom vrtat? Mě taky napadlo, že by se to zapojení i s kódem muselo trochu víc překopat. Jen jsem doufal, že někdo bude vědět o nějakém použitelném řešení, ale moje požadavky a tahle konstrukce asi takové řešení nemají.
Použil jsem malinký displej zeleně svítící ze settopboxu, aby to celkově v autě nezabralo moc místa.