Liviu M Postat Mai 23, 2015 Partajează Postat Mai 23, 2015 Mie mi se par OK. Daca nu sunt probleme in hardware, eu zic c-ar trebui sa mearga. Link spre comentariu
Vizitator SimonaAlexandra7 Postat Mai 23, 2015 Partajează Postat Mai 23, 2015 O sa mai verific totusi inca o data si cablajul... si o sa incarc codul pe care mi l-ai sugerat... sper sa mearga... Link spre comentariu
Elison Postat Mai 24, 2015 Partajează Postat Mai 24, 2015 http://www.mikroe.com/download/eng/documents/compilers/mikroc/pro/pic/help/lcd_library.htm aici D0,D1,D2,D3 sunt pusi la masa.La tine sunt conectati la masa? Link spre comentariu
Vizitator SimonaAlexandra7 Postat Mai 24, 2015 Partajează Postat Mai 24, 2015 Da,sunt pusi la masa..ii folosesc doar pe D4-D7.... Link spre comentariu
costi002 Postat Mai 24, 2015 Partajează Postat Mai 24, 2015 Nu ar strica si un delay dupa alimentare, inainte de initlcd. Link spre comentariu
Vezi Muti Postat Mai 24, 2015 Partajează Postat Mai 24, 2015 I//Functie principalavoid main() { INTCON = 0; // Dezactivare intreruperi ANSELD = 0; Lcd_Init(); Delay_ms(100); // Initializare LCD Lcd_Cmd(_LCD_CURSOR_OFF); // Dezactivare cursor Lcd_Cmd(_LCD_CLEAR); // Stergere Ecran Delay_ms(1000); // Delay 1 secunda Lcd_Out(1,2,"Test LCD"); // Mesaj initial 1, prima linie Lcd_Out(2,5,"Blablabla"); // Mesaj initial 1 linia 2 delay_ms(100);} Programelul tau are un start frumos, sfarsit nu are. Desi nu cred ca asta este cauza nefunctionarii, spune-mi te rog ce crezi ca se produce dupa executarea din final "delay_ms(100);" ? Link spre comentariu
Liviu M Postat Mai 24, 2015 Partajează Postat Mai 24, 2015 He, he, nici nu m-am gandit ca asta ar fi tot programul. Ma gandeam ca a postat doar partea de initializare a LCD-ului. Link spre comentariu
Vizitator SimonaAlexandra7 Postat Mai 26, 2015 Partajează Postat Mai 26, 2015 Da..asta este tot programul..... Ce ar trebui sa mai pun?? Link spre comentariu
Vlad Mihai Postat Mai 26, 2015 Partajează Postat Mai 26, 2015 Trebuia sa lasi codul asa cum ti l-am trimis eu initial. Uite ti-l mai postez odata, cred ca e functional acum: //Conexiuni LCDsbit LCD_RS at RD4_bit;sbit LCD_EN at RD6_bit;sbit LCD_D4 at RD3_bit;sbit LCD_D5 at RD2_bit;sbit LCD_D6 at RD1_bit;sbit LCD_D7 at RD0_bit;sbit LCD_RS_Direction at TRISD4_bit;sbit LCD_EN_Direction at TRISD6_bit;sbit LCD_D4_Direction at TRISD3_bit;sbit LCD_D5_Direction at TRISD2_bit;sbit LCD_D6_Direction at TRISD1_bit;sbit LCD_D7_Direction at TRISD0_bit;//Functie principalavoid main() { INTCON = 0; // Dezactivare intreruperi Lcd_Init(); // Initializare LCD Lcd_Cmd(_LCD_CURSOR_OFF); // Dezactivare cursor Lcd_Cmd(_LCD_CLEAR); // Stergere Ecran Delay_ms(1000); // Delay 1 secunda while(1){ Lcd_Out(1,2,"Test LCD"); // Mesaj initial 1, prima linie Lcd_Out(2,5,"Blablabla"); // Mesaj initial 1 linia 2 delay_ms(100); }} Link spre comentariu
Vizitator SimonaAlexandra7 Postat Mai 26, 2015 Partajează Postat Mai 26, 2015 O sa il fac asa,mersi mult de tot!! Va multumesc tuturor celor care mi-ati raspuns! Link spre comentariu
Liviu M Postat Mai 26, 2015 Partajează Postat Mai 26, 2015 (editat) Da..asta este tot programul..... Ce ar trebui sa mai pun?? Unul din primele lucruri pe care le-am aflat and am inceput eu sa invat despre programarea microcontrollerelor, a fost ca dupa partea de initializare e nevoie de o bucla infinita (while(1) de cele mai multe ori) in care microcontrollerul sa-si piarda vremea pana la adanci batraneti. Cu unele exceptii, ca intotdeauna in viata (watchdog reset, de exemplu). In lipsa buclei infinite, cand ajunge "la capatul celalalt", microcontrollerul nu mai stie ce sa faca si o ia de la capat - reset, initializare... Nu mai stiu de unde am cules initial informatia, da' am presupus-o "general valabila". Nu stiu exact ce face mikroc in cazul asta, dar compilerul pe care-l folosesc eu (xc8) asa functioneaza: The identifier main is special. You must always have one and only one function called main() in your programs. This is the first function to execute in your program. Code associated with main() ; however, is not the first code to execute after Reset. Additional code provided by the compiler, and known as the runtime startup code, is executed first and is responsible for transferring control to the main() function. The actions and control of this code is described in the following sections. The compiler inserts special code at the end of main() which is executed if this func- tion ends, i.e. a return statement inside main() is executed, or code execution reaches the main() ’s terminating right brace. This special code causes execution to jump to address 0, the Reset vector for all 8-bit PIC devices. This essentially performs a software Reset. Note that the state of registers after a software Reset may be differ- ent to that after a hardware Reset. It is recommended that the main() function does not end. Add a loop construct (such as a while(1) ) that will never terminate either around your code in main() or at the end of your code, so that execution of the function will never terminate. For example, void main(void) { // your code goes here // finished that, now just wait for interrupts while(1) continue; } @Vlad - dezactivarea porturilor analogice atunci cand le nu le folosesti (si sunt sanse sa folosesti digital portul alocat lor) e good practice, vorba francezului. Asa ca puteai lasa in cod linistit ANSELD = 0; Editat Mai 26, 2015 de Liviu M 1 Link spre comentariu
Mondan Postat Mai 26, 2015 Partajează Postat Mai 26, 2015 De ce nu ne pui schema in Proteus. In Proteus merge ? Daca pui schema in Proteus eu am 7.1 ma pot implica si eu. Daca stai in Regie sau alt campus, gasesti usor Proteus pe retea. Link spre comentariu
Liviu M Postat Mai 26, 2015 Partajează Postat Mai 26, 2015 (editat) ma pot implica si eu.Si care ar fi castigul? Editat Mai 26, 2015 de Liviu M Link spre comentariu
Mondan Postat Mai 26, 2015 Partajează Postat Mai 26, 2015 Pai voi pana cum ati rezolvat problema ? Link spre comentariu
Mircea Postat Mai 26, 2015 Partajează Postat Mai 26, 2015 In lipsa buclei infinite, cand ajunge "la capatul celalalt", microcontrollerul nu mai stie ce sa faca si o ia de la capat - reset, initializare...Tot in Franceza : you sure 'bout that?!O sa incerc diseara cu un programel de test, dar nu inteleg de ce ar fi asa daca nu ai WDT activat. 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