nightmare Postat Decembrie 4, 2012 Partajează Postat Decembrie 4, 2012 Am intampinat o mica problema la o simulare in Proteus. Vreau sa fac un aparat care sa masoare Curent, Tensiune, Putere si Energie. Am facut deja o varianta cu Arduino si merge cum trebuie si m-am hotarat sa il construiesc cu un pic. Am facut schema de mai jos ca sa testez codul pe care l-am scris. Problema e ca afiseaza tensiune si curent, chiar si putere, dar cand trec mai departe la un moment dat incepe sa nu mai afiseze pe display urmatorul caracter si daca sterg o instructiune din urma il afiseaza, ca si cand ar fi ramas fara memorie. Daca scriu tot codul nu mai afiseaza nimic si da Stack Overflow. Codul e scris in MikroC si de acolo reiese ca memoria picului nu e nici pe departe plina. Sa fie o problema din Proteus sau am gresit eu ceva in cod? Link spre comentariu
svi67 Postat Decembrie 5, 2012 Partajează Postat Decembrie 5, 2012 Incearca sa setezi si registri ADCON0 si ADCON1 ,vezi datasheet-ul procesorului la pagina 66.In Proteus adauga o rezistenta de 10k intre RA3/MCLR si "+" Link spre comentariu
nightmare Postat Decembrie 5, 2012 Autor Partajează Postat Decembrie 5, 2012 Am pus rezistenta si am setat ADCON0 si ADCON1. Inainte de citirea de pe AN2 setez ADCON0=0b00001000 si inainte de citirea de pe AN1 setez ADCON0=0b00001100, dar primesc acelasi stack overflow. Link spre comentariu
svi67 Postat Decembrie 5, 2012 Partajează Postat Decembrie 5, 2012 Poza atasata de mine mai sus e corecta ? Este simularea facuta de mine,cu Proteus 7.10 cu 4V la intrarea AN2 si 4A la intrarea AN1 dupa arhiva mai sus atasata de tine. Link spre comentariu
nightmare Postat Decembrie 5, 2012 Autor Partajează Postat Decembrie 5, 2012 Da. Eu aveam legate invers cele 2 intrari AN1 si AN2, dar acum le-am inversat ca sa citesc in ordine de pe ele ca e mai comod. Simularea e facuta pe codul scris de mine corectat? Sau e alt cod? Link spre comentariu
svi67 Postat Decembrie 5, 2012 Partajează Postat Decembrie 5, 2012 Am adaugat la original:void main() { ANSEL = 0b00000110; CMCON0 = 0x07 ; ADCON0 = 0b00000100; // canal analogic AN1 , ADCON0 = 0b00001000; // canal analogic AN2 ADCON1 = 0x00; TRISC = 0b00000000; TRISA = 0b00000110; Lcd_Init(); Lcd_Cmd(_LCD_CLEAR); Lcd_Cmd(_LCD_CURSOR_OFF);do{........Ceas intern 4Mhz,Iar rezultatul ca in poza functional. Link spre comentariu
nightmare Postat Decembrie 5, 2012 Autor Partajează Postat Decembrie 5, 2012 Am facut si eu aceleasi modificari si imi da in continuare stack overflow si nu afiseaza nimic. Ce versiune de proteus folosesti? Link spre comentariu
nightmare Postat Decembrie 5, 2012 Autor Partajează Postat Decembrie 5, 2012 Nu cumva Adc_Read ar trebui sa seteze ADCON0 in interiorul ei? 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