Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Idézet: „The project contains no source files” Úgy tűnik nem adtál hozzá forrásfájlt! Tehát a szimulátor rendben(elvileg). Akkor mi a gondod a megszakítások kezdőcímével? Érted, hogy mi az a két cím? Azt is tudod, hogy ha prioritásos megszakítást akarsz, azt engedélyezni kell? Tudod mi az a prioritásos megszakítás?
Hozzáadtam a forrásfájlt, így már lefordítja. Köszönöm!
A két címet értem, bár a prioritásos megszakításról még nem olvastam. Amit nem értek az az, hogy: az addwf PCL,f előtt miért kell kiolvasnom a PCL-t egy változóba és ettől mi lesz jobb. Illetve hogy mit értetek az alatt, hogy a PCLATH és a PCLATU nincs feltöltve, és miért kell feltölteni. Idézet: „A két címet értem, bár a prioritásos megszakításról még nem olvastam.” Ha érted, akkor org-old oda a két megszakítási pontot! A prioritásos megszakítás egyszerű. A magasabb priorítású(0x08h című) meg tudja szakítani az alacsonyabb szintű(0x18h című) megszakítást, ha az éppen folyamatban van. Sokszor ez hasznos lehet, de ki is lehet kapcsolni, ill. be, mert ha jól emlékszem, alapból nincs engedélyezve, de ezt az adatlapban megtalálod a megszakítás résznél a hozzá tartozó regiszterekben. A PCLATH és U-t azért kell feltölteni, mert ezek mondják meg, melyik lapról fogod beolvasni az adatokat. De ezt csak az ilyen retlw-s tábláknál, és relítív PCL-es ugrásoknál okoz gondot. Ezért gondolom, hogy másképpen kéne szervezd a programot, és használni kéne az erre kitalált táblázatkezelő utasításokat. Egyébként sem értem ezt a nagy goto ide odát, ezt nem lehetne egyszerűbben, átláthatóbban? Azt érted, hogy a GOTO és a BRA között mi a különbség, és miért fontos ez a te szervezésednél?
A 18f2550-es PIC-nél ICSP-nek melyik a GND láb a Vss? Vss ből kettő van a 8. és 19.es láb.
Igen, a Vss-t kell a GND-re kötni, de ott az adatlap, abban benne kell lennie.
Oké. Gyere fel MSN-re ha tudsz.
Sajnálom, én most melózok, innen nem lehet, de otthonról majd leszek.
Idézet: „melyik a GND láb a Vss?” Igen, a Vss lábnak felel meg. Idézet: „Vss ből kettő van a 8. és 19.es láb.” Mindkettőt be kell kötni!
Oké.
Ha mindkét Vdd és mindkét Vss ugyanoda van kötve a chipen belül (feltételezem, hogy így van, és méréssel alátámasztottam már magamnak nem egyszer, akkor miért kell bekötni mindkettőt?
(Én még nem tartok az adatlapok böngészésénél, de hamarosan.) Idézet: „Ha mindkét Vdd és mindkét Vss ugyanoda van kötve a chipen belül (feltételezem, hogy így van, és méréssel alátámasztottam már magamnak nem egyszer, akkor miért kell bekötni mindkettőt?” Ha nem kéne bekötni mindkettőt, akkor miért nem hagyták ki az egyiket és tettek a helyére portlábat?
A kérdés teljesen jogos. Meg kéne kérdezni Microchip-éket
Ebben van valami. Én össze kötöm nem tart az semmiből. Megkímél egy hiba lehetőségtől.
Igazad lehet, én is így fogok tenni, de szerintem a könyebb áramkörbe tervezhetőség miatt csinálták így.
Mert ha tényleg "kicsipogtatod" egy multiméterrel, akkor biza össze vannak kötve.
Megnézném mert 16f628 van itthon de azon nincs csak egy Vss.
Nem sokat javít a tervezhetőségen az, hogy kétoldalon vannak a táplábak, sőt inkább rontja. Zavarérzékenység és a tápvezeték impedanciájának csökkentése miatt vannak a táplábak kettőzve. Ugyanazért, amiért a kerámiakondenzátorokat is kell rakni a táplábak közé.
Csak azért kérdeztem meg mert adaptert csináltam ICSP-hez és nem tudtam hogy itt a Vss a gnd.
Szia!
Most olvasgatom a 18F -es adatlapokat.... Itt-ott egy két dolog a régebbiekben jobban érthetően volt leírva. pl.: 18F242 - 252 adatlapjában a Computed goto bővebben van leírva. Itt említik meg, hogy a PCL olvasása feltölti a PCLATHU, PCLATH regisztereket. Idézet: Egy kicsit később pedig ezt:„The contents of PCLATH and PCLATU will be transferred to the program counter by an operation that writes PCL. Similarly, the upper two bytes of the program counter will be transferred to PCLATH and PCLATU by an operation that reads PCL. This is useful for computed offsets to the PC (see Section 4.8.1).” Idézet: „Note: The ADDWF PCL instruction does not update PCLATH and PCLATU. A read operation on PCL must be performed to update PCLATH and PCLATU.” Megszakítási címek a Memory Organization / Program memory organization fejezetben az alábbi képen láthatók. Szia
Köszi az infót, itt legalább mindig tanul az ember valamit
De akkor a 16F628-on hogyhogy csak egy van Ott nem számít a dolog amit írtál? Elnézést, hogy ennyit kérdezek, de még új vagyok ebben
Sucu, te már megvetted a 16f628-ast? Mert én kérdezősködtem ma és Watt kellega azt mondta, hogy 18f-essel kezdjek igy a választásom a 18f2550-re esett.
Még a múlt héten rendeltem két 16F628-ast, mert ahogy írtam is, lemaradt a rendelésből a két digit-potméter az égetőkhöz, így újra rendelnem kellett, elvileg ma hozta meg a haverom.
Most nem tudom rendeljek e mindkettőt 16f628-ast és 18f2550-est, mert a Rádióvilágos újságban 16f628-al magyarázza a dolgokat és nem tudom hogy lehet 18f2550-el is csinálni. Lehet?
Sziasztok!
A nagysebességű digitális áramkörök egyik ellensége a kivezetések induktivitása. A föld vezetéké a legkritikusabb (Ground bounce), hiszen minden kimenetbe befolyó áram ezen a kivezetésen folyik a tápegységbe (a TTL bemenetek aszimetrikusak voltak, az alacsony szintű bemeneten nagyobb áram folyt, mint a magas szintűn). Egy kimenet árama eléri a kb. 10 mA-t. Egy soklábú kontrolleren több ilyen is lehet. Ha az áramot 10nS alatt kikapcsoljuk, a kivezetés induktivitása legyen 1uH, az indukálódó feszültség ~ 1V, ami a TTL (kompatibilis) bemeneteken már nem engedhető meg. Tobvábbá az is problámát okoz, hogy a kontroller belső földpontja emelkedik el a külső földponttól ezzel a feszültséggel, az összes alacsony kimenet feszültsége megemelkedik. Baj lehet a bemenetekkel is, a magasnak érzékelt szintet a zavar idejére alacsony szintnek érzékelheti a kontroller. A tápnál is hasonló jelenségek lépnek fel a kontroller által kiadott áramok kikapcsolásánál, de a TTL (kompatibilis) áramkörök a táp felöl érkező zavarokra érzéketlenebbek (zajtartalék a magas szintnél nagyobb). Sokkivezetéses tokok esetén azért van több táp és föld kivezetés, hogy az impedancia alacsonyabb legyen. Minden kivezetést be kell kötni a zavarok elkerülése érdekében. (A még nagyobb sebességű áramköröknél egyre több lesz a föld és tápláb - vannak olyanok, ahol a eléri a lábszám felét...) A táp és a föld kivezetés régebben a tokok sarkain voltak - a lehető leghosszabb belső vezetékezéssel (de csak kevés láb volt 8-20), a sebesség növekedésével a táp és föld lábak középre kerültek a belső vezetékezés hosszának rövidítése miatt. További probléma léphet fel, ha a kontroller földkivezetési (tápkivezetései) között a tokon belül folyik át kiegyenlítő áram, netán rövidzárlati áram... Sziasztok
Azokat a dolgokat biztosan meg tudod csinálni amik a rádióvilágos füzetben vannak, csak nem pont úgy ahogy ott van, mert a 18F2550 újabb, meg többet tud, meg könnyebb programozni (állítólag), hisz azért javasolják.
De nem vesztettél semmit, mert ha veszel egy 18F2550-et , azzal később csinálhatsz egy PICkit2 debuggert, és akkor már lesz kettő Hiszen egy ICD2-t én is csinálok neked. De szerimtem indulásnak tökéletes a 18F-es neked. Én azért választottam a 16F628-at, mert szimpibb volt, de úgy is veszek másikakat is.
Szia!
Rendelj 16F628A-t illetve 16F648A-t. Ragaszkodj az A végződéshez, mert csak az debuggolható (és olcsóbb is). Szia
Erre még visszatérünk, de most más problémám akadt:
Sokkal lassabban villog a LED mint ahogy szeretném. A PIC 4MHz-es belső órajellel dolgozik. A TMR0 időzítőre 1:256-os osztás van beállítva és 16 bites üzemmódban működik. Ez azt jelenti, hogy a TMR0 túlcsordulásához 1/4000000*256*65536=4,19 másodperc kell. Én azt szeretném, hogy nem 4,19 másodperc múlva csorduljon túl, hanem 0,1 másodperc múlva. Ezért a TMR0 számlálót feltöltöm 65536-0,1/(1/4000000*256)=63973-al, hogy már csak 1562-t kelljen számolnia a túlcsordulásig. A túlcsordulás megszakítást generál. Minden megszakítás esetén egyet hozzáadok az IDOZITES regiszterhez és minden megszakításkor vizsgálom ennek értékét. Ha megegyezik azzal az értékkel amit a program elején beállítok, akkor ki vagy be kapcsolja a PIC a motort (egyenlőre LED-et). A probléma tehát az, hogy valamit elszámolhattam az időzítésben, mert sokkal lassabban villog a LED mint szeretném. Illetve ha tápfeszültséget kap a PIC, akkor az első villanásig rengeteg idő (vagy fél perc) telik el.
Igen elfelejtettem odaírni, hogy A végű, azt hiszem azt rendeltem. (remélem)
Szia!
A Timer0 az Fosc / 4 -et kapja meg bemenő órajelnek... Szia
És aminek a végén I/SP van?
|
Bejelentkezés
Hirdetés |