Sari la conținut
ELFORUM - Forumul electronistilor

Pagini cu meniu si modificare/salvare parametri


Postări Recomandate

Si daca nu va suparati....RAM se ocupa cu partea de afiasre pe display?

adica memoria caracterelor?


Da...m-am documentat...atunci cand apar mai multe pagini de meniu de exemplu se consuma foarte mult din RAM, apoi apare treaba cu IRP - bit set manual, dar nu va rezolva problema complet, probabil ca daca se continua cu sub-meniu deja se papa tot RAM-ul...aici intervine partea interesanta a lui Bandi din exemplul lui...din pagina 2 daca nu ma insel...sau trecerea la un pic mai evoulat....

Editat de catalin004
Link spre comentariu

Ma gandesc ca ai varianta demo din mikroC cu limita pana la 2k? E codul foarte aproape de acea limita ? Ca sa economisesti RAM declara toate variabilele care sunt statice ( nu li se schimba valoarea in timpul rulalrii programului ) cu prefixul "const". Acel prefix zice compilatorului ca acea valoare e statica si valoarea acestuia nu se schimba deloc si atunci compilatorul il muta din RAM in ROM ( spatiul de program).

Link spre comentariu

Da este e chestie de adresare a zonei de RAM. E mai vechi PIC-ul si aia este adevarat, cele noi sunt din gama 16F15xx / 16F17xx / 16F18xx. Eu acuma vreau sa incep se experimentez cu PIC32 sa vad ce chestii mai noi stiu. PIC16F e totusi destul de limitat pe partea de RAM daca vrei RAM mult atunci dsPIC pe 24biti sau PIC32 pe 32 biti.

 

Oricum se poate rezolva problem ta.

 

Renunta la codul de genul acesta:

 Lcd_Out(2, 1,">Setari generale");

Si fa in felul acesta, compilatorul va stoca textul in spatiul ROM si va elibera din RAM. Toate textele statice care nu se schimba trebuie stocate in felul acesta

const char* text_setariGenerale =">Setari generale";

Lcd_Out(2, 1, text_setariGenerale );
Editat de Bandi Szasz
Link spre comentariu

Deci am pus aici o postare si nu a mers...a aparut gol...virusi....

 

Dar am vrut sa spun ca lucrez la o placa cu dsPIC30F6010A, interfatare LCD, encoder(potentiometru), taste cu meniu si ok , I/O digitale si analogice+6 pwm-out(3 phase),s.a. placa o va face mars desigur, dar mai am de lucru....dupa Sarbatori

 

Am incercat cu, insa o sa incerc si cum a zis Bandi :

char message11 [] = ">Setari generale";

apoi l-am bagat in LCD


LCD_Out(1,1,message11);

dar cred ca aici tot in RAM l-a salvat
Editat de catalin004
Link spre comentariu

 

Da este e chestie de adresare a zonei de RAM. E mai vechi PIC-ul si aia este adevarat, cele noi sunt din gama 16F15xx / 16F17xx / 16F18xx. Eu acuma vreau sa incep se experimentez cu PIC32 sa vad ce chestii mai noi stiu. PIC16F e totusi destul de limitat pe partea de RAM daca vrei RAM mult atunci dsPIC pe 24biti sau PIC32 pe 32 biti.

 

Oricum se poate rezolva problem ta.

 

Renunta la codul de genul acesta:

 Lcd_Out(2, 1,">Setari generale");

Si fa in felul acesta, compilatorul va stoca textul in spatiul ROM si va elibera din RAM. Toate textele statice care nu se schimba trebuie stocate in felul acesta

const char* text_setariGenerale =">Setari generale";

Lcd_Out(2, 1, text_setariGenerale );

Eroare...illegal pointer conversion

Link spre comentariu

Ok, se pare ca Lcd_Out nu vrea sa lucreze cu zona ROM, hai sa incercam altfel, definim textul in ROM dupa care il copiem in RAM la nevoie si ii dam asa la functia LCD.

const char *text_setariGenerale = ">Setari generale";


char* rom_to_ram(const char* ctxt){
  static char txt[20];
  char i;
  for(i =0; txt[i] = ctxt[i]; i++);

  return txt;
}


Lcd_Out(2, 1, rom_to_ram(text_setariGenerale));

Link spre comentariu

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 cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări