Fórum témák
» Több friss téma |
Sziasztok!
16F676-nál ha be állitom _INTRC_OSC_NOCLKOUT-ra akkor alapbol 4MHz fog menni a PIC? Vagy be kell konfigurálni assemblybe. Mit kell be irni assemblybe amikor az orajelet állitom be? Köszi
Igen, csak a konfigurációs szóban kell megadni az oszcillátor típusát ebben az esetben. Lehetőség van a belső oszcillátor kalibrálására is, mindezen információkat bővebben az adatlap tartalmazza.
Szia!
Csak 4MHz -es oszcillátora van... Ha még a MCLR -t is letiltod, tegyél a kimenetté konfigurálás, T1 gate, oszcillátor engedélyezése elé néhány ms várakozást...
Üdv!
Megint én vagyok. Valakit megkérek írjon egy könyv címet a következő elvárásaim alapján -mivel a csipp-csupp tanulásom nem igazán alapokra épül-: alapfoktól kezdőknek, C nyelvet és ne assembly-t használjon, magyar nyelv előny. Rengeteg könyvet találtam de egyik része érthetetlenül magyarázott számomra másik fele pedig assembly-t részesítette előnyben és használta. A másik pedig az, hogy egy mások által ajánlott könyvel szeretném kezdeni. Inkább legyen angol csak konyhanyelven tárgyalja a dolgokat. C nyelves ismereteim alapfokúak. Apropó ez utóbbival kapcsolatban is van egy kérdésem. Win7 alatt milyen C programokat ismertek. Sajnos a DOS-al eddig a bajom eléggé meggyűlt Win7 alatt, míg a visual C#-ban néha a C parancsok nem kompatibilisek vagy épp generál a program is párat. Valami ötlet esetleg?
A konyvespolcon van C konyv PIC-re, es altalanos C-re is. Magyarul es kulfoldi nyelven. Nezz szet!
Köszönöm. Nagyon tetszik ez a könyvespolc kifejezés.
Sziasztok
Kezdő vagyok PIC téren, egyelőre csak mások által megírt dolgokat próbálok életre kelteni, eddig nem is volt gondom. Most belefutottam egy nem működő kapcsolásba és nem tudom, hogy én égetem e be rosszul a programot vagy a pic-el van e a probléma. A kapcsolás egy RGB ledes lámpa lenne, a kapcsolási rajzon PIC 16F628A szerepel, nekem itthon egy 16F628 20/P pic-em volt (jópár éve kaptam egy barátomtól, a fiókban porosodott, az ICD 2 látja, írja, olvassa, töri gond nélkül), gondoltam ennek is jónak kellene lennie, sajnos sem az oldalon írt konfig bitekkel, sem úgy hogy ezeket a forrásból veszi nem indult el a kapcsolás. A 15-ös lábon akkor is test van, mikor a dip kapcsoló nincs zárva és 5V-nak kellene lennie. A program beégetésére egy eredeti ICD2-t használok. A kapcsolásból találtam egy másik verziót is, ott 6-os dip kapcsoló van 2 + funkcióval, és máshogy van a pic-hez kötve, ugyan ez a jelenség. Én csinálok valamit rosszul vagy ide nem jó a sima 628-as és mindenképp az A-s verzió kell? A lámpa párom szülinapjára készülne. A segítséget előre is köszönöm :worship:
A PIC - Miértek, hogyanok c. topikban szerepelt már ez a kapcsolás. Ha jól csalódom, ebben a hozzászólásban van a megoldás. A "használati útmutató" pedig ebben található.
Szia!
A belinkelt oldalon ott a forrás álomány is... Igaz, jal -ban íródott, de a beállítások így is kiolvashatók...
Nekem annak idején (januárban) azt a forrást nem sikerült lefordítani. Nem tudni pontosan, hogy melyik változattal, milyen támogatói könyvtárral fordul. Akiknek működött, csak a kész HEX állományt használták.
Köszönöm a válaszokat.
StefuPeti által a linkelt topicba feltöltött zip-el is próbálkoztam még tegnap éjjel, Annyit sikerült elérnem, hogy a konfig biteket a forrás által állítva beíródik a hex de ír valami hibaüzenetet, hogy nem teljesen jók a konfig bitek ( 16F628 20/P pic-et használnék), éjfélkor nem volt már energiám tovább foglalkozni vele. Ma este újra megpróbálom életre kelteni. Bari
Pedig a két PIC konfigurációs szavai között 1 bit elérés van, az is úgy, hogy a A-s típusnak 1-el több van a kódvédelemre, azaz nem nagyon szabadna ettől lennie. A PIC-ek felépítése között azonban van eltérés, de ez csak akkor okozhat problémát a migráláskor, ha érinti az adott részt a program.
Sajnos a programozáshoz még nem értek, így nem tudom megítélni, hogy a program használ e ilyen részt a pic- ben ami az egyikben benne van, de a másikban nincs, a fentebb belinkelt oldalon azt írja jó a sima és az A verzió is (one PIC 16F628 or 16F628A and a suitable device to program this microcontroller), így gondolom jónak kéne lennie. Este tudok írni konkrét Mplab hibaüzenetet, pontosan nem emlékszem rá mi volt, de valami olyasmi, hogy a beállított konfigurációs bitek közül van olyan amit nem támogat az adott pic, ettől függetlenül beégette a hex-et, a 15-ös lábon nem volt már fix test, és a piros led egyfolytában világít, de mást nem csinált. Este jelentkezem a fejleményekkel, remélem sikerül életre kelteni.
Bari
Ha azt írják, akkor elvileg nincs is kérdés!
A hibaüzenet pontos, valóban az A-s típus CP1 bitje nincs, azaz nem használt a sima típusban. Ez semmi gondot nem okozhat. Annak mennie kéne, ha mindent összevetettünk!
Tegnap sajnos nem jutottam el odáig hogy ismét foglalkozzak az áramkörrel. A pontos hibaüzenet:
MPLAB ICD 2 does not support programming this device if both the internal oscillator and internal MCLR are selected. You may continue programming, but you are encouraged to cancel, reconfigure your device, and try again. A konfig beállításokat a forrásól veszi, megpróbálom kézzel beállítani ezeket hátha sikerül. Bari
Sajnos kicsúsztam már a módosítási időből.
Kézzel beállítva a konfig biteknél a külső MCLR-t már hibaüzenet nélkül beégetődik a hex, és a kapcsolás is működik. Köszönöm szépen mindenkinek a segítségtt :worship: A kész lámpáról rakok majd fel képet a ki mit építettbe. Bari
Sziasztok.
Kicsit belekeveredtem a PIC16f A/D konverterébe és nem nagyon találom a kiutat. Tehát. Az alap elmélet, hogy egy A/D bemenetre rákötök egy potit, három másik portra 3db ledet, ha egyik irányba fordítom a potit (középállástól számítva) az egyik led világít, ha másik irányba fordítom a másik led, ha középpen van a harmadik led világít.(ez a hardver része). Beállítom az A/D-t ahogy kell, ez idáig müködik is. Beolvasom az ADRESH-t ami ugye csak 8 bit a 10-ből. Az ADRESL-el egyenlőre nem foglalkozom, mert...Namost a program szimulátoron megy úgy ahogy a hardver résznél leírtam, csak itt akadtam el, ha jól értelmeztem eddigi olvasmányaim, akkor az A/D 0-1024-ig alakítja át az analóg jelet. Ahoz, hogy a középállásnál világítson a led, ennek az értéknek 512-nek kell lenni, ha csak a felső 8 bitet használom (ARDESH) akkor ugyanez az érték csak 127, de nem értem, hogy lesz 1024-ből 255.Tudom, hogy 8 bit csak 255, de akkor hova lesz a többi érték? És ha mind a 10 bitet használnám, azt ASM-ben hogy adjam meg, hogy a közép 512. Nem értem. (Kicsit bonyolult ez nekem). Megköszönném ha valaki el tudná magyarázni tőmondatokba.
Szia!
Ha csak a felső 8 bitet használod, akkor a felosztás csak a negyede a lehetségesnek. Ekkor 0- 0xff ig használod a számokat. Közép érték a 0x7f, jól írtad. Ha mind a 10 bitet használod, akkor a Ram-ot ellapozod eggyel följebb, kiolvasod az értéket, visszalapozod a ramot, és a továbbiakban valahova elmented az alsó számot. A két szám tekinthető 1db 16 bites számnak, ami a 11. től a 15. bitig 0-val van feltöltve. Na most ha összeakarod hasonlítani monjuk az 511 -el , ( 0x1ff) akkor egy kivonást kell csinálnod .A CARRY bitet beállítod 1-re elsőnek kivonod az alsó byte-ot ,ha az nagyobb, akkor jelzi a C bit , akkor a második számhoz hozzá kell adni mégegyet,(elágazás) ezután kivonod a másik számból a felső byte-ot az eredményt jelzi a Z bit (egyenlőek),és jelzi a C bit is, kisebb vagy nagyobb. Ettől fog elvállni melyik led is világítson. üdv.: Foxi
Szia!
A szimulátor pontos, a megvalósított áramköz zajos... A középállást úgy figyeld, hogy egy alsó és egy felső hatás között levőt tekinted középállásnak. pl. 126 és 128 között vagy 125 és 129 között stb.
Köszönöm a kimerítő választ, így már kicsit érthetőbb a dolog.
Ha csak a felső 8 bitet használom, és pl. a ref. fesz a VDD-VSS, akkor ugye a közép érték az 127d=2,5V. Ilyenkor mekkora lépésekben számol az A/D? Ezt ki lehet számolni valahogy? Gondolom, akkor a pontosság rovására megy, ha csak 8 bitiet használok.
Igen két érték között lévö volt az értékhatár, de nem ez volt a bajom, hanem az elmélet. Most beégettem a progit egy PIC16f877-be rádugdostam a ledeket és láss csodát, működik.(mellékelve) Foxi63 elég jól elmagyarázta az A/D működését.
Szia! Hát igen a felbontás = 5.0V /255 = 19,6mV
amennyiben 5V a PIC tápja . Jelen esetben (led) nem érdekes a felbontás. A potméter max. 10K lehet, de érdemes a csúszka és a test közé egy 10- 100nF szűrést tenni, akkor stabil lesz a feszültség.Esetleg átlagolhatsz, összeadod 8x az eredményt, majd 9. re eltolod 3 bittel jobbra (/8), vagy egy időzítővel csak 1sec időnként olvasod be. vagy ....... Na ezért érdemes programozni!!! üdv.: Foxi
Tehát a variáció tárháza kifogyhatatlan.Jelen esetben a PIC tápja 5.0V, a poti 10k, külső VREF+ 3.2V stabil (AN3), mindenhol 100nf szűrés kivéve a analóg bemeneten, ott csak 10nf (AN0), és 0.01mV-os pontosság kell nekem.
Köszönöm szépen a segítséget! (ha ennyi elég.)
0.01mV az elég meredek, ahhoz kb. 19 bites AD átalakító kellene. Biztos kell neked ekkora? Vagy 10mV akart az lenni?
Bocsi nem 0.01mV, hanem 0.01V. Mégegyszer bocsi az elírásért.
Idézet: „Bocsi nem 0.01mV, hanem 0.01V” Tehat 10mV. foxi63 szamitasabol kiindulva neked 2.5V referencia fesz kellene, igy akkor 2.5 / 255 = 0.0098 ~ 0.010V azaz 10mV lesz a felbontas...
Igen 10mV, de a referencia fesz az 3.2V, azt írtam késöbb. Ebből a 3.2V-os ref feszből csináltam a 3 ledes példakapcsolást.
A kérdés már csak az, hogy érted-e már, hogyan kell kiszámolni a felbontást adott bitszámú A/D esetében, mert azért ez nagyon egyszerű! Ha igen, akkor mi a probléma azzal, hogy 3,2V a ref feszed?
|
Bejelentkezés
Hirdetés |