Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Hali!
Eddig is sokat segítettetek, nekem ilyen apró észrevételek is fontosak... A többi még tényleg a végén dől majd el! Amúgy jónak tűnik az SD kártya bekötése? Írni és olvasni is akarom... Köszi!
Igyekeztem kijavítani a dolgot!
Belekerült egy 74HCT244-es és egy 74LCX244-es IC! Az SD kártya írós-olvasós rész így most már jó lehet? Köszi szépen
Amit pet csatolt korábban, abban úgy volt. Igazából az eredeti cikk forrását közvetlenül nem láttam...
Csatoltam egy részletet az egyik tervemből.
Az általad választott 74LCX244 nem arra való, amire betetted! A Kimenete akkor 5V, ha a tápja is annyi. Ekkor a bemenetén a High szint 3V-nál is nagyobb lehet. Erről az adatlap nem ír, de a 3V-os beállításba 2V-ot jelez, ami erre enged következtetni, valamint arra, hogy nem erre találták ki, hanem pont a fordítottjára, azaz hogy 3V-os kimenete legyen, és 5V-ot tudjon fogadni a bemenetén. A 74VHCT04A 5V táp esetén is 2V felett High szintet értelmez a bemenetén. Ez kell a kártya felől a PIC bemenete felé, vagy ezzel egyenértékű. Mellesleg nem túlzás a 244-et ide betenni, kicsit sok a lába?...
Üdv!
Amit eddig csináltam: 16F876 A/D konverzió, majd a kapott adat kiküldése USARTon keresztül PC soros portjára. 300 Baudra állítottam és működik!!! (Hyperterminalon próbáltam, érkezik az adat mint a kisangyal. Az utolsó két bit nem teljesen biztos, az ingadozik, na de ne legyek telhetetlen.) Kérdés, bár nem teljesen ide tartozik, de hátha valaki csinált már ilyet: hogyan fogadom 300 baud - al az adatokat LINUX alatt com1-ről? Nézegettem a neten a dolgokat, de kevés konkrétum van... Esetleg "getty"-el, vagy raw blocking módba nyissam meg a com1-et (ttyS0)? A módszer és a nyelv végülis mindegy, csak a 300 baudot kéne megmondani neki alapvetően és a bejövő adatokat kinyerni. Ilyet találtam.: http://www.easysw.com/~mike/serial/serial.html (De itt nem látom, hogy állítani baud-ot... ) Köszönöm!
Hali!
Ezt egy demó kapcsolásból próbáltam kiszűrni, de nem igazán sikerült ezek szerint... Igazad van tényleg túl sok lába van 244-esnek... Nem igazán vagyok járatos alkatrészek terén... Ha nem túl nagy kérés meg tudnád adni a kapcsolásodon az U3-as és U4-es alkatrészeknevét ? ( Sima 74HC14 ? ) Egyébként az SD kártya olvasásához/írásához nem kell bekötnöm a 10,11,12-es lábakat, ugye? Valamint a CS lábat is elég felhúzni, nem? Előre is köszi!
Mi más lenne az U3,4 mint 74VHCT04A!? Eddig erről beszéltünk nem?
A 12-es láb testen van. A 10,11 pedig azt érzékeli, hogy a kártya be van e dugva a helyére, illetve, írásvédett e. Döntsd el szükséged van e erre. A CS-vel kapcsolatban is neked kell döntened. Ha állandóan engedélyezni akarod, akkor lehet, hogy nem kell vezérelned. Nem látom át most, hogy ez jelenthet e gondot esetleg... (pl. nem szerencsés engedélyezve kirángatni.)
Bocsánat, ha néha fárasztó vagyok...
Így gondoltad?
Melyik az a programozás, amit érdemes elsajátítani PIC programozáshoz?
Olyan esetben, ha előtte nem tanulta valaki egyiket sem. Ha C-re szavasztok, akkor a sima C vagy C++-t érdemes-e elsajátítani? Milyen könyv jó a tanuláshoz? Bocsi, hogy ilyett kérdezek, de ha valaki most kezdi, annak biztos, hogy jol jönne erre a válaszok. Igaz, hogy ezt egy másik fórumon is feltettem, de lehet, hogy nem mindenki olvassa azt az oldalt.
Üdv!
Megnéztem az oldalt de az asm még nehézségeket okoz. A kijelző HD44780 kompatibilis. Egy c s magyarázat jól jönne. Idézet: „Melyik az a programozás, amit érdemes elsajátítani PIC programozáshoz?” A korrekt es preciz programozast erdemes elsajatitani De felre teve a trefat, nem a programfejleszto kornyezet vagy programozasi nyelv az amelyiket meg kell tanulni, hanem az architekturat. A mikro kontrollerek NEM processzorok es NEM szamitogepek! Az architekturat velemenyem szerint assembly nyelven es adatlapok olvasgatasaval lehet legjobban elsajatitani, kesobb barmire at lehet terni. ANSI C az egyik leggyakrabban hasznalt magas szintu nyelv (noha a Kernighenek ugy definialtak a C-t, hogy az alacsony szintu, megis inkabb a magas szintu nyelvekhez szokas manapsag sorolni). C++ mikrokontrollerekre csak mostansag kezdett el bekerulni a koztudatba, itt szerintem senkinek sincs tapasztalata ezzel kapcsolatban - bar meglehet tevedek. C++ -t inkabb a WinCE embedded programozashoz hasznaljak, ha afele akarsz elmenni asd bele magad, de egyenlore ASM es utana max C amit javasolnek. Topi cikket olvasd el...
Hali
Ha CCS C-t hasznalsz nezz szet a sajat gepeden a PICC alkonytarban es talalsz peldat a LCD kezelesere . Ha mas PIC-et hasznalsz termeszetesen at kell irnod egy kicsit. Udv Vili
Hali
Udvozlet a PIC-esek taboraban. Eloszor is olvasd vegig ezt a temat az elejetol ( csak 427 oldal) itt valaszt talalsz sokmindenre mert mar sokan feltettek ezt a kerdest. De minden keppen ASM a legudvozitobb. Errol talasz sok jo leirast eloszor is a gyarto honlapjan. Szerencsere az MPLAB ingyenes es nagyon jol hasznalhato. Lehet de nem ajanlom a klf. szuper grafikus szines csili-vili forditokkal is probalkozni. Altalaban elkeszul 1-2 csipre es utana nincs szupport, elfelejtodik az egesz es mehetsz keresni masik forditot. Mindig figyelj hogy a fordito beepitheto legyen a MPLAB-ba. A MPLAB szimulatora jol hasznalhato es indulaskor PIC nelkul is tudsz probakat tenni es elemezni a mukodest. Ajanlom (ha van egy kis penzed) vedd meg a PICkit2-ot mint programozo es mint szimulator is jol hasznalhato (nezz szet az otthoni disztributor honlapjan). Probalkozhatsz esetleg epitessel is de ha nincs gyakorlatod es turelmed akkor udvozitobb egy gyari keszulek. Itt ebben a temaban talalsz sok tanacsot sok jo linket (magyar nyelvut is) . De a legfontosabb tanacs : A doksi olvasasa szinte mindenre ad megoldast. Na jo szorakozast! Udv Vili
Igen értem amit mondasz. Már vettem egy PICKIT2-t.
Gondolom az asm elsajátításához is kellene valami olyan olvasni való, ami leírja a dolgokat. A honlapon spec írás van, de valahonnan elkellene kezdeni. Milyen olvasmányt ajánlasz, amiben benne van az asm leírása is, hogy mit miért stb?
Üdv!
Azt használok, már megpróbáltam átírni a mintát ami benne volt de akkor az lcd.c sírt. A minta elején van 3 féle pic megadva, ha azok helyett beírom a 16f627 et akkor nem engedi ferdítani :'( Csatoltam a módosított mintát.
Á... nem így kell ezt csinálni...
Kb. csak ennyi:
Keresd meg a PICC\Drivers\LCD.c fájlt és ott add meg az LCD kivezetéseihez a PIC portját!
Hali
Nezd meg ezt az oldalt: t-es-t.hu Eleg egyszeruen es ( foleg sokaknak olvashato) magyarul. De a MPLAB elinditasa utan a help tartalmazza az utasitasok leirasat, szintaktikajat. Ja es a lenyeg: keress a web-en egyszeru mintapeldakat, es ezek alapjan a probald meg megerteni a PIC regisztereinek mukodeset. Sokat segit a MPLAB szimulatora ahol lathatod a regisztereket es a leptetes folyaman a valtozasokat. Az vegulis mind1 hogy milyen csipet hasznalsz ( ha lehet NE F84-et, legalabb f627-628 v. f887) a szimulatorban le tudod kovetni a mukodest. Keress ra a neten a Konya Laszlo nevere. O adott ki konyvet a PIC-ekrol de a honlapjan is sokmindent talalsz. A Microchip honlapjan erdemes nezegetni az AN-eket, ahol sok trukkot talasz komplett alkalmazasok, letoltheto forrasprogramok, epitesi tanacsok stb. Van forum is (angol) ott is erdemes bongeszni a temakat. Ja es csinalj egy probapanelt es koldokzsinort a PK2-hoz. Nagyon meggyorsitja a fejlesztes menetet. Ha izgat nekem van tervem 18 es 20/14/8 labas joszagokhoz. (Eagle tervek) estleg elkuldhetem maganban. Udv Vili
Szasztok!
Van megint pár kérdésem: - lehet-e valahogy egy regiszter alsó (vagy éppen felső) félbájtját módosítani a másik fél módosulása nélkül? Tehát pl: nem tudom mi van a felsőben, de az alsó ba be kell írnom valamit. Közben a felső változatlan meradjon. Van erre valami egyszerűbb (gyorsabb) mód, mint egyesével a biteket állítgatni? - CBLOCK-ban létrehozok egy változót (pl: alma), de nem adom meg a címét, hanem rábízom a linkerre. Ilyenkor debugolásnál honnan tudom hova írja, és hogyan tudom figyelni az értékét? (MPLAB)
Üdv!
Így már értem a lényeget. Az lcd.c be viszont nem találom a módosítandó részt. A mellékletbe lévő részhez hasonlót kerestem de nem találtam
Hali
Itt van egy par asm pelda magyarul kommentezve (nem csak Neked) Udv Vili
Hali
Ez a driver alapvetoen 4 bites LCD vezerles. A kivant port kivalasztasa ezzel a sorral tortenik:
//#locate lcd = getenv("sfrORTB") // This puts the entire structure over the port #ifdef __pch__ #locate lcd = 0xf81 #else #locate lcd = 6 #endif #define set_tris_lcd(x) set_tris_b(x) #else //#locate lcd = getenv("sfrORTD") // This puts the entire structure over the port #ifdef __pch__ #locate lcd = 0xf83 #else #locate lcd = 8 #endif #define set_tris_lcd(x) set_tris_d(x) #endif Itt a #locate LCD = 8 helyere kell beirni a Te altalad hasznalni kivant port fizikai cimet(ha 16fxxx-t hasznalsz, 18F-nel a masik cim egyertelmuen). De ha 8 bites LCD vezerlest hasznalsz ez a driver nem jo! Udv Vili
Üdv!
Az mindegy lenne, hogy 4 vagy 8 bit, egyenlőre csak azt szeretném elérni, hogy működjön, ki tudjak íratni valamit. A beállítás még mindig problémás. Kivettem a kommentet de akkor se jó
Hali
Eloszor is nem tudom milyen oszcit hasznalsz de ezt korrektul meg kell adni a c forrrasban: #use delay(clock=20000000) // a szam adja az ora frekijet. Az osc tipusat szinten jol kell megadni (XT , HS INTRC stb). A LCD bekotese vmi ilyesmire kellene hasonlitani: // D0 enable // D1 rs // D2 rw // D4 D4 // D5 D5 // D6 D6 // D7 D7 Ha nem ilyen akkor igy kell bekotni mert a LCD.C ilyen forman fogja kuldeni a megadott portra (itt PORTB) az adatokat : struct lcd_pin_map { // This structure is overlayed BOOLEAN enable; // on to an I/O port to gain BOOLEAN rs; // access to the LCD pins. BOOLEAN rw; // The bits are allocated from BOOLEAN unused; // low order up. ENABLE will int data : 4; // be pin B0. } lcd; Ha minden jo akkor probald meg a szimulaciot az MPLAB-ban lepesenkent es ott latni fogod hogy mikent dolgozik a program. Na egyenlore ennyi Vili
Ja igen! Elfelejtettem odaírni, hogy Assembly-ről van szó. (bár lehet így is egyértelmű volt)
Szia Lozsa,
Persze, hogy lehet, bitmanipulalo muveletekkel. Pl ki ES-eled a felso 4 bitet, majd VAGY muvelettel belerakod a biteket. Valahogy igy: MOVF valtozo,W ; kiemeljuk a valtozo erteket a munka regiszterbe ANDLW 0xF0 ; felso 4 bit marad az also 4 bit torlodik ORLW 0x09 ; bealitjuk a biteket MOVWF valtozo ; vissza pakoljuk az egeszet a valtozoba CBLOCK-os kerdes: View menuben a Watch ablakot megnyitod, utana kijelolod a valtozo nevet a forrasban es egerral athuzod a Watch ablakba. Ugy is csinalhatod ha az Add symbol hoz eirod a valtozo nevet ill legordulobol kivalasztod es raboksz az Add Symbol gombra.
Üdv!
4MHz es kerámia rezonátort használok, XT. A kijelzőt átkötöttem. A gond az, hogy fordítani se engedi. Error 128 "LCD.c" Line 42(1,6): A #DEVICE required before this line Az nem világos, hogy az lcd.c be mit kell mire átírni
Én is gondoltam ilyesmi megoldásra, de ez szintén 4 ciklus, mint mikor egyesével állítgtom a biteket. Persze ha már 5 bitet kell változtatni akkor már gyorsabb így.
Sziasztok!
Mit kéne változtatnom az lcd.c-ben mert 4 soros kijelzőm van. Most csak 2 soros üzemmódban megy. És nagyon sok hülységet ír ki pl: azt akartam kiíratni vele hogy "Akos" és ezt írta : "?!#3" Üdv: Ákos
Ez a Watch ablakos dolog nem megy nekem...
Ha belehúzom belekerül, de azt írja mellé, hogy "symbol not found" Add symbol gomb meg le van tiltva valamiért |
Bejelentkezés
Hirdetés |