Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   1030 / 1030
(#) ktamas66 válasza oregharcos hozzászólására (») Pé, 19:34 /
 
A főprogramban kimaradt a IRANY vizsgálata.
(#) benjami válasza oregharcos hozzászólására (») Pé, 19:41 /
 
A megszakításból kimaradt a STATUS regiszter mentése és visszatöltése. Az adatlapjában benne van hogyan lehet ezt megtenni.
(#) cassis válasza Zsora hozzászólására (») Pé, 23:36 /
 
Létezhet olyan eset amikor egy szubrutin verem használata nélkül kerül lefordításra?
Ugyanis van olyan szubrutinom, ahol nem látok LNK #lit14, ULINK utasításokat, illetve az ezeknek megfelelő utasítássorokat sem a kódban.
Verem esetén értem, hogy a lokális változók és az átadott paraméterek az FP keretmutató segítségével bázisrelatív módon címezhetőek (MOV [W14+Slit10],Wnd).
Igaz az én példámban mindenhol az SP (W15) került használatra bázisként, talán ez is a fordító optimalizációja?
A visszatérési érték(ek) szerintem nem kerülnek a verembe: 16 bites eredményig a W0 tárolja, felette pedig W0 -tól kezdődően helyezkednek el.
(#) cassis válasza cassis hozzászólására (») Szo, 0:10 /
 
megj:
Nincsenek visszatérési értékek csak érték.
(#) Zsora válasza cassis hozzászólására (») Szo, 12:22 /
 
Hát... Erre nem tudok válaszolni, mert nem ismerem a fordítókat.
Annak idején MikroBASIC-kel kezdtem a PIC24 programozást, és mindig megnéztem hogy az egyes programrészeket hogyan fordítja Assemblyre. Ma már csak Assemblyt használok, mert akkor tutira az lesz, amit én akarok.
(#) oregharcos válasza ktamas66 hozzászólására (») Szo, 13:48 /
 
Nagyon köszönöm a segítséget! Majd estére megnézem.
(#) oregharcos válasza benjami hozzászólására (») Szo, 13:50 /
 
Jól mondják, hogy az ember mindig hibázhat Nagyon köszönöm, hogy megnézted!
(#) Pali79 válasza oregharcos hozzászólására (») Szo, 14:56 /
 
Ez valóban hiba, de nem ettől nem működik. A status regisztert csak a bankváltásnál használja a program, egyébre nem, így közömbös az értéke. A baj az amit ktamás66 mondott. Hiába változik megszakításban az irány, a főprogram sehol sem használja az értékét.
(#) benjami válasza Pali79 hozzászólására (») Szo, 15:53 /
 
Csak bankváltásnál? Akkor az alsó 3 bitje (név szerint C, DC, Z) az smafu? Pont azok a legfontosabbak. Ha a programodban bárhol egy feltétel létrejötte és az azt követő feltételes elágazás közé beesik egy megszakítás, és az más STATUS értéket hagy maga után egészen mást fog csinálni a programod. Ráadásul a megtalálása sem könnyű, mert teljesen véletlenszerű, hogy hol milyen hibákat fog okozni.
A hozzászólás módosítva: Szo, 15:56
(#) Zsora válasza cassis hozzászólására (») Szo, 16:12 /
 
Csináltam egy gyors tesztet:
1...7db (max. 16-bites) változó esetén a paramétereket a W0...W7 regiszteren keresztül adják át a szubrutinnak. Ott LNK utasítással helyet foglalnak és elhelyezik őket. Minden hivatkozás W14 offszetes indirekt címzéssel történik. Kilépéskor a visszatérési érték a W0 regiszterbe (-től) kerül és a keret ULNK parancsra felszabadul. Több paraméter esetén a maradékot a vermen keresztül adják át, de a szubrutinon belül akkor is W14 regiszterrel hivatkoznak rájuk (mínuszos offszettel).
(#) Hp41C válasza benjami hozzászólására (») Szo, 17:15 /
 
Idézet:
„Csak bankváltásnál? Akkor az alsó 3 bitje (név szerint C, DC, Z) az smafu?”

Ez a feltöltött program egyáltalán nem használja azokat a biteket. Egyébként persze Neked lenne igazad, menteni kell a STATUS regisztert is.
A hozzászólás módosítva: Szo, 17:16
(#) Hp41C válasza superuser hozzászólására (») Szo, 17:17 /
 
Eddig egyszer sem csinált ilyet nekem, még a sokat szidott XC8 midrange CPU esetén sem.
(#) benjami válasza Hp41C hozzászólására (») Szo, 17:34 /
 
Jé, tényleg nem használja Ritkán látni ilyet.
(#) Pali79 válasza benjami hozzászólására (») Szo, 21:26 /
 
Én konkrétan erről a programról beszéltem, hogy nem használja, nem általánosságban.
Következő: »»   1030 / 1030
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu