Vizitator Mareshal Postat Martie 27, 2011 Partajează Postat Martie 27, 2011 Vreau sa aprind LCD-ul(SC1602A) de pe placa de la olimex: Olimex Maxi Web (Schema la pagina 8: http://www.olimex.com/dev/pdf/PIC/PIC-MAXI-WEB.pdf). Am codul asta #define LCD_PORT PORTE#define LCD_E PORTHbits.RH0#define LCD_RW PORTHbits.RH1#define LCD_L PORTGbits.RG5 TRISE = 0; LCD_L = 0; LCD_PORT = 0; LCD_PORT = (LCD_PORT & 0x0F) | ('c' & 0xF0); LCD_E = 0; Am incercat sa dau tot portul G ca output, dar tot nu vrea. Ratez ceva, si nu stiu unde. Link spre comentariu
kit Postat Martie 28, 2011 Partajează Postat Martie 28, 2011 lipseste initializarea lcd-ului?OpenXLCD(FOUR_BIT & LINES_5X7);asta daca folosesti C18.in plus, primul lucru pe care-l faci este sa initializezi lcd-ul, abia apoi faci si alte initializari.baftalein plus, scrierea pe lcd se face cu strcpypgm2ram(lcd,"terminat");putsXLCD(lcd);sau putrsXLCD("terminat");mai trebuie apoi sa modifici xlcd.h pentru a fi conform cu ce ai tu pe placa (portul de date si pinii de comanda)indicat ar fi sa citesti datasheetul lcd-ului, acolo gasesti date complete despre toate astea. Link spre comentariu
MatyC Postat Martie 28, 2011 Partajează Postat Martie 28, 2011 Dupa cum vad portul G bitul 5 este folosit pentru control PWM al iluminari afisajului. Nu are nici o legatura cu afisarea caracterelor pe afisaj. Insa nu am inteles ce problema ai. Nu se aprinde ledul de backlight sau nu reusesti sa initializezi LCD-ul?Bucata de cod prezentata nu ne ajuta cu nimic. Link spre comentariu
Vizitator Mareshal Postat Martie 28, 2011 Partajează Postat Martie 28, 2011 Prima problema e sa aprind lumina de fundal @kit /* DATA_PORT defines the port to which the LCD data lines are connected */ #define DATA_PORT PORTE #define TRIS_DATA_PORT TRISE/* CTRL_PORT defines the port where the control lines are connected. * These are just samples, change to match your application. */ #define RW_PIN LATHbits.LATH1 /* PORT for RW */ #define TRIS_RW TRISHbits.TRISH1 /* TRIS for RW */ #define RS_PIN LATHbits.LATH2 /* PORT for RS */ #define TRIS_RS TRISHbits.TRISH2 /* TRIS for RS */ #define E_PIN LATHbits.LATH0 /* PORT for D */ #define TRIS_E TRISHbits.TRISH0 /* TRIS for E */ + OpenXLCD(FOUR_BIT & LINES_5X7); Am incercat si rutina de scriere, si tot numic. LE: Conform datasheetului: http://microelect.net/lcd/charact/SC1602A.pdf , pinul 2-lea este VDD cu un max de 5V. Am masurat acum si am 1.25V pe el. Si aproape toti ceilalti pini au la fel. Link spre comentariu
MatyC Postat Martie 28, 2011 Partajează Postat Martie 28, 2011 Pai nu e bine cu tensiunile. Din pdf-ul placi vad ca LCD-ul se conecteaza direct la 5V, care este activ prin shuntarea jumperului 5V_E. Insa tot in document se specifica ca default este in scurt. Este un pad pe pcb care se cositoreste sau nu. Verifica pentru inceput problema tensiunilor. Procesorul este alimentat la 3,3v care la fel are un jumper.L.E Afisajul chiar daca scrie SC1602 tine cont ca la baza este un HD44780. Link spre comentariu
Vizitator Mareshal Postat Martie 28, 2011 Partajează Postat Martie 28, 2011 Cu alimentarea am rezolvat. Am si un potentiometru care regleaza contrastul(cu surubelnita). Mai e problema scrierii. LE: se blocheaza aici: OpenXLCD(FOUR_BIT & LINES_5X7); Am modificat programul sa arate asa // aprinde ledPORTJbits.RJ0 = 0xFF; Delay1KTCYx(2); OpenXLCD(FOUR_BIT & LINES_5X7); LCD_L = 0; // light LCD LCD_PORT = 0; LCD_PORT = (LCD_PORT & 0x0F) | ('c' & 0xF0); LCD_E = 0; // stinge led PORTJbits.RJ0 = 0x00; Delay1KTCYx(2); La executare, led-ul ramane aprins, deci nu programul nu trece de initializarea LCDului Link spre comentariu
MatyC Postat Martie 28, 2011 Partajează Postat Martie 28, 2011 // stinge led PORTJbits.RJ0 = 0x00; Delay1KTCYx(2); Ce treaba are ledul cu Portul J? Ledul de backlight este clar pe portul G.5, plus ca este definit mai sus ca LED_L. LED_L = 0; sau LED_L=1; face diferenta intre aprins sau stins. Ai instalat TCP/IP Stack de la microchip? L-ai patch-uit cu cel de la olimex? L.E Mda. Vad ca patch-ul de la Olimex nu este pentru versiunea actuala de la microchip. Citeste documentul lui Tom Nguyen. Link spre comentariu
Vizitator Mareshal Postat Martie 28, 2011 Partajează Postat Martie 28, 2011 Am aprins doar un led de control, care se afla pe placa. il aprind, initializez LCD-ul, il sting. Dar din moment ce el sta aprins, e clar ca nu trece de rutina de initializare. Am dreptate sau nu ?Ce treaba are stiva tcp/ip cu LCD-ul ? Link spre comentariu
MatyC Postat Martie 28, 2011 Partajează Postat Martie 28, 2011 Ma gandeam la ledul de backlight. Vad ca folosesti C18, ma gandeam ca folosesti librariile de la Olimex. Pe asta nu l-am studiat.Care este timpul intre aprinderea si stingerea ledului galben? Link spre comentariu
Vizitator Mareshal Postat Martie 28, 2011 Partajează Postat Martie 28, 2011 Ce librarii Olimex? nu gasesc nici coduri sursa demo pentru placile lor, d'apoi librarii.Delay-ul e de aproximativ 200ms Link spre comentariu
ramsesrr Postat Martie 28, 2011 Partajează Postat Martie 28, 2011 vezi ca merge direct stiva tcp/ip de la microchip Link spre comentariu
Vizitator Mareshal Postat Martie 28, 2011 Partajează Postat Martie 28, 2011 Mi-ati spus de 2-3 ori pana acum sa pun patchu pentru tcp/ip. Ce legatura are patchu ala cu LCD-ul meu? Imi explica si mie cineva ? Link spre comentariu
MatyC Postat Martie 28, 2011 Partajează Postat Martie 28, 2011 Cine crezi ca a mai cumparat placa aia de dezvoltare? Toate sfaturile care le vei primi sunt ca idee generala. Pe situl la olimex ai tot ce trebuie in afara de rabdare. http://olimex.com/dev/pdf/PIC/PIC-MAXI-WEB%20tom%20nguyen.pdf este un document facut de un alt utilizator al plăci care ai cumparat-o. Si acolo ai sa afli ce este "TCP/IP Stack" parte componenta al kitului de dezvoltare oferit de Microchip sub numele de "Microchip Solution", care in momentul de fata versiunea oferita pe situl microchip nu mai corespunde patch-ului oferit de Olimex. Insa am observat ca nu foloseshti asha ceva ci mergi direct cu C18. Eu nu am lucrat cu el, dar sunt informatii destule pe net. Din bucata aia de cod cu ledul aprins si stins, ar trebui sa mearga. Dar scuza-ma, ca eu shtiu ce inseama "arigato" insa nu trebuie sa afirm ca stiu japoneza. Posteaza tot codul sursa sa vedem in ansamblu ce ai facut. kit vad ca a lucrat mai mult cu C18. Eu am testat limbajul C cu cc5x si Hitech. Link spre comentariu
Vizitator Mareshal Postat Martie 28, 2011 Partajează Postat Martie 28, 2011 Nu am cumparat-o. Eu doar am imprumutat-o. Am instalat HiTECH acum, sa vad asta cum merge. Link spre comentariu
kit Postat Martie 30, 2011 Partajează Postat Martie 30, 2011 LE: se blocheaza aici: OpenXLCD(FOUR_BIT & LINES_5X7);pai daca ai aflat la care functie se blocheaza, mergi cu executia pas cu pas si in interiorul acesteia, sa vezi la care instructiune ia o pauza. posibil sa ia pauza la una din liniile ce contin:while( BusyXLCD() );de fapt, cel mai probabil la prima aparitie. in cazul asta, verifica pinii, tensiunile, configuratia xlcd.h...schimbarea platformei nu ajuta cu nimic. solutii magice nu exista, exista doar toceala si iar toceala. urmata de multa munca.bafta! Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum