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
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! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |