Fórum témák
» Több friss téma |
Sziasztok!
Lenne egy olyan kérdésem, hogy hogyan lehet megoldani, D/A átalakítást 16F877A-n? Valamiért nem találok róla infót Akinek van pár perce rám, annak előre is köszi!
Mivel nincs D/A átalakítója, csak teljesítményszabályozást lehet vele játszani a PWM egységgel (kitöltési tényező változtatása). Ha feszültségjel kell, a PWM kimenő impulzusait integrálni kell, legegyszerűbb esetben egy RC taggal.
A másik lehetőség: DAC IC illesztése (SPI, I2C vagy párhuzamos porton).
Helló! Végülis, nekem az lenne a lényeg, hogy egy adott 8 bites értékre, 0 és 5V közötti feszültségszinteket tudjak kicsikarni valamelyik lábon...SPI és I2C hez még nem értek sajnos, most kezdtem tanulmányozni a PWM-et, de azt hittem nem egy bonyolult, dolog amit szeretnék....Köszi azért! Üdv! Balázs
Az ellenállás létra elég macerásnak tűnik fizikailag, és a fejlesztőkörnyezetem adott, és ebben próbálkoznék De azért köszi! Üdv! Balázs
Vagy használj valamilyen kommunikációs busszal ellátott külső D/A átalakítót. Bővebben: Link
Idézet: Szerintem egyáltalán nem bonyolult. PIC12F629-hez írtam az első PIC programomat, ami 16 bites DAC-ot hajtott meg SPI-vel. Szoftveresen oldottam meg a kiküldést: csak sorban ki kell forgatni a biteket. „azt hittem nem egy bonyolult, dolog amit szeretnék....”
Szerintem ezt a d/a átalakítást, inkább hagyom egyenlőre, mert mint írtam, a fejlesztőkörnyezetemben lévő lehetőségeket szeretném előszőr megtanulni és használni, viszont külső eprom van a uC-re kötve SPI részre. Erről is tanulnom kell majd, de mivel még nem néztem utána, ezért nem terhelnék senkit a kérdéseimmel.. Üdv! Balázs
Sziasztok!
Figyelem,bugyuta kérdés következik.... De az én szintemen ez még nagy feladatnak tűnik. Adva van egy egyszerű nyomógomb kezelő programocska,és egy lcd vezérlő program,mely csak simán egy sort kiír a kijelzőre.Külön-külön mind a kettő működik,de szeretném azt elérni,hogy "egymáshoz legyenek rendelve". Az az,ha megnyomom a gombot ,megjelenik a szöveg a kijelzőn.Hogy tudnám a gomb vizsgálatához hozzá rendelni az lcd programját? Odáig értem,hogy ugye létezik a "BTFFS és BTFSC"utasítás..Ja mert,hogy assemblerben próbálkozok...Előre is köszönöm!
Nem egeszen ertem, hogy hogy erted azt, hogy kulon mukodik a nyomogomb program. Ahhoz, hogy azt ellenorizd, valamit kell mukodtetnie, nem?
Szoval egyszeruen azt csereld ki az LCD progi hivasaval Tegyk fel, hogy kezdokhoz meltoan a bemenet le van huzva es te pozitivot adsz ra a gomb megnyomasaval. Mondjuk legyen a portb6-on a bemenet. Akkor btfsc portb,6 call LCD_rutin tovabbfut: Ha az lcd rutin utan mashova kell ugranod, akkor btfss portb,6 bra tovabbfut call LCD_rutin bra mashova tovabbfut:
Köszönöm a válaszodat!
Igen ilyesmiről van szó.Azt hiszem,értem.. A nyomógomb program most egy ledet működtet az egyik lábon rendesen.Azt őt "bekapcsoló" sort kicseréltem én is az általad leírt call utasításra. Egyébként pont a portb6-on van a kapcsoló.. A gáz az,hogy az lcd programrésznek igazából nem látom, hogy melyik részét kéne meghívnom.Azt hogyan tudnám elérni,hogy az lcd több részből álló programját egy egésznek tekintse? A végére "return"kell tennem,ugye?
Szerintem ha bemasolod, linkeled, akkor latjuk mi is.
Ugye az LCD kezeles tobb reszbol all. Eloszor is inicializalni kell a kijelzot, ez maga is tobb lepeses. Ezt csak egyszer kell megtenni, a program legelejen. Aztan ahhoz, hogy adatot irhass ra, kulonbozo dolgokat kell csinalni, pl. tudatni vele, hogy irni szeretned (R/W lab), beirni az adatot (data labak), tudatni vele, hogy ez most parancs vagy adat (d/c lab) vegul, hogy ervenyes az adat (Enable/Valid). Ez a legalacsonyabb szint, egy db adat vagy parancs kivitele (sot, 4 bites modban csak a fele). Szoval tanulmanyoznod kellene a programot. Altalaban a neve utal ra, hogy a rutin mit csinal (pl. BYTE_OUT) Igen, a call altal meghivott rutint return-el illik befejezni. De a kerdeseidet latva nem biztos, hogy egybol az LCD-vel kellene kezdened...
Sziasztok. Egy GPS modult szeretnék pic-el soros porton keresztül használni. A GPS modul nem tartalmaz RS-232 szint illesztőt de erre nem is lenne szükség elvileg. Viszont a szint illesztő kimenete invertált lenne, ezért az lenne a kérdésem, hogy kell e invertálnom a GPS-től érkező adatot mielőtt a pic-be küldöm. Válaszotokat előre is köszönöm.
RS232 szintillesztő biztosan nem kell. Mekkora tápfeszültségről jár a kontroller és a GPS modul? Ha a modul és a kontroller ugyan arról a tápfeszültségről üzemel, akkor nem kell illesztés. Ha a kontroller 5V -tal megy, de a GPS alacsonyabbról, akkor logikai szintillesztés kell.
Köszönöm! És tudom,hogy egy kicsit erőn felül vállaltam..
Itt van a program,most csak úgy "össze ollózva" a nyomógomb,illetve az lcd kezelő részek...Ugye itt most a PORTD 1 es lábán levő led van ki-be kapcsolgatva.. Ami önállóan működik is.Gondolom a "BSF PORTD,1" utasítás helyén kéne meghívnom az lcd-t. Előre is köszönöm,ha foglalkozol vele..
Szia. Köszönöm a gyors válaszodat. A kontroller 5v-ról a gps 3.3-v ról megy. Én is erre tippeltem, amit te mondtál, csak nem értem, hogy miért invertál akkor a szint illesztő ? És ha invertál, akkor hogy kapok helyes adtbyte-okat pl ha terminállal nézném a gps kimenetét. Vagy rosszúl tudom, és nem invertál a max-232 ?
A TTL - RS232 konverterek (max232 és társai, a mc1488 és mc1489 75150, 75154 stb.) " invertálnak", azaz a logikai magas szintjük -12 ..-3V, a logikai alacsony +3..+12V. A GPS magas szintje majdnem 3.3V az alacsony szintje 0V. A pic minimális bemeneti szintje az Rx lábon 5.0V táp mellett 4.0V. Ide mindenképen kell egy illesztés. a kimeneti szintje a Tx lábon majdnem 5V, ide elég egy feszültségosztó. A témával egy egész topik foglalkozik...
Köszönöm, meg fogom nézni a topikot, a szintillesztés része teljesen világos a dolognak, az adatok "invertálását" nem értem.
Üdv mindenkinek, kicsit elakadtam a PIC-es témában, adott egy 16f628-as PIC amit a céláramkörben szeretnék majd programozni, illetve későbbiekben az eszközt frissítés céljából nem akarom szétszedni, illetve az IC-t kiszedni. A B porton van 8 BIT-es módban egy LCD, de itt van a PGC és a PGD láb is. Ha rácsatlakozok a programozóval, akkor a szoftver azt irja ki, hogy ismeretlen tipus, ha az LCD-t lehúzom róla viszont egyből kiírja, hogy PIC16F628A. Hogy lehetne megoldani, hogy az LCD-t ne keljen leszednem minden programozásnál? A válaszokat előre is köszönöm.
A legegyszerűbb megoldás lenne az LCD-t 4 bites módban üzemeltetni, a PORTB alsó 4 bitjéről. Ehhez a kábelt kellene módosítani.
A program elejére, a PGC és PGD lábak outputra történő állítása elé tegyél késleltetést, hogy a PICKIT kezelésbe tudja venni a kontrolleredet.
Köszi a segítséget. Még egyelőre marad a 8bit most kóstolgatom a PIC-ek világát.
Alapvetően jól működhet, de van egy-két hiba.
Nem tudom, miért van kétszer a PORTB törlése, de ez nem is sokat számít, csak fölösleges. Ahhoz, hogy működjön, a setportot emeld ki, és tedd a program elejére.Az ANSELH után. Csak sebtében futottam át, de talán így működik. Ami gondot jelenthet, az az, hogy a PORTB6-ot az LCD RS vezetékének definiáltad, és részt vesz a gombkezelésben is. Egyébként jól gondoltad, a PORTD1-re való hivatkozásnál kellene meghívni az LCD írás rutinját. Most ennyi. Biztos mások is kiegészítik még. Jól haladsz.
Sziasztok
Tudna nekem valaki segíteni a PIC --hez jól működő égetőt, kapcsolási rajzot küldeni. Előre köszönöm.
Kapcsolások, PIC szekció. Van több is, szolgáld ki magad!
Sziasztok.
Segítséget szeretnék kérni. Most kezdtem igazán soros porton programozni pic basicben.Küldök egy adatot, ami így néz ki. +000 mikor a negyedik értéket megnézném, akkor lefagy az egész de +00 ig tökéletesen működik a lent megadót kóddal. Mi lehet a probléma. Az adatott egy 7szegmenses kijelzőre írom ki, egymás után. Mi a baj? Lehet az egész program semmit nem ér? Kérlek, segítsetek. Előre is köszönöm. Oshon basic programozóval készítem a programot és ott is PC' serial port terminálban nézem a soros vonalat.
Ez egy egyszer lefuto program lenne?
Mert ha egyszer kint van az LCD-n, akkor mi a kovetkezo lepes? En ugy csinalnam, hogy amig nyomod a gombot, addig kint van, utana torli. Egybkent minden OK, egyedul meg a START elott kellene az inicialast meghivni, a tobbi maradhat. Ahogy latod, retlw-vel ter vissza, ahelyett lehet sima returnt is irni, mert a visszateresi ertek most nem kell (KIVEVE a hexchar PCL-es reszt, ott fontos szerepe van!).
Szaisztok!
Volna egy gondom. Adott a mellékletben csatolt áramkör. x2,x3,x4-en nyomógombok csatlakoznak a ledek villogását változtatják, Tökéletesen fut a progi ugy ahogy kell. Viszont ha x2-re rászeretnék kötni egy másik pic kimenetét tehát hogy nyomógomb helyet a pic vezérelje akkor azt úgy kéne megoldanom ha jól tippelek hogy 200 OHm-os ellenálláson keresztül össze kötöm a két picet és a vezérlő pic kimenete folyamatosan logikai magason van, amikor meg váltani szeretnék akkor logikai alacsonyra vált. Vagy pedig inkább műveleti erősítőként valamilyen tarnyóval csináljam? Köszönöm
Szia.
Nekem egy 16f877 pic volt összekötve egy pic 16f84a ?val és semmit nem tettem közé és most már 3 éve így működnek kint több darab. 16f877 3 lábat kötöttem össze a 16f84a a 3lábával. nagy Pic indítottam a kis Pic-et. Sajnos a fájlodat nem tudtam megnyitni. Rakd ki a program részletet és megpróbálok segíteni.
Teljesen jó az általad leírt módszer ( még az ellenállást is kihagyhatod, ha biztos vagy magadban ! ) , csak ne felejtsd el visszaváltani a szintet ( a gombot sem tartod folyamatosan lenyomva! ) .
A rajzodat én sem láttam, legközelebb képet tegyél fel, nem mindenki ugyanazt a szoftvert használja! Steve |
Bejelentkezés
Hirdetés |