2024. május 5., vasárnap

Gyorskeresés

RTC építés PIC-kel...

Az I2C kommunikációt és egy-két hardveres, szoftveres megoldást szerettem volna kipróbálni, ehhez kerestem feladatot.

[ ÚJ TESZT ]

RTC 7-szegmens kijelzővel-2

Az óra doboza fából készült. Készíttettem az alábbi képen látható bemart lécet, ez alkotja az alját és a tetejét, a panel pedig a bemarásba csúszik be.

Az előlap plexi, CD tokból lett kivágva, majd maszkolás után lefújtam ezüsttel a belső oldalát. És kezdődött a ragasztgatás.

A végeredmény ilyen lett:

A nyomógombok a következők szerint működnek:
S1-óra fel
S2-óra le
S3-perc fel
S4-perc le

S1 nyomva tartva amíg a 4. digiten megjelenik egy "F" - belépés fényerő szabályzó módba:
S3-fényerő fel
S4-fényerő le
S2- a beállítás mentése flashbe

Ha már az áram alá helyezés előtt nyomjuk a gombokat:
S1- a kijelző átvált perc/másodperc kijelzésre
S2-a tizedes pont folyamatosan világítson
S3-a tizedespont villogjon

Bár ez az egyszerűbbik óra, mind a megépítéskor, mind a programozáskor ez volt a bonyolultabb. A programja mindössze 1648 byte, de nagyon háklis volt az időzítésekre. A kijelzőn a multiplexelés miatt minden aszimmetria meglátszódott, "interferencia" szerű jelenség volt látható. Ezért minden egyes digit megjelenítésekor ki kell olvastatnom az RTC csipet, végig kell csinálni az idő digitekre való szétszedését és az egyéb feladatokat is.

Az óra olvasása viszont elég lassú, pedig, hogy ne vibráljon a kijelző, a 100 Hz körüli frekvenciát tartani kell. Ezt úgy sikerült megoldanom, hogy míg az MCU 8 MHz-en fut, én a compilernek azt hazudtam, hogy csak 1 MHz-en. Ezzel ő vissza is vette az időzítéseket.

Például a fényerőszabályzáshoz a PWM jelet úgy állítom elő, hogy mikor a program az aktuális kijelzőhöz ér, azt lekapcsolja 5 ms-ra, majd bekapcsolja 3 ms-ra. Valójában viszont így ezeknek az értékeknek a nyolcada igaz. Valami hasonló történik az I2C kommunikációval is, az is érezhetően begyorsult.

Még van egy rejtett dolog a programban. Megfigyelve az óra pontosságát, minden éjfélkor, azaz 00:00:00-kor, az MCU 1875 ms-ra megállítja az RTC csipet. Ettől még egy kicsit sietni fog, de csak napi néhány tized másodpercet.

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

Előzmények

Hirdetés

Copyright © 2000-2024 PROHARDVER Informatikai Kft.