În prezent, există multe programe diferite pentru microcontrolerele AVR. Cel mai recunoscut program este, desigur, Atmel Studio, dar are prea multe clopote și fluiere. Prin urmare, pentru începători, se recomandă un alt mediu de dezvoltare: CodeVisionAVR. Despre asta vom vorbi în articolul nostru. Puteți să-l descărcați de pe link-ul direct aici. Desigur, există versiuni și reînnoite, dar în plus față de jetoanele inutile în ele nu se adaugă nimic util.
Care sunt avantajele acestui program?
CodeVisionAVR este un mediu de dezvoltare care suportă toate operațiile cu AVR. În el, putem scrie codul, compilați-l și folosiți programatorul pentru a "turna" în MC-ul dorit. Și nu descărcați separat programul, firmware-ul, compilatorul și alte programe inutile. Și de ce, dacă toate astea sunt în KodVision? De asemenea, CodeVision suportă aproape toți programatorii cunoscuți pentru AVR, fie că este vorba de clone chinezești sau de programatori originali. Un mare cod de plus este acela că creează un șablon de programat, din care trebuie să eliminăm toate inutilele, ceea ce este un plus de neimaginat pentru începători.
Acesta este modul în care programul se ocupă de instalarea acestuia (faceți clic pe imagine pentru a mări imaginea)
Pentru a crea un nou proiect, faceți clic pe pictograma "unelte":
După aceasta, va apărea această fereastră. Am pus punctul marker pe AT90, Atiny, FPSLIC și apăsați "OK".
Apoi, această fereastră va ieși. În dreptunghiul roșu am arătat care parte a ferestrei ar trebui să fie acordată atenție:
Noi alegem MK-ul nostru. În acest caz, folosesc MC Atiny2313, deci din lista tuturor MC-urilor pe care le oferă programul, o aleg.
De asemenea, puteți modifica frecvența "Ceas". Implicit, este setat la 8 megahertzi.
Apoi, faceți clic în aceeași fereastră pe pictograma roată:
Sa dovedit că o astfel de fereastră. Mai întâi, selectăm dosarul în care ne vom salva proiectul. Am creat un dosar pe desktop și l-am numit MK AVR. Apoi a scris numele proiectului nostru "lecția 1", bine, ca și "prima lecție"). Ei bine, apoi apăsăm butonul "Salvați". Fiți atenți la extensia de fișier, pe care am înconjurat în mov:
Apoi va exista o altă fereastră, doar extensia fișierului va fi diferită. Nu vă pierdeți, scrieți și numele fișierului, în acest caz lecția 1, și faceți clic pe "Salvați"
Și apoi aceeași fereastră finală va ieși ;-). De asemenea, nu vă pierdeți, scrieți numele fișierului și apăsați din nou butonul "Salvați".
Ei bine, suntem gata să creăm primul nostru proiect ;-)
CodeVizhen pentru noi a pregătit un șablon. Există în mod evident multe lucruri suplimentare. Mai întâi de toate, luăm jos capacul
Selectați, apăsați Del.
Deci, acum ne gândim la proiectul pe care îl vom chemi. Clipește un LED este prea obișnuit. Așa că luăm trei LED-uri! Programul nostru va lumina alternativ fiecare LED și apoi în aceeași ordine pentru a le stinge. Vom avea un astfel de algoritm, adică procedura de acțiuni:
1) Când se aplică energie la MC, aprindeți primul LED.
2) După o secundă, aprindeți al doilea LED, dar primul LED rămâne aprins.
3) După 1 secundă, aprindeți cel de-al treilea LED, dar și cele două anterioare arde. adică avem 3 LED-uri simultan.
4) După 2 secunde al treilea LED va ieși.
5) După o secundă, al doilea LED se stinge.
6) După o altă secundă, primul led va ieși.
7) După 2 secunde întregul ciclu se repetă din etapa 1.
Algoritmul am fost de acord cu tine. Rămâne să lucrezi pentru mici: scrie un program ;-)
Deci, primele două linii de cod sunt conexiunea bibliotecilor. Adică, avem deja aceste fișiere în programul CodeVision. Trebuie doar să le conectăm.
Includeți limba engleză. - include, conține, conectați. Include este numit, de asemenea, operatorul atașament fișier extern.
Adică, atașăm la programul nostru biblioteca "mic 2313.h" pentru Atiny 2313 MC, deoarece este schema noastră care va lucra la ea. Și, de asemenea, conectăm biblioteca "delay.h". Delay - c engleză. să amâne, să amâne, să amâne. Asta este, în mod aproape vorbind, ne conectăm și întârzierea.
Două rânduri de cod par să fi scris).
Programul în sine este scris după golurile principale (void) dintre acoladele curbate. Acolo vom scrie programul nostru.
Să aruncăm o privire mai atentă la MK:
Aici vedem numele principal al picioarelor, iar în paranteze scopul lor dual. Scopul dublu nu ne interesează încă. Suntem în prezent interesați de denumirile PA, PB, PD. Acestea sunt numite și porturi I / O. Adică, puteți introduce ceva pe ele și puteți scoate ceva din ele). În acest caz, vreau să folosesc picioarele PB0, PB1, PB2 pentru a controla LED-urile. Pe fiecare dintre aceste picioare, voi atârna pe un LED, așa că am trei. Restul picioarelor nu ne interesează, pentru că nu le vom folosi.
Schema noastră va arăta astfel:
Prin urmare, trebuie să ajustez aceste picioare pentru a controla LED-urile.
Deci, în paranteze curbate, scriem:
0b este un sistem de numere binare. Este convenabil să configurați într-un sistem binar în care fiecare bit este un picior al MK. Prin urmare, scorul merge de la dreapta la stânga. Uită-te aproape la imaginea de mai sus. Aici vedem PORTB și zerouri în sistemul binar al calculului. Ce înseamnă asta? Și aceasta înseamnă că aceste concluzii, dacă nu sunt utilizate în program, vor fi atrase la zero, adică vor avea un potențial scăzut sau zero volți. În cazul în care vedem cele fixate pe unul dintre biți, înseamnă că pe acest port, dacă nu este folosit în program, vom avea un potențial ridicat sau plus 5 volți, sau, cu alte cuvinte, această concluzie va fi acceptată de noi plus putere.
Aceasta înseamnă că PB0, PB1, PB2 sunt setate la ieșire. Luați în considerare dreptul-la-stânga, dacă nu ați uitat. Și dacă e zero, înseamnă că sunt configurați să intre.
După fiecare linie, nu uitați să puneți semnul ";". în caz contrar, atunci când compilați (transformând programul în codul pe care MK îl înțelege), vor exista erori.
Acum ia în considerare în timp ce (1). Aceasta înseamnă că o bucată din program care va fi scris după ea va fi bucle, adică repetată de nenumărate ori.
De fapt, puteți începe să scrieți programul în sine.
Cum arata?
Uite, programul se află între acolade. Aceste paranteze sunt în timp (1). Asta este, această piesă a programului va fi repetată de nenumărate ori.
Să analizăm programul în sine.
PORTB.0 = 1; Aceasta înseamnă că atunci când alimentarea este furnizată MK, piciorul PB0 va avea o unitate logică. care este, la ieșirea din acest picior va fi de 5 volți, care va lumina LED-ul.
delay_ms (1000); Așteptăm 1000 milisecunde, adică 1 secundă.
PORTB.1 = 1; După o secundă, o unitate logică apare pe piciorul PB1, adică 5 volți, care va lumina al doilea LED
delay_ms (1000); așteptăm încă o secundă.
PORTB.2 = 1; De îndată ce trece o secundă, avem o unitate logică pe piciorul PB2 și, în consecință, se aprinde al treilea LED.
Dar apoi cum vor trece aceste două secunde.
PORTB.2 = 0; Pe piciorul PB2 apare un zero logic, adică, tensiunea dispare. Al treilea LED se stinge.
PORTB.1 = 0; Tensiunea pe piciorul PB1 dispare. Al doilea LED se oprește, de asemenea, emite lumină.
PORTB.0 = 0. Și pe piciorul PB0, tensiunea devine, de asemenea, zero. Primul led va ieși prea departe.
Acesta este modul în care programul arată complet. Poate fi chiar copiat și compilat.
void principal (void)
PORTB = 0b00000000;
DDRB = 0b00000111;
în timp ce (1)
PORTB.0 = 1;
delay_ms (1000);
Ei bine, totul, programul este scris. Rămâne să lucrăm pentru mici: să transformăm scrierile noastre în codul mașinilor, astfel încât MC să o înțeleagă. Pentru a face acest lucru, faceți clic pe butonul "creați toate fișierele de proiect"
După ce faceți clic pe acest buton, avem o fereastră care apare, care spune dacă compilația a avut succes și așa mai departe. Dacă totul este normal, faceți clic pe OK.
Dacă ceva nu este corect, se vor afișa erori. Am eliminat în mod special semnul ";" după o linie. Jură despre ceva de genul acesta, iar acest lucru nu este bun:
Dacă totul este OK, atunci aveți dosarul "Exe", unde toate proiectele vor fi fișierul finalizat, în acest caz "lecție 1. hex".
Acum acest fișier este fericit să cumpere AVR noastre și va executa programul care este în acest fișier.