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: 14416, Oldal olvasási idő: kb. 1 perc
Lapozás: OK   1 / 5
A PIC16F sorozat kontrollerére írt programok hamar eljutnak az alap 2K szavas programlap határáig. Mit kell tenni, ha 2K szónál nagyobb programot szeretnénk a 16F szériára? Hogyan lehet nagyobb, esetleg lapokon átnyúló táblázatokat kezelni?

Bevezetés

A PIC kontroller adatlapok nagyon jól szerkesztett dokumentumok, minden típus adatlapjában (van egy-két kivétel - 18Fxxx3) benne van a teljes leírás, az utasítás készlet ismertetése, és benne vannak a programozási minták. Azonban van néhány dolog, ami nincs benne, vagy nagyon nehezen hámozható ki. Ezek a problémák heti rendszerességgel merülnek fel a PIC Miértek, hogyanok topikban. A sok-sok egyedi válasz helyett egy cikkben, egy példán próbálom megmutatni, hogy mit is kell tenni, ha a program kinövi a "Page 0" -t, azaz az alsó 2K szót.

Feltételezem, hogy a kedves Olvasó áttanulmányozott néhány PIC kontroller adatlapot, jártas a programozásában, olvasta a Nulláról a robotokig - PIC Mikrovezérlők cikksorozatot, a mintapéldához létre tud hozni project -et az MpLab programmal, be tudja állítani az MPLAB SIM szimulátort a nyomkövetéshez.

A mintapéldát PIC16F886 kontrollerre készítettem el, de bármely típusra adaptálható, aminek 2K szónál nagyobb program memóriája van.

A mintaprogram

Ahhoz, hogy egy mintapéldán több problémát is be lehessen mutatni, sajnos, egy összetettebb programot kell választani.

- A programban legyen megszakítás kezelés, hogy a regiszterek mentését-visszaállítását be lehessen mutatni.

- A megszakítások olyanok legyenek, hogy megépített kártya nélkül is mindenki ki tudja próbálni a szimulátor programmal.

- Legalább két helyről származó megszakítás kérés legyen a programban. A megszakítások időnként legyenek letiltva.

- A program ne csak egy lapon (Page 0-n) helyezkedjen el - A lapok közötti átjárás bemutatása is cél.

- Legyen a programban egy nagy táblázat, ami átnyúlik a 256 byte-os, kiszámított ugrási határon, és egyben laphatáron is.

- A változók több Bank-ban helyezkedjenek el.

A fentiek teljesítéséért a program a Timer0 és a Timer2 megszakításokat időszakosan engedélyezi. A lapok közötti átlépés bemutatására az időzítők beállítása más-más lapra (Page) kerültek. A programba egy karakter-táblázat is került.


A cikk még nem ért véget, lapozz!
Következő: »»   1 / 5
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem