Sari la conținut
ELFORUM - Forumul electronistilor

optimizarea la maxim codului de picuri !?!


sz3bbylA

Postări Recomandate

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 spre comentariu
  • Răspunsuri 5
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • sz3bbylA

    2

  • Cristiano

    1

  • XAN77

    1

  • Laci

    1

Top autori în acest subiect

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 spre comentariu

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 spre comentariu

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 spre comentariu
  • 1 lună mai târziu...

@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 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