În timp, se pare că iarba vecinului este mai verde.

Adică, compilatorul este mai abrupt, mai simplu, mai convenabil și se optimizează mai bine.
Să începem cu IDE Embedded Workbench IDE pentru AVR - să vedem cum să lansăm proiectul în el.
Vom lua în considerare limba C - fără pluses - așa că vom înțelege că nu există referințe la variabilele "at" și biți aici.
Acum, destinul nostru este expresia "portLight | = 1 <<_Light;" и "portButton &= ˜(1 <<_Button);", где выражение типа "x |= a" заменяет длинную запись "x = x | a".
Totuși, aici sunt multe setări de buton-și-pin, care nu sunt destul de evidente, dar fără ele nu funcționează><
Prin urmare, dați clic pe "Proiect -> Opțiuni":
În fila "Opțiuni generale" - "Țintă" definim configurația procesorului - există un buton la dreapta câmpului de text
În „Opțiuni generale“ - „Sistemul“ are o căpușă foarte important și foarte discret „Activează definiții bit în I / O-includ fișiere“ - pune-l, și vom fi fericiți: compilatorul va înțelege înregistrează nu numai numele, dar numele biților registrului . Aceasta este, puteți scrie ceva de genul: "GICR | = 1 < // În "Compilator C / C ++" - "Limbă 1" bifați "Compilație cu mai multe fișiere" - se spune că este mai bine O_o În fila "Complicații C / C ++" - "Optimizări", puteți seta un nivel ridicat de optimizare, iar dimensiunea fișierului de ieșire va scădea. Teoretic, cel puțin. În "Linker" - "Output" bifați "Override default" și scrieți în câmpul text extensia .hex; puteți scrie în general "$ PROJ_FNAME $ .hex" - atunci numele proiectului va fi scris automat. Mai jos, în zona "Format", selectați "Altele" - "inteligent" După aceea, totul ar trebui să fie bun) Mergem mai departe - pentru scrierea oricărui program avem nevoie de mai multe biblioteci. Pentru a le conecta, utilizați directiva include: paranteze unghiulare indică compilatorului că fișierele antet trebuie să fie mai întâi găsite în dosarul standard de „IAR \ avr \ inc“, și citate - ceea ce ai nevoie pentru a începe căutarea pentru un director în care proiectul este stocat. Mai mult decât atât, pentru fiecare tip de microcontroler trebuie să conectați fișierul antet (pentru ATmega8 - iom8.h, pentru ATTiny2313 - iotiny2313.h, etc.), dar, în principiu, este posibil să se conecteze frecvent întâlnite fișiere antet și inavr.h ioavr.h, și preprocesorul în sine va da seama ce este - în funcție de setările programului. De asemenea, în acest compilator va fi o mulțime defini-uri - la pereobozvat registre de control al portului (DDRx, PORTx, PINx) - utilizeze indicii pentru char nesemnate, în mikroC, nu va funcționa - și, de fapt, nu este clar că, chiar mai bine) digresiune mici: în Limba C este un lucru de genul unui preprocesor. El este capabil de a schimba codul pentru a compila și de a lucra cu directivele #include, #define, #if, # ifdef, și așa mai departe. Când scriem #define 3 3, atunci preprocesorul va înlocui toate "trei" cu "3" în program înainte de compilare, Despre pâine și este de obicei necesar: undeva ascuns departe caracteristică __delay (valoare), care funcționează cu milisecunde - este în certificat, ci pentru a găsi o bibliotecă unde este, nu am putut - dar există o __delay_cycles funcție (nesemnate int lung), care funcționează cu măsuri - se află în biblioteca "intinsics.h" - "inavr.h" se referă, de asemenea, la aceasta. Pentru a obține suma corespunzătoare de secunde, multiplicați acest număr cu frecvența în hertz. De exemplu, este afișat un program care clipește cu un LED:Articole similare