Fórum témák
» Több friss téma |
Hogy érted, hogy adapterben? Milyen adapterben? Az úgy nem jó, hogy egyszerűen rákötöm a PIC-et céláramkör nélkül a WLPT-re és bekötöm az MCLR és a +5V közé a 10k-t?
Azzal a comport-ossal ugye nincsenek ilyen gondok össze forrasztom és lehet is programozni??megint ment e-mail
Sziasztok.
egy újabb gondom akadt, az lcd-vel. Kiválóan működik minden, amíg el nem érem a 16-ik karaktert. A program szerint akkor át kellene kapcsolnia képernyő görgetésre, de nem csinál semmit. Ráadásul azt írja az adatlap, hogy ha a fölső 40 karaktert teleírom, akkor átlép a 2. sorba, de ezt sem csinálja. Ha a képernyő görgetés helyett a 2. sor címére akarok írni, akkor sem ír oda. Pedig 2 sorosnak állítottam be. Szerintem. Csatolom a részletet, mert itt mindig összerántja.
Kicsit kezdek besokalni, mert ennyi értetlenkedés már sok! Tök egyszerű dolgokról bezsélek, illene megérteni!
Adapternek hívják azt az áramkört, ami csak arra szolgál, hogy a PIC-et fel lehessen programozni egy ICSP-s égetővel. Bármilyen módon alakítod ki, adapter a neve. Tehát az adapterre is kell 10k, csak akkor nem a Vpp-Vdd, hanem a Vpp-Vss közé. Céláramkörben viszont a Vpp-Vdd közé kell, mert különben nem fog elindulni a program. (Abba ne menjünk bele, hogy mi van akkor ha az MCLR funkció ki van kapcsolva, mert akkor is kell a 10k, csak más okból, lényeg, hogy mindig kell, ha jót akarsz magadnak és a PIC-nek!)
Ez nem az égetővel összefüggő kérdés, azaz minden égetőnél ugyanúgy kell eljárni a 10k esetében. Ez egy fontos dolog, mert különben meghalhatnak a PIC-ek! Működik az égetés anélkül is, de simán meghalhat a PIC.
Értem szvl hogy ha jól értem akkor akár hol használom a pic-et akkor kell belle a 10k-s ellenállás jól értem ugye akár milyen a kapcsolás?
Igen, ilyen egyszerű. Hogy hová, azt leírtam az előbb.
Kivéve ha tartalmazza a céláramkör Na most találtam ezt az áramkört ez mondjuk ha jól láttam tartalmazza a 10k-s ellenállást ugye? Bővebben: Link
Most már mindent értek. Még valami: a WPB-ben lévő PIC-eket mind lehet égetni a WLPT-vel?
Igen. Ha az áramkörrel együtt progizod, akkor már nem kell bele még MCLR 10k-s ellenállás. Már én is értem.
Már hogy ne kéne! Az áramkörben is kell. Ha már van benne, akkor még egy nem kell, de ha nincs, akkor hibásan tervezték, bele kell tenni!
Igen. Nem az égetőáramkör határozza meg, hanem az égető program.
Szerintem már az inicializálás is hibás. A 4-bites üzemmód beállításál előbb egy 0x20-at kell kiküldeni (csak a felső félbájtot, mert akkor még 8 bites módban van az LCD!), s csak utána jöhet a 0x28 küldése két részletben. Így most valami kavar lett a dolgoból.
De ezeket az elveket adatlap is leírja, gondolom Topi cikkében is megtalálható, én is leírtam már több helyen, lépésről-lépésre (Bővebben: Link1, Link2, Link3), valamelyikben néz utána alaposan. Van egy LCD Szimulátor is, abban ki is próbálhatod a dolgokat. Az inicializálás nálam annyival hosszabb, hogy én a szoftveres resetelést is be szoktam írni, de azt most kihagyhatod.
Én úgy értettem , hogy ha benne van a céláramkörben, akkor az égetőbe már nem kell. Mert 2db 10 párhuzamosan 5k. Annak meg nem örül a PIC.
Az égetőbe egyáltalán nem kell! Ez nem az égető tartozéka, hanem a PIC-hez tartozó áramköri elem!
Arról is írtam már, hogy nem a PIC nem szereti a kisebb ellenállást, hanem a tápegység IC! De nem a táp IC miatt kell, hanem a PIC védelmére, valamint ha az MCLR nincs letiltva, akkor e nélkül nem is indul el a program!
De ha céláramkör nélkül égetek, akkor kell, csak akkor vss felé, ugye?
Mi lenne, ha figyelnél is egy kicsit? Néhány hozzászólással előbb pontosan erre írta le watt a választ.
Komolyan nem értem, mi olyan bonyolult ebben a 10k kérdésben...
Mindet átnéztem alaposan.
Most átírtam az ini-t, Így: INI_LCD CALL S_KESLELTET_100MS ;Az LCD éledésére várunk Bekapcsolás után >55 ms. CLRF PORTC BCF RS MOVLW 0X48 MOVWF PORTC BSF EN NOP BCF EN CALL S_KESLELTET_10MS MOVLW 0X48 MOVWF PORTC BSF EN NOP BCF EN CALL S_KESLELTET_10MS MOVLW 0X48 MOVWF PORTC BSF EN NOP BCF EN CALL S_KESLELTET_10MS MOVLW 0x20 ; Bekapcsoljuk a 4 bites üzemmódot MOVWF PORTC BSF EN NOP BCF EN CALL S_KESLELTET_10MS MOVLW 0X28 CALL WRITE MOVLW 0x06 ; 06h, Entry mode set: increment CALL WRITE MOVLW 0x0F ; 0dh, Display on, cursor/blink on CALL WRITE MOVLW 0x10 ; 10h, Display/cursor shift: cursor CALL WRITE MOVLW 0x01 ; 01h, Display clear CALL WRITE MOVLW D'128' ; LCD cím= 0 (+128), első LCD sor CALL WRITE RETURN Semmi változás.
Idézet: Itt már elrontottad, mert„MOVLW 0X48”
Bővebben: Link
Ezt neked írtam...
Igazad van, a decimális írtam be, de a javítás után sincs változás.
Tudom. Elolvastam még egyszer. Csak aztán összezavartatok. Most már értem.
Sziasztok!
Tudna valaki segíteni, hogy miért nem működik az alábbi program? Ledet kapcsolgatna megszakítással. Köszönöm.
A VEG cimkenel esetleg Retfie lenne jobb valasztas, nem return.
Igy van. A masik, hogy valoszinuleg te is latnad, ha nem a vegere tetted volna azt, ami elore tartozik.
Szubrutint akkor erdemes hasznalni, ha ugyanazt az eljarast tobb helyrol hivod meg.
Köszönöm a válaszokat, igy már működik!
Az 0xC0 parancs (tehát RS=0) kiküldése után lehet megpróbálkozni a második sorba történő írással. Ha nem megy, akkor rossz az inicializálás (tehát az eddig kijavítotton kívül más hiba is van a programban).
Nem mondtad, de feltételezem, hogy az R/W vonal fixen földre van kötve, s az LCD vezérlője HD44780, vagy azzal kompatibilis.
Igen, az R/W és az alsó fél bájt is fixen "földelve" van, és 44780-as.
A PORTC foglalkozik az LCD-vel. A köv. lábkiosztással: Port bitek 0 DB4 1 DB5 2 DB6 3 DB7 4 RS 5 E 6 NC 7 NC Most eszembe jutott, hogy az RS, és E éppen oda van kötve, ahol fontos parancsbitnek kellene lenni. Lehet, hogy ez kavar be? |
Bejelentkezés
Hirdetés |