Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Szia!
- Ha a programozáshoz használt lábakat kimenetnek vagy Timer1 oszcillátornak stb. használjuk és belső órajellel működtetjük a kontrollert, előfordulhat, hogy nem sikerül a normál módon (Vdd first) a programozás. Két megoldás kínálkozik: - Használjuk a "Vpp first" módszert. A kontrollernek vagy a kártyának a tápfeszültséget ekkor a PICKit2 -nek kell adnia. - A kimenetek vagy az oszcillátor stb. engedélyezése elé tegyünk néhány ms várakozást a program elejére. Az MpLab nem támogatja a "Vpp first programming entry" módszert. A PICKit2 / PICKit3 saját programjának használatával programozható...
Korábban is olyan konfigot írtál, amiben a belső oszci volt kiválasztva és az MCLR ki volt kapcsolva? Az MCLR kikapcsolását nem szeretik a debuggolásnál a PKx-ek.
Ha csak égetni akarod a PIC-et, akkor a saját programját használd a PK3-nak. Az MPLAB igen körülményes...
Watt / Hp41C, Köszönöm mindkettőtöknek a válaszokat, akkor a szimulátorban letesztelgetem.
Természetesen ha a szubrutin elején változtatnál lapot, akkor elrontanád az egész szubrutinod ugrási lapcímeit, azaz ez bolondság lenne! Kivéve, ha aszubrutinból másik lapon lévő címet szeretnél meghívni.
Lényeg röviden hogy minden ugrás előtt meg kell gondolni, hogy a cím melyik lapon van, és ennek megfelelően beállítani a lapot, ha kell! Felesleges lapozás(bitállítás) pocsékolja a memóriát, ezért tárgyaljuk közben az okos makrót, illetve, hogy mi számoljuk ki, hogy hány sort(bitet) kell a PCLATH-ból beállítani. A lap visszaállítása egyébként a visszatérés után is megtehető a CALL utáni sorban. De mi van akkor, ha pl. a CALL után egy csomó utasítás között egy ugró sincsen, és utána megint jön egy CALL ami ugyanarra a másik lapra ugrik. Akkor elpocsékoltunk memóriát a felesleges lapváltásra. Ezért írtam a példában a sok NOP-ot, hogy jelezzem, nem feltétlenül kell lapot váltani, csak ugró utasítás előtt, ha nem a jó lapon vagyunk, vagy másik lapra kell ugranunk.
Igen, ezert mondom, hogy kezzel kell kioptimalizalni. Linker scripttel meg tudod hatarozni mely rutinok keruljenek egyazon lapra, igy ha tudod azokat a rutinokat egy helyrol hivogatod, akkor azok lap valtasait meg lehet sporolni. Ugyanigy a valtozoknal meg lehet adni mik keruljenek egy lapra, es a bank valtasokkal is lehet sporolni. Az, hogy melyik lapra kerul, meg azt is meg lehet hatarozni, de nem szukseges, nem az a lenyeg, hanem, hogy mik vannak ossze szedegetve egy lapra vagy bankra... Akkor egy db BANKSEL vagy PAGESEL az elejen mikor azokhoz a dolgokhoz nyulsz, es a tobbihez mar nem kell...
És még egy gondolat, ha megszokod, hogy a rutinok végén lapot váltasz, és egyszer nem a 0-s lapról hívod meg a rutint, akkor majd lesz egy pár órád, mire rájösz a hibára!
Köszönöm a válaszokat. watt-nak is. Valóban csak égetésre szeretném használni egyelőre. Sajnos a programozásban nem vagyok még nagyon jártas. A PK3-hoz adták az mplabot, ezért használtam ezt. Mindketten említettétek a PK3 saját programját. Melyik ez a program? Valóban szívesebben használnék egy kevésbé bonyolult szoftvert.
Találtam egy Pickit 3 programmer beta release-t. Nem tudom miért nem adják a programozóhoz ezt (is)?
Heló! Félsiker van mert a Vpp működik, de az 5v-os ág nem, a vdd-t ki be kapcsoltam, semmi és a port checknél is kipróbáltam és itt is ugyan az a probléma. Eddig idáig jutottam. Majd elfelejtettem a Vpp amikor ki van kapcsolva a gépen akkor 5v körülit mérek, az jó?
És annak az egy kérdésnek természetesen semmi köze a PIC-hez!
Hát azért egy kicsi van mert pic-es órához kel.
Szerintem ezzel is menjünk át a égető problémás topicba, ott válaszolok hamarosan!
Bővebben: Link
És az ohm törvényét is itt fogod megkérdezni, mert van az áramkörben ellenállás is?
Idézet: Bizonyára azért nem, mert még nincsen kész. Ismert hibái és hiányosságai vannak (a nem ismertekről nem is szólva....). „Nem tudom miért nem adják a programozóhoz ezt (is)?”
Hát azét ide irtam mert ezt a fórumot nézik többen és itt lehet hogy hamarabb választ-segitséget kapok.
Jogos..! Valóban jól át kell ezt az egészet gondolni. Na, itt kezdődik a programozás nehezebb része...legalábbis szerintem. Nem a villogó lednél meg az első "hello word" nél...
Igen, és ezért nem is szeretek 1 lapnál nagyobb 16F-es PIC-el fejleszteni. Ahová nagyobb program kell, ott már indokolt lehet a nagyobb teljesítmény, nem beszélve a megspórolt időről és memóriáról. A 18F-ek esetében a BANK-olás is sokkal barátságosabb, nem beszélve a táblázatok könnyű kezeléséről! Ez mind sokkal szórakoztatóbbá teszi a program írását, és egy hobbiját művelő ember szerintem jobban érzi magát, ha szórakoztató amit csinál! Itt nem számít, hogy egy PIC 300, vagy 600Ft esetleg 1000(40 lábú erőművek), úgy is egy kell csak, nem profi gyártósorra fejlesztünk.
Ennek ellenére van létjogosultsága a 16F-eknek, (nem vacakok), csak tudni kell mikor melyiket érdemes választani.
Még egy kérdésem lenne..a lapváltásokkal kapcsolatban. Ha mondjuk a PAGE 1 re rakok egy várakoztatás rutint, de annak a PAGE 0 n vannak lefoglalva a változói, akkor mi a helyzet..? Vagy ebben az esetben ezeknek a rutinoknak a PAGE 1 re kell tenni a regisztereit hogy ne kelljen állandóan lapot váltogatni? Mert ha lapot is kell váltani minden regiszterhez nyúláskor az valóban zabálná a memóriát...Csak azért kérdezem mert egy sűrűn használt rutint klónozok a PAGE 1 re (persze más cimkével...stb) pont amiatt hogy ne kelljen állandóan lapot váltani. De ebben az esetben ahhoz hogy a lapváltásokat elkerüljem ennek a rutinnak a változóit is deklarálnom kell a PAGE 1 re, vagy nem jól látom?
Nekem semmi bajom a 16F ekkel. A probléma nálam mint írtam azért jött elő mert időközben a folyamatosan fejlesztgetett program miatt kinőttem a PIC et. Eredendően F628A ra íródott ez a program, aztán mikor vészesen fogyott a memória áttértem a 648A ra mert az lábkompatibilis + dupla memória a 628A hoz képest. Én kis naív azt hittem ennyivel megúszom a dolgot...hát nem..!
A 628A-ig nekem sem(az összes slave-emben 627A van!). De a 876-ot nem szerettem(első projectem volt). Majd ha elkezdesz 18F-ekkel is foglalkozni, majd meglátod. Mint ha a fuldokló ember levegőt kapna!
Nem bizony. Kicsit belekavarodtál a lapba meg a bankokba. A kettő két teljesen más terület. A bankok RAM területet címeznek a lapok programmemóra területet. A bankok nem tudják melyik lapon vagy, nem is számít.
Nézd meg az adatlapban a PIC felépítését(az elején van). Láthatod hogy helyezkednek el az elemek.
Igen..megint összekutyultam. De le is tudom szimulálni működik e...Felesleges volt a kérdésem, köszönöm.
Azt hiszem januárban első dolgom lesz rendelni egy szolidabb 18F et. Majd keresek egyet ami olyasmi mint a 628A/648A. Már úgy értem a perifériák és memória tekintetében.
Jut eszembe, mielőtt valaki felesleges kört futna....A chipcad elköltözött a régi helyéről. Tudtok róla..?)
Én vagy 2 hete voltam a chipcadben és a google maps megszívatott. Mert a 4-6 vili megállótól igencsak messze van. (Kb. 1km) A cím ami a térképen meg van adva, az jó, csak a helye nem. (De ahogy most nézem már kicserélték a térképet.) Chipcad
16F628A-hoz hasonló a 18F1320, szerintem érdemes azt megnézned.
Én ritkán járok náluk személyesen, általában rendelek tőlük. De most jött meg az újévi lapjuk azon láttam a változást, gondoltam hátha valaki még nem tud róla.
Köszönöm, meglesem az adatlapját rögvest!
|
Bejelentkezés
Hirdetés |