Fórum témák
» Több friss téma |
Cikkek » PIC16F kontroller: Mit tegyek, ha betelt a 2K? PIC16F kontroller: Mit tegyek, ha betelt a 2K?
Szerző: Hp41C, idő: Feb 17, 2011, Olvasva: 14417, Oldal olvasási idő: kb. 1 perc
Ismétlés Egy-két részletet mégis kiemelek az adatlapból: Programmemória szervezése: A programmemória felosztását az alábbi ábrán láthatjuk. A hagyományos 16F szériába tartozó kontrollerek programmemóriája 4 lapra (Page0 .. Page3) van felosztva. A felosztás a kontroller utasításainak kódolásával függ össze, a goto és call utasítások ugyanis csak a cél címének alsó 11 bitjét tartalmazzák. Az összetettebb kontrollerek működtetésére a 2K szavas program nem elegendő. A nagyobb programtár-igény miatt több 2K szavas lapot (Page) hoztak létre; a hagyományos 16F szériában maximum 4 db lap található. Hogyan használható ki a nagy programtár, ha a goto és call utasítás nem tartalmaz elegendő címbitet? A PIC kontrollerekben a programszámláló felső bitjei közvetlenül nem érhetők el, csak az alsó 8 bitje a PCL regiszterben. A cím felső részét átmeneti regiszterben kell elhelyezni a PCL módosítása előtt. Ez az átmeneti regiszter a PCLATH. Ennek a regiszternek a 4. és 3. bitjét használták fel a programlapok kijelölésének beállítására. Az alábbi ábrán a programszámláló feltöltését láthatjuk a PCL módosításánál és a goto vagy call utasítás végrehajtása során. Minden goto, vagy call utasítás előtt be kell állítanunk a PCLATH regisztert a cél címének megfelelően. Ha már egyszer egy lapra állítottuk, a lapon belüli ugrásokhoz az értékét nem kell módosítanunk. Ügyelni kell a kiszámított ugrásoknál az érték beállítására. Minden esetben a lapkiválasztó biteket is be kell állítanunk arra a lapra, ahová a kiszámított ugrás táblázatát elhelyeztük. Reset után a PCLATH értéke 0, azaz a 0. lapra (Page0) fognak hivatkozni az ugrások. Néhány szó az utasításokról: return/retlw : Ezek az utasítások a belső hardware stack tetejéről az egész 13 bites címet leveszik ,és betöltik a programszámlálóba, a PCLATH regisztert nem módosítják. retfie : Végrehajtja mindazt, amit a return/retlw, valamint a GIE bitet (INTCON regiszter 7. bitje) 1 -re állítja. movf : Adatmozgató utasítás, állítja a Z jelzőbitet. swapf : Felcseréli az adat alsó és felső 4-4 bitjét, nem állít jelzőbitet. A Globális megszakítás engedélyezése, az INTCON regiszter GIE bitjének 1-re állítása azonnal, az utasítás végrehajtása után érvényre jut. A cikk még nem ért véget, lapozz! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |