Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
1. Az nem lehet, hogy a const char kavar be? Én egyelőre kiremelném a putst fv törzsét.
2. Tuti, hogy a hívások előtt van definiálva, vagy deklarálva legalább? Én mindig ki szoktam szedni header-ekbe a deklarációkat. Biztos, ami biztos.
Én C18-ban dolgozom, ami az MPLAB-ban nincs benne, hanem külön kell telepíteni. Ennek köszönhetően első használat előtt az útvonalakat is be kell állítani! Én a Program Files/Microchip/MCC18-ba telepítettem, az általam közzétett kész projektek is ehhez vannak igazítva.
A const char előtag a hitech manualban volt leirva hogy így kell használni, hittem neki.. Nem tudom az kavar e be..
2: én is így szoktam... ott van minden fv deklarálás , majd később a fv törzse. Idézet: Nem. Az előre megadott karakterfüzéreket a programmemóriában kell tárolni, ezért a karakterfüzért kiírató eljárásnak olyan mutatót kell megadni, ami a programmemóriába mutat. Ehhez kell a const char *str deklaráció. „Az nem lehet, hogy a const char kavar be?”
Okos kérdés : Ez megfelelő C18 ugye?
MPLAB C for PIC18 v3.37 Upgrade Version
Persze előbb a student verzio is felkerülne...
Bőven elég a student verzió, az upgrade tudtommal nem ad hozzá semmit. Az upgrade telepítésnek csak akkor van értelme, ha már volt telepítve full verzió (vagy valami full verziónak látszó tárgy...) és azt akarod frissíteni az újabb full verzióra.
Találkoztatok már ilyen hibával? Egy PIC18F4520-ra rákötöttem egy 4x20-as LCD-t. A hiba, hogy maximum három karaktert tudok rá kiíratni! Amint a negyediket elküldöm, a kijelzés megszűnik!
Elképzelésem sincs mi baja lehet... Szerk.: Van hogy már a harmadik karakternél elszáll. Ez bolond...
Valamit nyilvan nem jol csinalsz, de ha nem linkeled be a programot akkor nehez segiteni...
Teljesen ugyan azt az LCD kezelő rutint használom amit eddig a PIC-es panelmérőmben. Tulajdonképpen annak írtam át kicsit a programját (lebutítottam) és egy másik PIC-be égettem bele, no meg 2x16-os helyett 4x20-ast használok.
Kb negy lehetseges uton indulnek el elso korben:
1. Van-e elegendo idozites az LCD rutiban? Mert nem minden kijelzo ugyanaz, van amelyik mukodik kisebb idozitesekkel, van amelyik nem... 2. Lebutitasnak koszonhetoen nem kerult-e valami hiba be a rutinba? 3. Konfig beallitasok jok-e, azzal a sbesseggel ketyeg-e a PIC-ed mint amivel szamoltad az idozitest? 4. Elektromos problema, zajos jelvezetekek, kapacitiv vagy induktiv mellekhatasok, szakadas, zarlat stb... Latatlanban kb ennyit tudtam segiteni, remelem sikerul megoldani a problemat!
Sziasztok, én most kezdtem el játszani az LCD kezeléssel. 2*10 karakteres HD44780-as vezérlővel. De nem nagyon boldogulok vele. Kb. eddig annyira jöttem rá, hogy az elején konfigolni kell valahogy. Az enable bitet magasba állítom és az RS bitet pedig 0-n hagyom. (Az R/W az pedig a 0-n van.) Na mármost akkor hogy is kell elkezdeni? Ha így konfigolva vannak a bitek, akkor az adatvonalra tegyem ki a megfelelő értéket? pl. dec. 60-at. (Ez azt jel. hogy: 8 bit mode ON, 2 lines, 5*10 font) És készen is van a konfig? Vagy még kell mást is csinálni? Illetve van valami késleltetéses dolog is. Az sem teljesen tiszta, hogy minek meg hogyan. Egy idő után magamtól is rájövök, de ha valaki segít akkor az nagy ugrás lenne. Esetleg az adatküldések között le kell futtatni egy delay rutint? (Ha igen, akkor milyen hosszú legyen az?)
Már rájöttem a konfigolásra. Mondjuk a késleltetéses kérdésem még áll.
Eddig szenvedtem vele és nem akar működni.
Csatoltam a forráskódom. Légy szíves ha ebben van a hiba jelezzétek. Mert én már nem is tudom. A szimulátorban működik, itt meg nem. A kódot kommenteztem, amiből az is kiderül hogy mit hova kötöttem. (De egyébként a C port első 3 bitje az E, R/W, és RS, míg a teljes D port a 8 bites adatbusz.
Üdv!
Csatoltam egy 8 bitest, ez nekem működik szimulátorban is (ISIS,PICSIMULATOR IDE) és beégetve is. Hasonlítsd össze.
Szerintem a PORTC-re kiadott bsf/bcf utasításokkal lehet gond. A port bit állításakor a portot, és nem az output latch állapotát olvassa be a kontroller, végrehajtja a bit állítását, majd visszaírja. Így elképzelhető, hogy fals érték jelenik meg a kimeneten.
Szia, 'ORG 3' miert van ott? 'ORG 0'-nak kellene lennie.
Szia ORG 0-val sem megy. Ezért úgy csináltam, mint a suliban. (Igaz ott az első pár címen volt egy ugró utasítás ezért kellett az ORG 3, de mindegy, mert nem az a baja.) De visszaállítottam 0-ra.
nedudginak: A PORTC-t jól állítja, mivel megnöveltem a delay-t és rátettem egy-egy LED-et. Ami jól működött. (Én már a kijelzőre gyanakodom hogy nem működik.) Az adatvonalon is megjelennek az értékek. De még megpróbálom brato programját is. (Hátha azzal elindul.)
Szia, ugye a PORTD az adat 8 biten és a PORTB0 az RS, PB1 az R/W, és PB2 az E bit? Ha igen akkor jól kötöttem be, de így sem működik. Lehet kicserélem a kijelzőt egy 2*16 karakteresre. Hátha azzal működik.
Na jó még annyi kérdésem van, hogy ha ki van vezetve a V5-ös port a kijelzőn, és azt ha +5V-ra kötöm akkor jó, ez így igaz?
Sziasztok!
A segítségeteket szeretném kérni a következő problémára: Pic16f877a mikrovezérlővel szeretnék kommunikálni W25X64 flash memóriával. A memória nem ad semmilyen életjelet, a status regisztert olvasva mindig más (össze-vissza) adatot kapok. Olyan, mint ha 'lógna' a do lába. Három példánnyal próbálkoztam, mind ugyan ezt produkálja. A pic hardveres spi modulját használom, már kipróbáltam az összes módot, de nincs változás. Többször is átnéztem a bekötést is, de nem találtam benne hibát (16 lábú soic tokos kivitel). 1./hold (H) 2.Vcc (3.3V) 3.- 4.- 5.- 6.- 7./cs (pic+felhúzó ellenállás) 8.Do 9./wp (fixen vcc-re kötve) 10.Gnd 11.- 12.- 13.- 14.- 15.Di 16.Clk (Ellenállásos feszosztót használok.) Összeollóztam a programomat, ami most annyit csinál, hogy elküldi a write enable (06H), majd a read status register (05H) parancsokat, a választ pedig kirakja portb-re. 25LC640-nél tökéletesen működik, a másiknál viszont nem. Mi lehet a gond?
A kijelző kontrasztját beállítottad egy trimmer potival?
Mert ha nem akkor nem fogsz látni sokat rajta.
Nem állítottam be. A trimmer közepe gondolom a V5 az egyik oldala a GND a másik pedig a +5V? Mert az adatlapban kevernek valamit a -5V-tal is. De az nekem nem tiszta, hogy mit és miért.
Igen. A két vége +5 és GND, a közepe meg megy az LCD kontraszt lábára.
Nagyon király köszi a segítséget. Már kiírta hogy Sza? Ez már fejlődés.
Ha hibásan ír ki vagy kihagy betűket, akkor az időzítésekkel lehet még gond.
Igen, azzal volt a gond, de ki kísérleteztem. Már jól működik. Kiírattam pár hülyeséget vele. (És már hogy tudom hogy működik, így totál egyszerűnek tűnik.)
Akkor jöhet a 4 bites adatbusz...
A HOLD bemenettel mit csináltál? Azt is fel kell húzni az adatlap szerint (mert ha alacsony szinten van, akkor lebegni fog a DO kimenet).
|
Bejelentkezés
Hirdetés |