Hogyan lehet olvasni a biztosító bitjeit egy programból?

Minden AVR mikrokontroller rendelkezik konfigurációs biztosíték bitekkel. Ezek a bitek számát adja meg a globális beállítások a mikrokontroller például órajel forrás, a küszöb feszültség a reset áramkör, a méret a boot terület, a felbontás a watchdog időzítő, stb

A biztosíték bitek flash memóriában vannak tárolva, így megtartják a jelentésüket, ha nincs áram. Általában a firmware kezdeti programozásakor telepítik őket.

A helytelenül beállított biztosíték bitek megzavarhatják a rendszert. A mikrokontroller a legjobb esetben rossz frekvencián fog működni, és legrosszabb esetben elveszítjük a mikrokontroller SPI interfésszel történő programozását. Ez történhet a tudatlanság vagy véletlen hiba miatt.

Van olyan mód, amely megakadályozhatja ezeket a helyzeteket. A mikrokontroller programban a biztosítékok bitjeinek a kívánt értékekkel történő összehasonlítását tartalmazza. Valami, mint az önuralom. De ahhoz, hogy ellenőrizzék őket, először el kell olvasni őket. És most rájövünk, hogyan kell csinálni.

Azonnal foglaljon helyet, egy példa lesz az IAR'a-ra. Most már nincs hozzáférésem az Atmel Studio-hez, mert nem vagyok otthon.

Az olvadóbiztosítékok és a zárbetétek speciális regiszterekben találhatók a nem felejtő memóriában. A regiszterek eléréséhez számos műveletet kell végrehajtania:

Mivel C-ben programozunk, esetünkben a problémát egyszerűbb módon megoldjuk, a beépített IAR függvény használatával. Ő majd majdnem mindegyiket elvégzi számunkra. A függvény prototípusát az intrinsics.h fájl írja le, és így néz ki.

biztosíték alacsony bitek 0x0000
biztosítsa a 0x0003-as nagy biteket
biztosíték kiterjesztett bitek 0x0002
zárbetétek 0x0001

Ezen adatok felhasználásával makrókat írhat a biztosíték bitek olvasásához.

És olvassa le a lock bitet az intrinsic.h fájlban. Már rendelkezik makróval.

Hát és egy kis példa, mivel a program a bitek biztosítékának kezdeti ellenőrzésével kinézhet.