Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Na igen, ha lusta az ember, akkor így jár, mint én most. Köszi! Gondolom ez is Murphy törvény...
Hali
Men tudná valaki megmondani, hogy kell a 16F628A-nál beálítani az A/D átalakítót. Azt szeretném hogy egy piti állapotát deolvassa, 8-bit pontossággal.jó volna egy példa progi is .asm-be. Köszi u.i: az adatlatot már néztem
Idézet: „az adatlatot már néztem” És mi nem világos? Ha az adatlapot nézted, akkor rájöhettél volna, hogy a 16F628A-ban NINCS A/D átalakító!
Potyo megmondja ám a frankót
De különben ez egy ilyen éberségi teszt volt szerintem, hogy ki mennyire figyel. Vagy lehet akár valamiféle verseny felhívás, hiszen ha beállítod az A/D konvertert ott ahol nincs, akkor már nagyon értesz a PIC-ekhez
Üdvözlet!
Előre leszögezném, hogy "Hobby PIC programozó" vagyok, nemrég kezdtem el CCS nyelven progikat írni. Egy olyan problémába ütköztem, hogy PIC16F690 PIC -nél RA0(AN0) és RA1(AN1) lábakat analog bemenetként és RA3 lábat pedig dig. kimenetként és RA2,RA4 lábat pedig dig. bemenetként akarom használni, de nem birom beállítani.
Ebben kérem segítségeteket, előre is köszönöm. GaryLaci
Amit a program csinálna: két csatornán fesz mérés, LCD kijelzés, 3 db MCP42010 digipoti állítgatása.
Szia GaryLaci,
Ha ugy idezed be a kodod, hogy [code=C] akkor annak mukodnie kell, de mellekletkent is tokeletes Szoval itt van ez a sor: set_tris_a(0b00010100); Ez azt allitja be, hogy RA0 es RA1 digitalis kimenet, RA2 bemenet, RA3 kimenet, RA4 bemenet, RA5 kimenet... (6 bites a PORTA ugyhogy nincs tovabb). Szerintem epp forditva akartad Marmint a 0 jelenti a kimenetet es az 1 a bemenetet, es amik a port kimenet addig nem tudsz rola analog mereseket sem vegezni. Idézet: „es amig a port kimenet addig nem tudsz rola analog mereseket sem vegezni. ” Igazság szerint tud, így lehet mérni a lábak terhelését némi kalibrálás után. De ez már nagyon hardcore meg advanced kategóriába esik Amúgy elég könnyű megjegyezni, hogy a nulla a kimenet és az egy jelenti a bemenetet a tris biteknél. A 0 az olyan, mint az O, vagyis output. Az 1 meg nagyon hasonlít az I-re, vagyis input. Idézet: „Amúgy elég könnyű megjegyezni, hogy a nulla a kimenet és az egy jelenti a bemenetet a tris biteknél. A 0 az olyan, mint az O, vagyis output. Az 1 meg nagyon hasonlít az I-re, vagyis input.” Hehe, jo tanar lenne beloled Vagy lehet az is vagy? :yes:
Sziasztok
Valamit konyítok a pic-ekhez, de nem vagyok egy übermajszter. Őszintén szólva az assemblyt nem nagyon csipázom, szemben a c-vel. Mostanában MicroC-t használok, de annak vannak nyűgjei, pl. a soft_uart library-val. Valaki tudna javasolni más programot amiben tudnék pic-et programozni? A ccsC-t néztem, de az szerintem nem pic16f-es sorozathoz lett kitalálva. Más: programozót is keresnék. Most egy vellemant használok, de az is csinál néha fura dolgokat. Mit javasoltok, ha mondjuk a 18-as sorozatot is szeretném kipróbálni?
Én a HitechPicc-t javaslom, vagy a 18-as sorozathoz a gyári microchip C fordítót. Programozónak pedig a pickit2-t.
Jóestét mindenkinek!
Nos, a következő kérdéseim lennének.Nekem most csak PicKit 2-es programozóm van, és a PIC24FJ128GA010 chiphez az mplab nem ajánlja fel a pickit 2őt mint programozó, de a pickit 2ő programjából tudom programzni....Esetleg megoldható lenne mindez az Mplabból is? A másik kérdés/kérés az volna hogy nem tudna valaki beírni egy programot ami felgyújtja az összes ledet az Explorer16 panelen?Előreis köszönöm:Katona Ábel
microchip oldalán: 16-bit 28-pin Starter Board Software v2.zip ledet villogtat
Meg lehet így is jegyezni, de ha a helyes úton szeretnénk járni, akkor úgy célszerű gondolkozni, hogy tris = tri-state, az 1 pedig true a 0 false.
Sziasztok!
Segitséget szeretnék kérni.Mégépitettem az alábbi kapcsolást és valamiért nem akar működni.Az LCD felső sorában csak kis téglalapok vannak.Pedig elméletileg ennek működnie kellene.Az asm fájlt és a kapcsolási rajzot mellékelem.Minden segitő szándékot nagyon köszönök! Ui.A 16c84 helyett 16F84A - használtam.
Elég rosszul látszik a rajz, de én úgy látom, hogy a kontraszt láb fixen tápra van kötve. Az úgy ritkán jó. Egy potméterrel kellene a rajta lévő feszültséget állítani és akkor a kockák jó eséllyel betűkké válnának.
Első gondnak én azt látom, hogy az asm-ben nincs sehol definiálva a PIC konfigurációja. Ebből következően nem tudom, a hex-ben, amivel programoztad a PIC-et, benne volt-e valamiféle config. Először ezt kellene tisztázni mindenképpen.
Ha a config jó, akkor is lennének még aggályaim az LCD inicializálásával, mert ott nagyon nincsen betartva az a folyamat a hosszú időzítésekkel, amit a HD44780 adatlapján az iniciálási folyamatábrában megadtak.
Hali! PIC16F648A-ról van szó. Milyen PIC-ekre vonatkozó "művelettel", fogalommal kell foglalkoznom, vagy egyáltalán létezik-e olyan megoldás, hogy az egyik PIC kiolvasson a másik PIC eeprom területéről? Vagy másként, az egyik PIC adatot ír a másik PIC eeprom-jába?
Köszi! g
Sajnos a rajz nekem is igy van meg.A potit természetesen beépitettem mert szerintem sem jó ebben a megoldásban.Bárhogy állitom a kontrasztot nem változik,a kockákon kivül semmi.
Erről a honlapról szerettem volna megépiteni.
http://technology.niagarac.on.ca/people/mcsele/TemperatureAlarm.htm Sajnos saját kútfőből még nem sikerül irnom progit és ezt találtam a neten.Amire szeretném használni ezt az áramkört arra tökéletes lenne.Feltéve ha sikerülne müködésre birni.Ha esetleg tudnál nekem ebben segiteni,nagyon megköszönném!
Szia googa,
Persze, hogy letezik ilyen megoldas, ezt nevezik programozonak. A programozo kepes ugye egy adott interface-en keresztul egy PIC irasara, olvasasara es torlesere. A ma kaphato szinte osszes PIC rendelkezik soros programozas lehetosegevel, amit roviden ICSP -nek szoktak emlegetni (In-Circuit Serial Programming) Ehhez alaposan at kell tanulmanyoznod nemcsak az adatlapot hanem a Programmer Specicicationt (neha ugy talalod meg, hogy Memory Programming Specification). Termeszetesen mikozben egy masik PIC-et irsz vagy olvasol ilyen forman, a masik PIC mukodese megszakad, es az ujra inditani teljes resettel tudod majd. Ha ez nem jo, akkor azon kellene elgondolkodni, hogy inkabb a ket PIC kommunikaljon egymassal, amire SPI-t vagy I2C-t szoktak hasznalni leggyakrabban. Akkor a "fonok" kiad egy utasitast a "beosztottnak", hogy legyszi add vissza az EEPROM teruletedrol ezt meg azt, es az vissza adja. De ha mar I2C-zel lehet erdemesebb kulon EEPROM modult hozza csapni - akkor I2C-n keresztul tobb PIC-bol is elerheted ugyanazt az EEPROM-ot es nem kell utasitasok feldolgozasaval foglalkoznia a PIC-eknek...
Köszönöm! Az ilyen válaszokat szeretem. Akkor I2C lesz a vége külön eeprom-al. Már csak egy jó oldal hiányzik ahonnan meg lehet tanulni ezt a dolgot.
Egyébként a többieknek, kezdőknek ajánlanám a következő oldalt Tudomány és Technika, ahol a midrange PIC-ekről mindent elmondanak részletesen. Még nincs teljesen kész, mióta olvasom azóta folyamatosan bővül. Sajnos még a soros kommunikációnál nem tartanak, de például a PWM már szépen le van írva.
Nincs itt fogalom zavar? Az EEPROM az nem Flash, még ha hasonló is a működésük!
A PIC EEPROM-jának kiolvasásához semmiféle loader nem kell, csak egy soros, vagy párhuzamos kommunikációs csatorna a két PIC között és a megfelelő program a PIC-ekben. A Flash program terület írásához sem feltétlenül nevezném bootloadernek azt a programot, ami az egyikből kiolvassa majd átküldi a másiknak az adatokat. Az viszont biztos, hogy flash programterületet programfutás közben nem nagyon lehet lekérni a másik PIC-ből úgy, hogy a lekért utasítás a lehívó PIC-ben hajtódjék végre. A fő kérdés, hogy a googa végül is mire gondolt?
Kérlek pontosítsd mit szeretnél a külső EEPROM-ban tárolni? Program utasításokat, vagy sima adatokat?
Jajj de sok segítőkész ember, kezd jó napom lenni.
Szóval, a lényeg annyi lenne, hogy az egyik PIC másodprecenként 4x megvizsgálja 8 lábán, hogy 'L' vagy 'H' jel jön be rajta és ezeket az értékeket az EEPROM-ban rögzíti bizonyos címeken. Majd utána amikor a 'MASTER' PIC-nek ideje van ránéz az előbbi PIC EEPROM címeire és az ott tárolt 'L'-nek ill. 'H'-nak megefelelő értéket felhasználja a saját programjában, vagy más szóval kiértékeli. Remélem így érthetőbb.
Igen, köszönöm a pontosítást!
Nos, ezzel a világon semmi gond nincs! 1. A mérő PIC kiértékeli a szinteket és letárolja az EEPROM-ba. 2. Az adatgyűjtő PIC soros vonalon(USART, I2C, SPI, CAN stb.) kérést küld a mérő egységnek, ami erre kiolvassa az EEPROM tartalmat(ill. egy részét) és elküldi az adatgyűjtő PIC-nek. 3. Az adatgyűjtő PIC feldolgozza, vagy tovább küldi pl. a PC-nek, vagy kitárolja egy SD kártyára, stb. stb. Az EEPROM kezelését az adatlapok példával segítik assembler nyelven. Nem tudom milyen felkészült vagy, így egyelőre várom a további konkrét kérdéseidet.
Köszönöm, teljesen világos a vázolt folyamat. Igazából amit ezek közül még nem próbáltam az a két PIC közötti kérdés-válasz kommunikáció. Mint említettem 8 memóriacímről kellene egymás után lekérdezni az adatokat és azokat "főnök" PIC programjában tovább kellene használni. Ennyi.
Melyik lenne erre a leggyorsabban tanulható és alkalmas kommunikációs megoldás. Mint említettem 16F648A-ról van szó. az adatlapján konkrétan maga az I2C szó nem szerepel a kereső szerint, de az USART az pl. igen.
Üssetek agyon, de én azon az oldalon lévő hex-ben sem látok config biteket. Azok nélkül meg RC oszcillátorral és bekapcsolt watchdoggal indul a PIC, ami nemigen jó.
Előállítottam a config biteket is tartalmazó hex-et, esetleg próbáld meg ezzel! |
Bejelentkezés
Hirdetés |