Jump to content
ELFORUM - Forumul electronistilor

optimizarea la maxim codului de picuri !?!


sz3bbylA

Recommended Posts

Nu stiu daca cineva a mai cautat pina acum asa ceva

Eu mam jucat cu un lcd 2 linii 16 caractere si un 16f84a

Am folosit ccs c pic si am reusit cu toate cunostintele mele sa fac un ceas cu data dar inca nu iam pus inca taste sa il pot regla

Problerma e ca imi ocupa deja 68%rom, 22%ram

am mai citit pe forumuri si se pare ca nu e asa de bun ideul asta si compilatorul lui tocmai din cauza ca risipeste cea mai pretioasa resursa din pic - "memoria"

http://www.piclist.com/techref/microchi ... age/cs.htm

Ma gindesc ca in curind cind o sa dau drumu la intreruperi si o sa dau functii butoanelor nu o sa mai am loc in pic pt program

mam mai uitat pe net si am vazut "cc5x" URL si "byte craft" ca ar fi cele mai puternice in utilizarea eficienta al ramului si romului din pic

cine imi poate da o varianta buna de programare dar care sa optimizeze calumea codul ??

Poate cei mai experimentati m-ar putea orienta spre un compilator care sa foloseasca ramu si romu eficient si sa nu risipeasca prea mult ?!?

asta e codul dar nu stiu cum sa il mai optimizez(am luat lcd.c si am scos read din el ca sa nu mai ocupe spatiu si l-am denumit lcds.c)

Link to comment
Share on other sites

Compilatorul nu te scapa de lucru, daca te-ai cumetat sa folosesti functia printf atunci asta-i rezultatul, gandestete putin tu cum ai implementa functia printf, care nu are numar fix de argumente, si accepta toate argumentele standard pentru printf?Sfatul meu este sa cauti unde pot sa selectezi optiunea de -Os (Optimize size), sa folosesti alta functie in loc de printf(il scrii tu), si mai optimizeaza codul tau, ca-i facut cam in graba :)

Link to comment
Share on other sites

poate nu asta asteptai dar titlului topicului i se potriveste un singur limbaj, asamblerul. Pe de alta parte se poate, ocupa cam mult si programul tau, eu in pic de 1K flash am facut tot asa un ceas, citire de senzori de temperatura i2c, reglajul ceasului si a altor parametrii ca era o automatizare la acvariu (comanda lumina, incalzitoru), intradevar avea vreo 1010 locatii din flash ocupate, dar era facut in Basic, care toata lumea zice ca e mai prost/neprofesional decat C .

Link to comment
Share on other sites

Nu limbajul e problema, ci modul in care e folosit. Evita (dupa cum s-a mai spus) functiile standard (pentru cei ce sunt obisnuiti cu C-ul pt. PC) gen printf si foloseste pe cat posibil variabile de tipul potrivit (am vazut acolo ca ai peste tot "int" si f. multe din ele ar putea fi "unsigned char"). "Int" e pe 16 biti si cu semn, deci orice operatie (adunare, scadere, etc. plus comparatii) necesita mult mai multe micro-operatii (instructiuni ale PIC-ului si implicit memorie program) decat in cazul "unsigned char".

 

Uite aici niste sfaturi utile: http://www.microchipc.com/HiTechCFAQ/ , se aplica pt. orice compilator de C.

Link to comment
Share on other sites

  • 1 month later...

@Cristiano: linkul dat de tine este aur curat! Ar fi bine daca acest thread ar fi sticky, este extrem de importanta optimizarea codului de catre programator mai intai si abia apoi de catre compilator. Daca scrii corect codul in C iese ceva vis, daca nu este belea curata!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines