Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Ennek a 18. oldalán lévő táblázat szerint adjak VSS re és VDD re szokásos 0-t és 3V-ot és mondjuk a REF- lábra adjal 2 V-ot és akkor 2..3V volt ADzik, igaz?
Az analog GND-nek nem szabad eltolva lennie a digitális GND-től, csak az adatlapban megadott mértékig(gyakorlatilag semennyire). Az AD eltolást a referencialábakon kell beállítani, szintén az adatlapban szereplő korlátok között!
A hozzászólás módosítva: Okt 1, 2012
Sziasztok!
Ne felejtsetek el ellapozni az elekromos paraméterek fejezethez, és megnézni a ΔVREF Reference Voltage Range (VREFH – VREFL) paramétert. Általában 1.8 ... 3.0V ΔVREF kell az A/D átalakítónak a megadott 10 (12) bit felbontáshoz.
Értem, köszönöm!
Sajnos nem találom, mik azok a korlátok, amik közt el lehet tolni a dolgot, ha esetleg tudnál mondani egy oldalszámot egy adott adatlapon, az jó volna. Köszönöm!
Ahha. Hát, akkor magyarul érdemes belőni úgy, hogy a számomra hasznos jel legyen a beállított tartomány közepe, és a tartomány "szélessége" pedig 1.8 V legyen kb...
Még egy dolog ezzel kapcs.: Vajon mekkora (valószínűleg le van valahol írva, de én nem találtam meg) a PIC ref lábainak a belső ellenállása? Kell neki egy fesz.követős kapcsolás, vagy lehet neki adni sima feszültségosztót is (100k nagyságrendű ellenállásokkal az táp-elem kímélése végett)? Köszönöm!
Pl. 32MX1xx/2xx data sheet 61186D 274. odala (ADC modul specifikáció).
Egy pontos, stabil referencia IC-re szükség van, abból lehet osztani ellenállásokkal(1%fémréteggel). Érdemes hidegíteni a pontokat a lábhoz közel(100n kerámia). Kisebb hibákat lehet korrigálni a programban is. Az analog testet külön úton vidd a PIC-hez és csak egy ponton kösd össze a digitálissal ott, ahol a legkevesebb a zaj. Lehet próbálkozni 10ohm körüli ellenállás beiktatásával. Ha végül nem kell legfeljebb átkötést teszel.
Helló!
Ugyan már el lett egyszer régen magyarázva, de elfelejtettem. Hogyan tudom kiszámolni, hogy mennyi idő 1 instrukció végrehajtása? Jelenleg 16 MHz-en fut a PIC18F14K22-m és tudnom kéne, hogy mi mennyi fizikai időt vesz igénybe rajta. Odáig azt hiszem ok, hogy 16Mhz/4=4Mhz az 1 instrukcióra jutó feldolgozási idő (kivéve goto és egyesparancsok), de ha ez helyes is, hány ms vagy us az a 4 MHz?
Nem tudom a kérdés tényleg arra vonatkozik-e, amire válaszolok, de 1 [Hz] az [1/s], tehát 1 [MHz], az egy milliomod [s], magyarul 1 [us] (mikrosec.), 4 [MHz] pedig 1/4millió [s], tehát negyed mikrosec., másként 0.25 [us], másként 250 [ns] (nanosec.).. de lehet, hogy nem errre voltál kíváncsi
A hozzászólás módosítva: Okt 2, 2012
4Mhz = 4000000 órajel /sec . tehát 1 órajel 1s/4000000
Köszönöm. Megspóroltad a fáradt, reggeli agyamnak, hogy el kelljen olvasnia a másodperc tört részeit és csomó mindent a microchip fórumban, hogy rájöjjek az egyértelműre
Szia,
T =1/f vagyis 1/4e6 = 0.25usec
Akkor most jön a következő kérdés, hogy pontosan tudjak számolni:
Jól számolom, hogy itt van 1000x250ns nop+ 1x250 az int i; + a void is 250ns? Azaz össz 250500 ns (250,5 us)?
Ezt inkább szimulátorban próbáld ki, mert ez nem ilyen egyszerű. Előszöris van az i++, ami kb. négy utasítás, azután van az, hogy i<1000, amit hasracsapva minimum szintén négy utasítás, a Nop() egy utasítás, és a ciklus végéről az elejére ugrás meg egy BRA lesz, ami egy utasítás, de két ciklus. És ez az egész fut le ezerszer. Szóval ez nagyon szűken számolva is 1000x11 utasításciklus lesz. Az int i az nem plusz utasítás, az i=0 az két utasítás lesz, a void és a végén visszatérés az egy CALL és egy RETURN, vagyis mindkettő egy-egy kétciklusos utasítás.
Legjobb ezt szimulátorban megnézni, mert a fordító optimalizálásától is függhet a dolog. Teszel egy-egy magszakítási pontot a for és a return sorokra, amikor a for sorra ért a futtatás, onnan leveszed, nullázod az órát és futtatod a returnig. MPLAB SIM-ben szépen látható>
Nem tudom milyen órát.
Én eddíg csak a PICKit2-vel debuggoltam és azzal is csak azért, hogy lássam, jól mennek-e az adatok a változókba. A View => Watch az egyetlen óra amit ismerek és abban nem tudom, hol van idő.
Debugger->Stopwatch. Előtte be kell állítani az órajelet valahol ott a Debugger menű alatt.
Hello!
Azt szeretném megtudni, hogy a p18f6722-es pic mikrokontrolleren az RE lábakon tudok e nyomógombokkal megszakítást előidézni? Előre is köszönöm a válaszokat!
Adatlap, interrupt schematic. Ha ott fel van tuntetve, akkor igen.
De igy latatlanban nem. Menurendszer eseten egyebkent szerintem a megszakitas inkabb hatrany, mint elony (mivel lattam, hogy masik topicban is kerdezted ugyanezt). Miert nem jo a pollozas?
Pollozáson még nem gondolkoztam. De lehet úgy oldom meg, nem tudom. Most jutottam el idáig hogy menürendszert kell csinállni, és fogalmam sincs jelenleg, hogy ezt hogyan programozzam le.
Akar megszakitasban is pollozhatsz.
Fontos tudni, hogy a menu alatt kell-e valami mast is csinalnia a cuccnak. Ha nem, akkor hott' egyszeru: elkuldod pollozni foprogramban, addig nem ter vissza, amig le nem utottel valamit (pergesmentesitesre figyelj). De szerintem ezt inkabb a kezdokben kellene megtargyalni. A hozzászólás módosítva: Okt 3, 2012
Ritka, mikor a gomb lekezése nem várhat, azaz ne lehetne megszakítani a pollingozást. Ezért szinte mindig a fő hurokban kap szeletet a billentyűkezelés. Ha közben van valami fontosabb, azt a megszakításba kell rakni. A megszakításban nem illik sokat időzni, ezért nem kell félni, hogy lemaradsz egy gombnyomásról.
Nalam ugy szokott tortenni, hogy pl TMR0 IT jon 10 (20) mS periodussal. Van ket valtozom a gombok kezelesere. Eloszor egyenlove teszem a ket valtozot. Az IT-ben beolvasom a portot egy valtozoba, es megnezem hogy az uj beolvasas egyezik-e a regivel. Egyenloseg eseten nem volt valtozas a gomboknal, tehat kilepek, viszont ha nem egyezik, akkor piszkaltak a gombokat. Akkor eldontom melyik biten volt valtozas, es ezt eltarolom egy ujabb valtozoban, majd egyenlove teszem a oreg_gomb valtozot az uj_gomb valtozoval. Ezt csinalom periodikusan. Bonuszkent egy plusz szamlaloval meg lehet oldani a prellmentesitest. C -re esetleg van peldam.
A hozzászólás módosítva: Okt 3, 2012
Én nem szoktam ennyit finomkodni, a 20 ms-os mintavételezés az általam használt nyomógomboknál megoldja a pergésmentesítést is.
Sziasztok!
Ne haragudjatok, hogy ha már feltették ezt a kérdést mások, de most nem tudtam a topic összes 33042 hozzászólását elolvasni. dsPIC30F2020-at szeretnék felprogramozni, de nem látja meg az égető. De nem foglalom a helyet, mert itt már leírtam: Bővebben: Link Előre is köszönöm a segítséget!
Egy c példa jól jönne. Amúgy jól hangzik a megoldásod.
En CCS C nyelvjarast hasznalok.
Idézet: „Error - file './PIC-es panelmero II-III.o', section 'PGM', Symbol 'kisebb_mint_10.000.000' out of range of relative branch instruction. Errors : 1 ” Ennek nem kellett volna eltűnnie azzal hogy a bra-t kicseréltem goto-ra?
Így:
Szerk.: Megjavult tőle, csak volt egy ilyen ugrás a program más részén is, amit nem írtam át. A hozzászólás módosítva: Okt 5, 2012
Nekem ezek a pontok gyanúsak a cimkében.
|
Bejelentkezés
Hirdetés |