Sari la conținut
ELFORUM - Forumul electronistilor

o chestie pe care nu o inteleg la avr-gcc


rotten

Postări Recomandate

daca intru intr-o bucla while, de genul :

while((!kp_ok) | (kb!=15)){};

sistemul de blocheaza , desi intreruperea care altereaza kp_ok si kb functioneaza.

daca bag in while-ul ala cateva instructiuni , de genul :

while((!kp_ok) | (kb!=15)){LCD_set_xy(0,0);fprintf(stdout,"%02d %02d",kp_ok,kb);};

bucla se comporta normal - adica isi termina executa cand kb=15 si kp_ok=1

 

LE:

am scos optimizarea de pe "s" - size si am obtinnut:

optimizare 0 - merge bucla directa

pe restul (1,2,3,s) nu mai merge

Link spre comentariu
  • Răspunsuri 4
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • rotten

    2

  • ciocead4

    1

  • lucicop

    1

  • Laci

    1

Zile populare

Top autori în acest subiect

Incearca sa declari variabilele kp_ok,kb ca volatile. Acest lucru anunta compilatorul ca variabilele pot fi modificate din mai multe locuri (de ex. intrerupere) si nu vor fi optimizate de compilare.Sper sa ajute,Daniel

Link spre comentariu

Desi zici ca functioneaza, ma bag si eu cu o parere: poate ai vrut sa scrii || in if in loc de | care e o operatie pe biti intre cele doua rezultate. In cazul asta e acelasi lucru, dar in altele se poate sa nu fie.

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