Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1089 / 1319
(#) watt válasza nemetzk hozzászólására (») Aug 27, 2012 /
 
Nem látom hol címzed meg a második sort? Ha az adatlapot megnézed, nem folytonos a cím a két sor között...
(#) nemetzk válasza watt hozzászólására (») Aug 27, 2012 /
 
Szia kösz a gyors reagálást
MAIN
MOVLW'H'
CALL LCD_PUTCHAR
MOVLW'E'
CALL LCD_PUTCHAR
MOVLW'L'
CALL LCD_PUTCHAR
MOVLW'L'
CALL LCD_PUTCHAR
MOVLW'O'
CALL LCD_PUTCHAR
CALL WAIT_10m
;Itt a címzés 2x4 bitben, persze emellett RS0 RW0 az már a LCD_CMD fvben van:

movlwb'11000000'
callLCD_CMD
movlwb'00000000'
callLCD_CMD

CALL WAIT_10m
MOVLW'U'
CALL LCD_PUTCHAR
MOVLW'S'
CALL LCD_PUTCHAR
MOVLW'E'
CALL LCD_PUTCHAR
MOVLW'R'
CALL LCD_PUTCHAR
MOVLW'!'
(#) watt válasza nemetzk hozzászólására (») Aug 27, 2012 /
 
Próbálj más címet, lehet, hogy nem a C0h-n kezdődik a 2. sor. Esetleg próbáld növelni az engedélyezőjel hosszát.
(#) Sasmadár válasza nemetzk hozzászólására (») Aug 27, 2012 /
 
Szia!

Az N bitet állítsd 1-re 2 soros kijelzéshez:
movlwb'00101000' ;FUNCTION SET
(#) nemetzk válasza Sasmadár hozzászólására (») Aug 27, 2012 /
 
Szia,
Azt már megtettem, véleményem szerint helyesen. A 4 bites üzemmód miatt az említett N bit a következő adatcsomagba kerül (szerintem) ezt bejelöltem.
;-LCD initialization starts-

callWAIT_320m
callWAIT_10m

movlwb'00100000' ;FUNCTION SET
callLCD_CMD
callLCD_CMD
movlwb'10000000'
callLCD_CMD
(#) Sasmadár válasza nemetzk hozzászólására (») Aug 27, 2012 /
 
Szia!

Vedd ki az egyik LCD_CMD hívást a movlw b'00100000' sor után.
(#) nemetzk válasza watt hozzászólására (») Aug 27, 2012 /
 
Az engedélyező jel növelése egyenlőre nem hozott sikert ( 3 további nop-al próbálkoztam). Másik címet is probáltam 40h közelében - még egyenlőre nem javult a helyzet.
b'11000000' Ha jól tudom ebből az MSB a parancs DDRAM címbeállításhoz, a további 7 bit pedig a cím. Ezt is két részletben kell elküldenem, tehát a parancs ahogy említetted c0h:
b'11000000'
b'00000000'
Ebből a cím 40h - ez szerepel a leírásban. Megpróbáltam növelni pl 41h 42h, csökkenteni 3F, de semmi eredmény.
(#) nemetzk válasza Sasmadár hozzászólására (») Aug 27, 2012 /
 
Az sajnos kell. Anélkül semmi nem jelenik meg a kijelzőn, ez a 4 bites üzemmód beállítása miatt van.

Ettől függetlenül az előbb kipróbáltam, és az volt amire számítottam - üres kép.
(#) watt válasza nemetzk hozzászólására (») Aug 27, 2012 / 1
 
Próbáld meg a MAIN-t ezzel kezdeni, azaz beállítani a 80h címet.
  1. movlwb'10000000'
  2. callLCD_CMD
  3. movlwb'00000000'
  4. callLCD_CMD

Ha nem működik az első sor sem, akkor időzítési gondok vannak, vagy valamit elnézünk...
(#) icserny válasza nemetzk hozzászólására (») Aug 27, 2012 / 1
 
  1. movlw b'00100000' ;FUNCTION SET
  2. callLCD_CMD
  3. callLCD_CMD


Ez így nem jó, mert a két callLCD_CMD között elvész a munkaregiszter tartalma (a késleltetés meghívása miatt)! Tegyél be mégegy movlw utasítást!
(#) Sasmadár válasza nemetzk hozzászólására (») Aug 27, 2012 / 1
 
Szia!

Igazad van. Átnézve a programodat a wait_10ms rutin átírja a w regisztert, így a function set érték helyett másodszorra már rossz értékkel hívod meg az LCD_CMD-t. ISIS-ben próbálva:
  1. movlwb'00100000' ;FUNCTION SET
  2. callLCD_CMD
  3. movlwb'00100000' ;FUNCTION SET
  4. callLCD_CMD
  5. movlwb'10000000'
  6. callLCD_CMD

működik. A MAIN elejére:
  1. movlwb'10000000'
  2. callLCD_CMD

E nélkül ISIS hülyeséget ír. A valóságban nem biztos, hogy szükséged van rá.
(#) nemetzk válasza watt hozzászólására (») Aug 27, 2012 /
 
Első körben beállítottam a 40h címet rögtön a main után. Kurzor maradt az első sor elején, de nem írt ki semmit, az első illetve a második sorba.

Utána beírtam main után a javaslatodat, sajnos nincs változás.
(#) nemetzk válasza Sasmadár hozzászólására (») Aug 27, 2012 /
 
Köszönöm a segítséget így már érthető, hogy mi volt a hiba, most már múködik

Az érdeklődők számára csatolom a működő kódot. teszteltem ISIS-el és élő panellel is.
(#) nemetzk válasza icserny hozzászólására (») Aug 27, 2012 /
 
Neked is köszönöm a helpet. Illetve Watt-nak is. igazi csapatmunkában segítettetek'
(#) silent15 hozzászólása Aug 27, 2012 /
 
Sziasztok, nem találtam közös PIC topicot , ezért kérdezem tőletek:
Szeretnék megismerkedni a 32bites mikrokontrollerekkel, és azon belül is a grafikai résszel, ehhez szemeltem ki a "mikromedia for PIC32" érintőképernyős TFT paneljét, amihez lenne pár kérdésem, ami megválaszolást , vagy csak egy kis igazolást kérne, ha tudtok segíteni:

- Ehhez ugye nem kell programozó, csak a botloader ,amivel beégetem a programot?
- Muszály megvennem hozzá a Visual TFT -t hogy rendesen használhassam?
-Érdemes még venni hozzá valamit?
-Miben tudom a programoz megírni hozzá, ami le is fordítja hex re?

KöszI!
(#) Panzer576 hozzászólása Aug 29, 2012 /
 
Hali!
Lenne egy érdekes problémám, amit nem tudok megoldani.
PIC16F887-el építettem egy hőmérős fűtés vezérlést.
4x20-as LCD-re iratom ki az összes adatom. Az LCD-t a processzor indulásánál átkapcsolom 4 bites módba, és az aló 4 adatlábat 10k-s ellenállásokkal a negatívra húzom.
Az áramkör működtet egy nagy villanymotort is, amit egy nagy áramú relé old meg.
A probléma, hogy az LCD majdnem midig a motor leállításánál lefagy és mindenféle kriksz-krakszot ír ki!? Biztos hogy az LCD-áll meg, mert a processzor utána még vezérli a kimeneteit és a motort is.
A PIC és az LCD ugyan azon a 230V-on van, mint a motor.
Nem tudja véletlenül valaki hogy mitől állhat meg? Mert lassan kifogyok az ötletből!
Előre is köszi:
Panzer
(#) nem hozzászólása Aug 29, 2012 /
 
Sziasztok!

Volna egy kis AD-konverziós kérdés.

Info:

Egy szárazelemről működő berendezésnek figyelnie kellene a saját tápját.

Kérdések:

1.: A PIC32-es család tagjainak nem kell referencia feszültséget adni az ADC-hez, ugye? Fel lehet őket konfigurálni belső referenciával, gondolom.

2.: Az elem kapocsfeszültsége 9VDC, a PIC AD bemenete maximum 3.3V, tehát szeretném leosztani 3V-ra, DE: elvileg a PIC-ek AD bemenetére (32-es PIC dokumentációban mondjuk nem találtam meg) ilyen max 10kOhm-os ellenállást lehet tenni (pontosabban azt írja, hogy "max source resistance = 10kOhm").

Ugyanakkor szeretném elkerülni, hogy a feszültségosztó zabálja az elemet.

Mit tudtok ajánlani?

Saját ötletek:

Nagy értékű ellenállásokból fesz.osztó, majd utána az osztott feszültségre egy kondi, hogy legyen ott delej, amikor az AD konverziót végez (ritkán akarok AD-zni).

VAGY

Nagy értékű ellenállásokból fesz.osztó, és utána egy feszültségkövető műveletierősítős kapcsoláson keresztül mennék a PIC AD lábára.

Szerintetek? Egyéb ötlet?

Köszönöm!

ádám
(#) nem válasza Panzer576 hozzászólására (») Aug 29, 2012 /
 
Csao! Nem akarok hülyeséget írni, de bennem biztos felmerülne, hogy a leállításnál fellép valamilyen tranziens jelenség, ami rászór az LCD logikájára, és attól lesz valami... Volt olyan nekem, hogy egy RADAR adóvevő-t vezérlő elektronikában meghülyült az SPI kommunikáció, amikor kikapcsoltam a nagyfeszt.

Próbált messzebb tenni a motortól és relétől a logikát, illetve tedd bele próbaképpen egy fémdobozba (régi PC ház is megteszi), azt FÖLDELD le, mármint a dobozt. Nem biztos, hogy megoldja, de én biztos kipróbálnám.
(#) Panzer576 válasza nem hozzászólására (») Aug 29, 2012 /
 
Hali!
Igen, ezzel próbálkoztam, be van kötve egy tranziens szűrő is. Próbáltam hogy kiveszem a motor mellől, de jó 2 méterre tőle is lefagy. Milyen hosszú lehet egy vezetősáv a PIC-és az LCD-között?
Mert nekem olyan 20 cm, de szerintem ez még ok.
Nekem még az jutott eszembe, hogy az alsó nibble-t ellenállás nélkül direktbe a 0-ra kötöm, úgysem használom kiolvasás módban az LCD-t.
(#) icserny válasza nem hozzászólására (») Aug 29, 2012 /
 
Mindkét ötlet használható.
(#) vilmosd válasza Panzer576 hozzászólására (») Aug 29, 2012 /
 
Alapvetoen a rele kimenetere kellene parhuzamosan egy 10-22 nf/275V~ X2 kondi sorosan egy 47 ohm 2W ellenallassal, es egy 400 voltos VDR. Valamiont a rele tekercsere egy dioda. Az LCD nem hasznalt labait pedig direktben foldre kotni, de itt szerintem nem zavarhat ez.
(#) Panzer576 válasza vilmosd hozzászólására (») Aug 29, 2012 /
 
Helló!
Értem!
Jelenleg így van bekötve a relé: (melléklet)

Kimenet.png
    
(#) _vl_ válasza Panzer576 hozzászólására (») Aug 29, 2012 /
 
Tápot leállításkor oszcilloszkóppal nézted már?

Az első gondolat az lenne, hogy a tápod nem (elég) jó.
(#) vilmosd válasza Panzer576 hozzászólására (») Aug 29, 2012 /
 
De hianyzik az EMC csillapitas a rele kontakrol. Regen a '90-es evekben csinaltam egy 8 csatornas vezerlest, ami kis relekkel vezerelt magneskapcsolokkat. Persze a szures (RC tagok) nelkul zavarta a PC-t, es mindig elugrott a vezerles. Csinaltam a kimenetre egy panelt, ami tartalmazott 8 kondit (X2 tipusu) es 8 ellenallast. A kondik ongyogyulo tipusok voltak. Eveken keresztul dolgozott szepen a berendezes, majd egyszer megint elkezdett elugralni a vezerles. Megmertem a kondikat, es a kapacitas lecsokken1-5 nF koze. Uj kondikkal helyreallt minden. A magneskapcsolo kikapcsolasakor keletkezett nagy tuskek elegettek a kondit. Ez minden induktiv terhelesnel jelentkezik, ezert kell (!!!) a zavarszures (EMC csillapitas). Ezek nelkul a nagy zavatuskek megbolonditanak minden erzekeny kisfeszultsegu elektronikus vezerlest.
(#) Panzer576 válasza _vl_ hozzászólására (») Aug 29, 2012 /
 
Sajnos nincs oszcilloszkópom ez nagy hiba tudom, gyűjtögetek rá, sajnos drágák.
A tápom egy ipari 230VAC-12VDC ha jól emlékszem OMRON kapcsoló üzemű ipari táp, próbáltam egy másik gyártmánnyal is, de akkor is megmaradt a hiba.
(#) _vl_ válasza Panzer576 hozzászólására (») Aug 29, 2012 /
 
Oszcilloszkóp nélkül ilyen jellegű problémát nagyon nehéz lesz megoldani. Próbálj meg valami ismerőstől kölcsönkérni.
Maga a táp lehet, hogy jó, de ha az egyes alkatrészek tápellátása nincs rendben (kondik, vezetékezés), akkor is lehetnek ilyen gondok.
(#) Panzer576 válasza vilmosd hozzászólására (») Aug 29, 2012 /
 
Értem köszi!
EMC-t még nem csináltam, megtennéd hogy küldesz még egy "móricka" rajzot, hogy ezt hova kössem be, és az mit jelent hogy x2 típusú?
(#) Panzer576 válasza _vl_ hozzászólására (») Aug 29, 2012 /
 
Ok, megpróbálok szerezni egyet kölcsön. Köszi neked is!
Amúgy erre gyűjtök:
http://shop.ageta.hu/product.php?id_product=184
(#) _vl_ válasza Panzer576 hozzászólására (») Aug 29, 2012 /
 
Nekem egy 7102-m van... elég frankó cucc
De a Te problémádra egy 30 ezer forintos szkóp is megoldást jelentene.
(#) vilmosd válasza Panzer576 hozzászólására (») Aug 29, 2012 / 1
 
z EMC altalaban valami elektromagneses zavart jelent. Jellemzoen nagyobb induktiv terhelesek kikapcsolasakor keletkezo zavar, ami rosszabb esetekben (csillapitas nelkul) elerheti a 20-30 kV nagysagrendet is, ami olyan tipusu zavarokat kelt, mint egy kozeli villamcsapas. Jellemzoen a keletkezes helyen kell (a rele kontakt, terheles) csillapitani. Az alkalmazott kondenzatorok X2 kategoriaju femezett PoliPropilen tipusuak, amik a keletkezo atutesek helyen elparolognak, ezzel ongyogyulo folyamat jatszodik le. Mas tipusu kondenzatorok alkalmatlanok ebben az alkalmazasban, mert atutes eseten fennmarad a zarlat.22 nF/275 V AC.
Következő: »»   1089 / 1319
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem