Datagor Electronics Magazine de electronice practice versiune completa
Acest articol (sau mai degrabă o serie de articole ...) am decis să dedice microcontrolere Atmel firmei. Desigur, subiectul este banală ... DAR! Pe experiența proprie știu că știu adevărul în mijlocul acestei, mizerie pare rău, foarte, foarte dificil! De aceea, am decis să încerc să facă cel puțin o claritate cap dornici să învețe din această fiară teribil, de asteptare „Microcontroler“.
Astfel, scopul acestui articol este de a descrie și, dacă este posibil, pentru a arăta întregul proces de creare a unui dispozitiv bazat pe un microcontroler cu „zero“. Aceasta este, de ideile (de exemplu, ne-am decis să colecteze de Crăciun lumină intermitentă, similar cu cel descris alx32 respectat în articolul „Anatomia microcontrolere ATmega,“ ...) pentru punerea în aplicare în hardware. Desigur, ocolind toate etapele intermediare: formularea problemei, alegerea MC, selectarea legării, formularea algoritmului, programul de scriere, depanare, crearea unui consiliu și cel mai bun venit - start.
Astfel, problema. avem nevoie pentru a crea un dispozitiv capabil de lumină într-o anumită ordine (să fi la un moment dat). Numărul N-Noe de LED-uri (se lasa sa fie 8 bucati).
(Acest lucru este de a începe ...... ..)
fragment Exmatriculat. Versiunea completă a acestui articol este disponibil doar pentru membrii cu drepturi depline în comunitate și de abonați.
Vă rugăm să consultați Termenii și condițiile de acces.
Acum puteți lua pe programare. Poti scrie pe nimic, dar am sfătui începători să acorde prioritate limbii ca fiind C. programare mai simple și mai clare. Personal, am folosi AVR compilator CodeVision (acesta este un fișier de siguranță), alte liste de programe va oferi pentru acest compilator.
Noi definim algoritmul. Trebuie să stea la coadă pentru o anumită perioadă de timp pentru a activa una dintre ieșirile MC.
Activarea / dezactivarea o varietate de moduri:
- atribuie valori pentru fiecare terminal separat;
- a scrie valori după ce toate constatările.
Valoarea (secvență) pot fi obținute:
- tastarea manual toate comenzile;
- solid;
- metodă matematică.
Intervalul de timp poate fi setat:
- funcții de întârziere (întârziere);
- un cronometru.
Vom experimenta cu toate aceste moduri. Dar mai întâi trebuie să martor ...
Pentru a crea un program de gol se va utiliza generatorul de cod construit în CVAVR. Pentru a face acest lucru, executați programul, faceți clic pe File -> New. în fereastra care se deschide, selectați „Project“ și faceți clic pe OK. La întrebarea „Utilizați generatorul de cod?“ Raspuns „Da“.
Nu a fost un generator de cod fereastră. Se alege tipul de MC și frecvența de ceas, iar restul este lăsat singur:
Apoi, du-te la tab-ul „Porturi“ și acolo, în „PORTB“ și a stabilit următoarele:
Așa că am identificat toate concluziile portului B ca ieșiri și deget de la picior înseamnă că, atunci când alimentarea este pornită acestea vor fi setat la „0“ logic.
Restul funcțiilor încă nu am nevoie.
Faceți clic pe "File -> Generare, Salvați și Exit". Alegeți unde să salvați fișierele de proiect și a vedea o fereastră de generator de cod generat.
Acum, să introducă programul de codul nostru.
Cea mai simplă realizare (deși nu sama frumos în termeni de programare) - Valoarea fiecărui plumb, iar întârzierea se face prin intermediul funcției de întârziere.
delay_ms (x); - pe întârzierea x-ms
delay_us (x); - întârzierea x microsecunde
PORTB - portul cu care lucrăm.
PORTB.x - un apel la concluzia x portul B
Este la sfârșitul textului următoarele linii
fragment Exmatriculat. Versiunea completă a acestui articol este disponibil doar pentru membrii cu drepturi depline în comunitate și de abonați.
Vă rugăm să consultați Termenii și condițiile de acces.
Faceți clic pe butonul face proiectul
(In bara de instrumente).
Mamă?
Și pe bună dreptate! Compilatorul nu știe delay_ms funcția (). așa că trebuie să-i arate dosarul în care este descris funcția.
Pentru a face acest lucru la începutul programului pe care doriți să inserați șirul text (aici tochka_s_zapyatoy nu este necesar!)
Ca aceasta:
Din nou, faceți clic pe butonul magică.
Proiectul a fost creat.
Acum, în dosarul în care am salvat proiectul în sine, a apărut fișier nazvanie_proekta Hex - acesta este firmware-ul microcontroler!
Dar stai, nu se grăbesc să apuca un ciocan de lipit pentru ... Noi învățăm cum să program, nu lipi!
De aceea, sugerez pentru a testa software-ul nostru în modul virtuale - și anume, într-un astfel de produs favorit minunat și mea de la Labcenter Electronics - Proteus VSM Este posibil pentru a simula absolut orice schemă (chiar primitivele Laplace sunt!). Se poate lua în fișierul atașat, cu fișierele de proiect. Adevărata versiune nu este destul de kryaknutaya, economisind astfel nu funcționează. Ce se poate face cu acest capac într-un articol separat.
Deci, executați ISIS (concepte de mediu de dezvoltare). În această fereastră, prin apăsarea butonului „P“.
În linia „Cuvinte cheie“ enter „ATTiny2313“ și de a lua de pe dreapta:
Alegeți nu în special din ceea ce, așa că vom apăsa de două ori pe această singură linie și să vedem pe stânga în fereastra principală:
Aceasta înseamnă că se adaugă elementul.
Acum, tastați în „cuvinte cheie“, cuvintele „LED-RED“ și „RES“. Adăugați un rezistor și LED-uri la proiect și a închide fereastra de selecție a elementelor.
Vom încerca să colecteze de circuit (RESET PIN-ul este necesar pentru a se conecta la + 5V, în caz contrar nu va funcționa! Și, de asemenea, este de dorit în viață!)
Iată un mic sfat:
Și pentru a edita proprietățile elementelor suficient să faceți clic pe ele de două ori.
Colectate? Din fericire, nu infirm la acest mine, familia și obiectele din jur.
Ne pare rău pentru umilirea, dacă numai el va înțelege - nu uitați, astfel că, pentru a înțelege programul este foarte puternic și merită să-l stăpânească!
Atunci când circuitul este asamblat, este posibil să se lumineze intermitent MC nostru virtual. Pentru a face acest lucru, faceți dublu clic pe ea și a vedea fereastra:
În „fișierul program“ indică firmware-ul nostru, iar restul nu ating încă. Faceți clic pe butonul OK. Și executați animație:
Asta ne clipește intermitent mega-exhibitionist.
Aici sunt doar un Poser ... Rețineți că toate LED-urile se aprind unul după altul, cu excepția primei. El nu a aprinde în același moment, atunci când acesta din urmă se stinge, și cu o mică întârziere.
Așa că am găsit bug-uri în program, chiar și fără a verifica-l în acest microcontroler.
Încearcă-l singur pentru a găsi cauza acestei surprize neplăcute ...
În general, care urmează să fie continuată ... Ne vom ocupa de înregistrarea tuturor constatărilor imediat și de a folosi temporizatoare, tablouri și întrerupe ...
fragment Exmatriculat. Versiunea completă a acestui articol este disponibil doar pentru membrii cu drepturi depline în comunitate și de abonați.
Vă rugăm să consultați Termenii și condițiile de acces.