Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   644 / 1320
(#) watt válasza lidi hozzászólására (») Jan 16, 2010 /
 
Pedig, ha a rajzot(Figure 2-11: ) megnézed, tök logikus, hogy a PLL kiválasztása esetén a jel nem az Internal Oscillator útvonalon kerül a CPU-ra. Abban igazad van, hogy ezt azért jelezni kellett volna az adatlapban!
(#) Stefan válasza Trovo hozzászólására (») Jan 17, 2010 /
 
Sajnos nem találom az említett függvényt, de azért köszönöm. Valamit kisokoskodok majd.
(#) watt válasza Stefan hozzászólására (») Jan 17, 2010 /
 
(#) t-dani válasza Brienter hozzászólására (») Jan 17, 2010 /
 
Egyébként az adatlap 96. oldalán találsz egy képet a bekötésről, sőt, a fölötte lévő szövegben egy ajánlást is Rp értékére nézve.
(#) valaki2 hozzászólása Jan 17, 2010 /
 
Hali,

LCD kijelzővel lenne gondom. Van egy Displaytech Ltd 204b 4x20 -as lcd-m.

Sikerült inicializálnom, de nem tudok kiirni semmit a kijelzőre. DDRAM -ba beállitom az első sor 4 -s majd 6-s pozicióját, de egyikbe se ír semmit. Valaki esetleg tudja, h mi lehet a baj?? Sajnos a kijelző adatlapja eléggé hiányos, bár a vezérlő utasításokat tartalmazza.

program részlet:

main()
{

//itt van az inicializálás

// RS = RB7, R/W = RB5 , E rb4
// DDRAM = 0


while (1)
{
// ddram
PORTA = 0x8e;
PORTB = 0x10;
__delay_ms(50);
PORTB = 0x00;

// adat
PORTA = 0b11111101;
PORTB = 0b10010000;
__delay_ms(50);
PORTB = 0b10000000;
__delay_ms(50);

__delay_ms(50);
__delay_ms(50);

// DDRAM
PORTA = 0xda;
PORTB = 0x10;
__delay_ms(50);
PORTB = 0x00;

//adat
PORTA = 0X31;
PORTB = 0b10010000;
__delay_ms(50);
PORTB = 0b10000000;
__delay_ms(50);

__delay_ms(50);
__delay_ms(50);

}
(#) watt válasza valaki2 hozzászólására (») Jan 17, 2010 /
 
Igazán, hogy gondolod, hogy rajz és a programban megjegyzések nélkül, valaki tud segíteni? Megint csak ötletbörze lesz, káosz!
Egy programot, ha ilyen hosszú, amúgy sem illik beilleszteni, azért van a csatolás lehetősége. Bemásolod egy txt-be és kész, legalább nem törik össze, ha már arra sem futja, hogy a KÓD gombot megtaláld!

Nem tudjuk 4, vagy 8 bites bekötésed van-e, azt sem, hogy melyik porton milyen láb van(ezen kívül:RS = RB7, R/W = RB5 , E rb4 ), azt sem, hogy mit akarsz az adott program sorokban, azt sem, hogy hogyan állítottad be a kontrasztot, soroljam még?
(#) husla84csaba hozzászólása Jan 17, 2010 /
 
Kössz a segitségeteket! Az rs485ös probléma megoldva.Müködik a dolog.Ha meglessz a komplett elektronika és ha nem veszik rossz néven,töltök fel pár videót a dologról.Mégegyszer kösz mindenkinek,hamarosan jelentkezek!!
(#) valaki2 válasza watt hozzászólására (») Jan 17, 2010 /
 
Rajzom nincs, mivel a kijelző pic kit2 -es 44pin -s demo boardra van vezetékkel rákötve.
8 bites módban használom, porta -ra kötve. A három vezérlő láb RS = RB7, R/W = RB5 , E rb4 ide van kötve.

Kontraszt: a doksiban nem találtam semmit erre vonatkozóan.
Neten (link) egy oldalon írt egy srác, hogy ő 2k2 ellenállással húzta földre a 3 -s lábat, és csak így jelent meg neki a kijelző kép. Ennek alapján én is 2k2 -t használom.

Első körben csak egy - két karaktert szeretnék végre kiíratni. Pl. A betű.

Kódot mellékeltem.

lcd.c
    
(#) Hp41C válasza valaki2 hozzászólására (») Jan 17, 2010 /
 
Szia!

Egyszerre állítod a RS jelet az E jellel, az LCD-nek nincs meg a RS előkészítési ideje.... Próbáld meg az adat írásánál külön állítani, előbb az RS-t aztán az E-t.

Szia.
(#) valaki2 válasza Hp41C hozzászólására (») Jan 17, 2010 /
 
Helló,

probáltam vagyolással külön kapcsolni először RS -t, aztán E- t, de továbbra sincs semmi. Csak a kurzorpoziciók villognak, de a karakter nem jelenik meg.
(#) watt válasza valaki2 hozzászólására (») Jan 17, 2010 /
 
Idézet:
„Csak a kurzorpoziciók villognak”

Akkor ezek szerint a kontraszt jól van beállítva. Ha jól értem, a kurzor jól jelenik meg? Ez egy aláhúzás, vagy milyen forma?
Milyen PIC van most a kártyában?
(#) Stefan hozzászólása Jan 17, 2010 /
 
  1. #define LCD_RS RB7
  2. #define LCD_E RB4
  3. #define LCD_RW RB5
  4. void main(void){
  5. LCD_RS=0;
  6. LCD_RW=0;
  7. LCD_E=1; //1 -0 atmenet az orajel
  8. PORTA=0x0e; //0x8e helyett:ez kapcsolja be, allitja a kurzort
  9. LCD_E=0;
  10. __delay_ms(100);
  11. LCD_E=1;      //ddram 1
  12. PORTA=0b10000000;
  13. LCD_E=0;
  14. __delay_ms(100);
  15.  
  16. LCD_E=1;  //A betu kuldese
  17. LCD_RS=1;
  18. PORTA=65;
  19. LCD_E=0;
  20. }

ui: a PORTA-t remélem rendesen konfiguráltad, az analóg funkciókat mindenhol letiltottad.
(#) watt válasza valaki2 hozzászólására (») Jan 17, 2010 /
 
Van valami oka, hogy jobbra shifteled a képernyőt? Követed az így megváltozott címeket? (nem mélyedtem még annyira bele, hogy lássam, így lehet, hogy megteszed, de egyszerűbb megkérdezzem).
Erről a részről lenne szó:

  1. PORTA = 0X14;                   // SHIFT
  2. PORTB = init_be;
  3. __delay_ms(50);
  4. PORTB = init_ki;
  5. __delay_ms(50);



Én úgy látom ,hogy a z első sor negyedik címe nem 83h, hanem 03h. Persze, ha közben nem shifteled el az egészet!
  1. // ddram                // elso sor 4 dik poziciójának beállitása
  2. PORTA = 0x83;
  3. PORTB = 0x10;
  4. __delay_ms(50);
  5. PORTB = 0x00;
(#) Hp41C válasza watt hozzászólására (») Jan 17, 2010 /
 
Szia!

A 7. bit 1 értéke a parancs, a cím beállításánál ez pont 0x80. Az alsó 7 biten a karakter pozíciója helyezkedik el...

Szia
(#) Stefan válasza Hp41C hozzászólására (») Jan 17, 2010 /
 
Kollega is ezt írta, úgy látom. Még egy kis segítség, ha minden kötél szakad
(#) watt válasza Hp41C hozzászólására (») Jan 17, 2010 /
 
Igaz, ezt elnéztem, köszi!
(#) valaki2 hozzászólása Jan 17, 2010 /
 
Igen a kurzor jó. Az 5x10-s és az 5x7-s karakterképeket is kitudom választani, és ekkor a kurzor helyesen villog.

Igen, a hetedik bit a parancsbit. A következőket módositottam, de így se ment:
entry mode set: increment- re van állitva, és display is not shifted van kiválasztva.

Display on/off: display on, cursor on, blinking on.

shift: cursor move, R/L nél mit válasszak?? Ugye a shift ki van kapcsolva, elvileg mindegy. Én Right shift -t választottam.

Set function: 8 bites, 1 line, 5x7

LCD szimulátorral probálkoztam. Ott tudom kezelni, tehát tudok kiirni szöveget. Nem értem, hogy itt mért nem megy
(#) watt válasza valaki2 hozzászólására (») Jan 17, 2010 /
 
A Shiftet egyáltalán nem kell kiadni szerintem. A többiben nem nagyon látok hibát, bár elég nehéz így követni, hogy nem beszédes a kód(érdemes lenne deffiniálnod a lábakhoz tartozó parancsokat, és nem bináris kódokkal töltögetni a portokat))
(#) frecsko hozzászólása Jan 17, 2010 /
 
Sziasztok.
Van valakinek egy működőképes kapcsolása arról , hogy hogyan tudnám az rs232-t rákötni a pic tx-rx lábaira. Megépítettem már kettőt, de egyik sem megy.
(#) watt válasza frecsko hozzászólására (») Jan 17, 2010 /
 
Mindkét rajzod jó.
(#) El_Pinyo válasza frecsko hozzászólására (») Jan 17, 2010 /
 
Szia!
A kapcsolással nincs gond, szerintem működnie kéne. Nálam is hasonlóan van a bekötés, nem volt vele gond. Egyébként biztos vagy benne, hogy a hardver a hibás? Kipróbáltad már hardveres loopback- el? (11. 12. láb összekötve, PC-n keresztül terminál program segítségével adatok küldése és a vett adatok megjelenítése)
Üdv.
(#) frecsko válasza watt hozzászólására (») Jan 17, 2010 /
 
Akkor lehet valamit elkötöttem tervezéskor.

Találtam egy rajzot a neten amin egészen más a bekötés. Ez is működőképes?
(#) watt válasza frecsko hozzászólására (») Jan 17, 2010 /
 
Igen. A MAX232-ben 2 egység van.
(#) frecsko válasza El_Pinyo hozzászólására (») Jan 17, 2010 /
 
Milyen Terminálprogram kell hozzá?
(#) watt válasza frecsko hozzászólására (») Jan 17, 2010 /
 
(#) Stefan válasza frecsko hozzászólására (») Jan 17, 2010 /
 
Ha PK2-d van akkor én megpróbálkoznék a szoftverében lévő UART toolal mindent végigpróbálni, talán így kiderül a hiba. Nemlehet hogy a PICnél nem jó valami?
(#) El_Pinyo válasza frecsko hozzászólására (») Jan 17, 2010 /
 
Ha XP- t használsz, akkor van beépített terminál program, a neve Hyper Terminal. Kellékek/Kommunikáció/Hyper Terminal
Üdv.
(#) frecsko válasza watt hozzászólására (») Jan 17, 2010 /
 
Rákapcsolom a soros portra, elindítom a terminál programot, csinálok egy Rescan-t, com3-t kihozza és csatlakozik. Nekem a gép azt jelzi hogy a com1-re van téve. Valamit kell állítani rajta??
(#) watt válasza frecsko hozzászólására (») Jan 17, 2010 /
 
Hol nézted, az eszköz kezelőben? Biztosan nem a COM3-ra került a portod? (Kezdünk megint elkanyarodni a PIC-témától erősen...)
(#) robotech hozzászólása Jan 17, 2010 /
 
Üdv!
A CDC firmwaret nézegetem, ami gyárilag 19200Baudra van beállítva. Nekem egy olyan alkalmazást kéne készíteni, ami inkrementális jeladó értéket fogad,és azt továbbítja PC-hez, ezért nagyobb átvitelre lenne szükségem.
A main.c (csatolva) fileban találtam utalást a baud rate beállítására. Azt szeretném megkérdezni,ha itt az SPBRG,és SPBRGH regisztereket átírom, akkor már a PC oldaláról egy olyan sorosportnak látnám az eszközt, ami mondjuk 115200 bauddal kommunikál?

Ha igen, akkor valaki tudna abban segíteni,hogy 48MHZ oszcillátor esetén milyen értéket kellen itt beállítani?

Köszönöm előre is a segítséget!

user_c.JPG
    
Következő: »»   644 / 1320
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