Programkód működése
A program a következő részekből áll:
Ütemező: A WDT másodpercenként 3 alkalommal felébreszti a processzort, ekkor a szoftver megnézi, hogy kell-e valamit csinálni, ha nem akkor a processzor visszamegy alvó módba (helyzettől függően LPM0-ba, vagy LPM3-ba). Egy teljes mérési ciklus 180 WDT ciklusból áll, ami esetünkben azt jelenti, hogy kb. 1 percenként zajlik egy mérés
Mérés: Az ütemező minden 0-ás ciklusánál zajlik a mérés előkészítése. Ez abból áll, hogy a program a hőmérőt az I2C buszon keresztül aktív módba kapcsolja. Az ütemező 1-es ciklusánál zajlik a mérés maga. Ekkor a program kiolvassa a hőmérő értékét, kikapcsolja a hőmérőt (shutdown mód), a kiolvasott értéket, konverzió után kiküldi a kijelzőre.
A telep ellenőrzése: A telepfeszültség ellenőrzése a hőmérséklet méréssel (ütemező 1-es ciklus) párhuzamosan történik. A mérés elején a program bekapcsolja az AD konvertert és az AD konverter referenciáját, a mérés végén pedig elindít egy egyszeri AD konverziót (az AD konverter bemenete a tápfeszültség felére ,a referencia pedig 2,5V-ra van kötve). Az 1-es ciklus végén az ütemező nem LPM3-as módba, hanem LPM0-ba kapcsolja a processzort, hogy az AD konverzió folytatódni tudjon. A konverzió végén az AD konverter felébreszti a processzort és a konverzió eredménye tárolásra került.
A következő mérési ciklusban a tápfeszültség értékétől függően, a kijelzőn bekapcsolásra kerül a LO BATT jelzés. (Ez a gyakorlatban azt jelenti, hogy a merülő telep jelzése kb. egy perc késleltetéssel kerül a kijelzőre, de ez a működés szempontjából zavart nem okoz.)
Programozás
A programozás ugyanúgy zajlik, mint ahogy a korábbi „Frekvenciamérő MSP430-al” cikkemben megjelent. Az ismétlések elkerülése végett, ezt itt nem írom le újra.
A cikk még nem ért véget, lapozz!
Értékeléshez bejelentkezés szükséges!