Fórum témák
» Több friss téma |
Ez egy Basic program, nevezd át .bas -ra. Egy Basic fordítóval kellene próbálkozni.
Köszi. MikroBasic le s fordította, de a bas elé még az m kellet (mbas).
Kellemes húsvéti ünnepet ![]()
Sziasztok!
Egy érdekes jelenségen nem tudok túllendülni. Készítettem egy 16F886-os áramkört LCD kijelzővel, mely az órát is megjeleníti. A PIC párhuzamosan kap tápellátást hálózatról és egy elemről, az LCD viszont csak hálózatról. Ha a tápellátás megszűnik, akkor az elemről megy tovább a mikrokontoller, és azonnal alvó üzemmódba kapcsolja magát. Ekkor az LCD tápellátása megszűnik, és azt várnám, hogy teljesen kikapcsoljon. Ezzel szemben halványan kezd világítani tovább, és a vdd lábán 3-4 volt körüli feszültséget mérek. Mi okozzhatja ezt, és mit lehet tenni ellene?
Valami kapcsrajzot tegyél fel, mert nem tiszta, hogyan különül el az elem az LCD-től...
Ha a tápfeszültség mérésénél a PIC 2V-tól kisebb feszültséget talál, akkor kiadja a sleep utasítást.
(Nem tölti fel az 500kb-os bmp-t az oldal) A hozzászólás módosítva: Ápr 21, 2014
felraktam egy fájlmegosztóra: 16f886 kapcsolás.bmp
Szia!
Folyamatosan küldi az adatot a PIC az LCD-nek, szünet nélkül? Ha kiveszed a D4-et, akkor is csinálja?
A D4 üzem közbeni eltávolításánál nincs változás. Megmarad a halvány fény, viszont műszerrel végigmértem az összes PIC-ről LCD-re menő vezetéket, és a D6-D7-nél találtam 5V-ot.
Ha ezeket kihúzom, akkor kikapcsol az LCD. Már többször ellenőriztem és nem találok hibát a bekötésben. Szoftveresen kellene még valami utasítást kiadni sleep előtt? Próbálkoztam mikropascalban meghívni a Lcd_Cmd(_LCD_TURN_OFF); parancsot, de változatlan maradt az eredmény. Egyáltalán hogyan kerül vissza feszültség a D6-D7-ről a VDD-re? A hozzászólás módosítva: Ápr 21, 2014
Egy tranyóval kapcsold ki/be az LCD kontrasztjának a testpontját. Hasonlóan oldottam meg az előfokomnál.
Akkor gondolom a D6 és D7 vonalon mivel magas szint van (mivel a PIC adja ki, lehet hogy a szubrutin sajátossága), az kerül be az LCD tápáramkörébe. Próbáld meg, hogy sleep előtt 0-t adsz ki a D6 és D7-re (ha jól látom, RC6, RC7).
Kontraszt leválasztása sem segítene tranyóval, mert ha az összes lábát lehúzom és visszadugom, akkor is világít tovább.
A lábak alacsony szintre állításával próbálkozok épp szoftveresen, eddig nulla sikerrel.
De miért alacsony szint? Miért nem lebegő- ha már egyszer telepes táplálás...
Idézet: „Egyáltalán hogyan kerül vissza feszültség a D6-D7-ről a VDD-re?” Üdv! Épp most méregettem egy LCD-t, nálam 4bites módban van és a szabadon lévő lábakon a tápfeszültséget mértem. Valószínüleg az LCD elektronikája is tartalmaz felhúzó ellenállásokat, amin keresztül vissza tud jutni a tápfesz.
Na sikerült megoldanom, de akkor sem értem miért így kell.
sleep előtt nullázok három kimenetet:
majd amikor felébred újrainicializálom az LCD-t.
A hozzászólás módosítva: Ápr 21, 2014
A micropascal LCD kezeléses makrója valószínűleg magas szinten hagyja ezeket a portlábakat.
Sziasztok, st7920 kontrollerhez keresnék makrókönyvtárat, lehetőleg PIC-C CCS C fordítóhoz.. Valaki tudna küldeni?
Köszönöm!
Hello!
szeretnék egy pollingos SPI kommunikációt írni 16f690-el, találtam eg példát ami 24f-re lett írva, de rögtön teljesen ismeretlen parancsokra leltem, amin a google sem segített sokat. Valaki tud segíteni hogy honnan tudok meg ezekről többet? esetleg tudtok segíteni értelmezni? (mármint értem a kommentet ami mögöttük van, de hogyan kell ezt 16f690-el?)
(Bővebben: Link) az ilyenek az ismeretlenek mint: RPOR4bits.RP9R google is csak 24f-es dolgokat ad rá- ez valami pic specifikus parancs? meg minden ami SPI1CON-al kezdődik az hatalmas homály. A hozzászólás módosítva: Ápr 22, 2014
találtam itt: Bővebben: Link
itt a doksiban már szerepelnek ilyenek hogy SSPSTAT, SSPCON tehát ez rendben van, és kb világos hogyan kéne használni, viszont szerintem ez a hardware-es portot használja, nem? az előző is gyanúsan rövid ahhoz h tisztán software-es legyen, pedig a szerzője azt írja hogy az (a kód alatti bővebben linknél)
Ezek a programok az (M)SSI modult használják. Így keresd
rendben, nagyon köszönöm. még annyi lenne a kérdésem, hogy látszólag a fenti programokban van egy puffer ahová az elküldendő 8 bites egységet bemásolom, és ahová a fogadott 8 bites üzenet megérkezik.
a Wikipedia szerint a bit banging-nél bitenként kell elküldeni az adatokat, és az órát is nekem kell állítgatni. ezek szerint ezt a feladatot valaki a fenti esetekben ellátja. gondolom nem a fordító ilyen okos, hiszen ezek az elnevezések a 16f690 dokumentációjában is szerepelnek, tehát előre definiált változóról van szó. de akkor nem ezt nevezzük hardveres SPI-nek?
Egy külön modul van a feladatra, az SSI vagy MSSI. Ez a modul elvégzi a párhuzamos - soros átvalakítást adásnál és a soros - párhuzamos átalakítást vételnél. Nézd meg az adatlapot.
igen, nézegettem.
de akkor ezek a programok mégse bit banging-et használnak, hanem a modullal végeztetik el a piszkos munkát. vagy teljesen keverem a fogalmakat? íme amit én kihámoztam abból amit eddig a fórumokon olvastam, kérlek javíts ki ha nem így van: 2 féle SPI megvalósítás van: a) a hardware-es, amikor csak odaadom a byte-ot és az átküldi, tehát az SSI modul használata b) a software-es avagy bit banging, mikor pedig bármely szabad portot használhatom a művelethez, mert úgyis én írom meg az őket mozgató programot. lehet hogy keverem a dolgokat, de Te a fenti programokról azt mondtad, hogy bit bangingesek, és ez teljesen megzavart... hogy is van ez?
Ezt a hozzászólást azért írtam, mert az általad belinkelt megoldások az (M)SSI -t használták.
A Bit-banged verzió kezeli a portot programból. 2 féle SPI megvalósítás van: a) a hardware-es, amikor csak odaadom a byte-ot és az átküldi, tehát az SSI modul használata. Meg kell várni, amíg az illesztő elküldi és jelzi, hogy mehet a következő adat. b) a software-es avagy bit-banging, mikor pedig bármely szabad portot használhatom a művelethez, mert úgyis én írom meg az őket mozgató programot. A program határozza meg az időzítést is.
oh, értem, akkor én értettem félre, már tiszta minden, köszönöm
![]() Moderálási kérelmedre való tekintettel. Aha! Értem! Akkor én értettem félre, de már tiszta minden. Köszönöm. A hozzászólás módosítva: Ápr 22, 2014
Sziasztok!
Azt szeretném megkérdezni, hogy egy PIC32MX440f kontrollerle, hogyan kell bekötni egy LCD kijelzőt. PIC:PIC32MX440f az LCD: LCD Az a kérdésem hogy a 7-14 lábig bármlyik portra köthetem, csak az lcd.c fájlban kell átírni vmit? vagy hogy működik ez? és az RS, R/W és E lábakat hova kellene kötni? Köszönöm szépen Adrián
Mindegyik lábat oda kötöd ahova akarod, csak hát ugye utána ugy kell programozni.
az RS,R/W,E labakat is ugyan ugy kell bekötni mint a többit. Bár az R/W-t nem feltétlenül kell simán kötheted a gnd-re ha csak irni akarsz a kijelzöre. Bővebben: Link
NyariG kolléga által posztolt google keresés első két eredménye icsernyi oldala, ott a programozásáról is kapsz infót bőven magyarul, de rengeteg oldal van a neten ami az alfanumerikus LCD-kről szól.
A hozzászólás módosítva: Ápr 23, 2014
|
Bejelentkezés
Hirdetés |