Și banc de lucru încorporat

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

Și banc de lucru încorporat

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

Trimiteți-le prietenilor: