Schema rapidă AVR. Fuse-biți în microcontrolere AVR

Proiectarea designului și a liniilor directoare pentru utilizarea plăcilor de depanare a lui Mikroelektronika sa bazat pe design. Easyvr (și nu numai) fabricat de această companie atrage începători pentru a stăpâni tehnica microcontrolerului de calitate a producției și o varietate de componente instalate pe ele. De fapt, jumătate dintre ele devine inutil după verificarea în acțiunea a cinci șase programe de formare, se presupune că există multe LED-uri și butoane conectate la fiecare linie a fiecărui port. Dar au nevoie de un experimentator numai până când învață să gestioneze semnalele și indicatoarele de flash și acest lucru se întâmplă destul de repede. La bordul meu există doar patru LED-uri și un comutator, este destul de suficient pentru a începe ...

Dezvoltat de taxa pe care am dat numele Fasevr. Având dimensiuni 98x127 mm și instalare imprimată cu o singură față, este destul de potrivită pentru a face acasă. Microscircuitele sunt aplicate numai în incintele DIP instalate în panou, ceea ce îl face ușor să le înlocuiască în procesul de experiment. Microcontrolerul poate fi alocat atât de la un rezonator de cuarț, cât și din generatorul de ceas instalate de ceas cu un divizor de frecvență, este prevăzut un conector pentru conectarea programatorului standard STK-200 cu un alimentator selectiv pe acesta și cu capacitatea de a conecta JTAG Adaptor Dacă este necesar, puteți programa și un microcontroler conceput pentru a funcționa. În alt dispozitiv.

Pe tablă există cele mai necesare dispozitive periferice pentru ambalarea modelelor de depanare: indicator LED cu șapte elemente, LCD simbolic, RS-232, SPI, PS / 2 interfețe (pentru conectarea unei tastaturi standard de calculator sau "mouse" ), Microcircuitul EEPROM, dispozitivul de semnalizare a sunetului. Este posibil să se conecteze majoritatea acestor dispozitive la orice concluzii ale oricăror porturi de microcontroler în combinații arbitrare Toate porturile sunt disponibile și pentru a conecta dispozitivele din afara plăcii. Disponibil pe tabloul de dispozitive, inclusiv un generator de cuarț și indicatoare LED, pot fi, de asemenea, conectate la dispozitive în afara acesteia Toate aceste conexiuni nu necesită lipire și sunt efectuate prin instalarea jumperilor între conexiunile disponibile pe placă sau între ele și dispozitive externe .

Inițial, o consiliu de depanare cu un microcontroler ieftin ATMEGA8, care posedă aproape toată familia inerentă (AVR) cu oportunități, cu toate acestea, am decis să nu salvez și să aplice microcontrolerul aceleiași familii în cazul DIP cu numărul maxim de concluzii maxime (40) - ATMEGA16 sau ATMEGA32. Localizarea concluziilor pe care le are același lucru și oricine poate fi instalat pe tabla descrisă. Un număr mare de ieșiri vă permite să conectați mai multe dispozitive periferice diferite care pot fi necesare la depanarea programului. Deoarece microcontrolerele familiei AVR sunt compatibile programatic, dedicate unui program mai puternic este ușor, de regulă, pentru a se transfera la o analiză mai puțin puternică, desigur, diferențele lor.

Pe aceeași instanță a microcontrolerului instalat pe bordul de depanare, pot fi depanate multe programe diferite. Software-ul (bliț) Memoria microcontrolerelor moderne permite atât de multe cicluri de reprogramare că atunci când fac numeroase modificări ale programului în procesul de depanare, nu vă puteți gândi la posibila epuizare a resurselor chiar și atunci când apar primele semne ale acestui lucru ( Unele celule de memorie nu sunt programate de la prima dată) Microcontroler, și-a petrecut pe bordul de depanare, nu ar trebui să aruncați departe. Acesta poate fi programat de ultima dată, trimite "pentru un loc de muncă permanent" la una dintre structurile bine stabilite anterior.

Schema nodului principal al tabloului FRADAVR este prezentată în fig. 1. Toate conexiunile periferiei la porturile microcontrolerului DD2 se efectuează prin știfturi HR1-XP cu 16 pini cu dublu rând. Chiar și pinii este conectat la ieșirile porturilor microcontrolerului și ciudate - pentru a fi disponibile pe tablă dispozitiv periferic. La asamblarea unui aspect pentru depanarea codului PIN adiacent este conectat convenabil la jumperii convenționali și pe îndepărtarea, într-un alt bloc sau chiar pe o altă placă, sunt jumperi din segmentele firului izolat flexibil, echipate la ambele capete ale cricului conectorii (figura 2). Pe prizele sunt montate tuburi termocontraciale montate.


În procesul de depanare la aceiași știfturi, este convenabil să conectați instrumente de control și măsurare: osciloscop, contor de frecvență, generator de semnale de testare. Locația pinilor la rând în ordinea creșterii numărului categoriei portului facilitează căutarea dreptului și reduce semnificativ riscul de confuzie. O astfel de soluție, în opinia mea, este mult mai convenabilă decât utilizarea în majoritatea debugboardurilor industriale pentru conexiunile externe de decenii - conectori IDC-10 IDC-10 inactivi inactivi. Singurul avantaj este prezența unei chei care oferă andocarea corectă cu partea de legătură a conectorului. Și atunci când se conectează un singur fir sau sonda instrumentului de măsurare, este necesar să se ia în considerare contactele de fiecare dată, reamintind ordinea conformității acestora cu concluziile microcontrolerului.

Dacă jumperii S2-S4 sunt îndepărtați, sunt instalate un S5 și S6, un resonator de cuarț ZQ1 este conectat la un generator de ceas intern al unui microcontroler, frecvența care poate fi selectată prin orice necesară pentru sarcina rezolvată. Consiliul are, de asemenea, un generator de cuarț integral G1 pentru 16 MHz. Ciprurile DD1 declanșează frecvența la două și patru. După îndepărtarea jumperului S5, S6 și instalarea unuia dintre jumperii S2-S4, este posibilă trimiterea la introducerea ceasului microcontrolerului (ieșirea 13) cu o frecvență de 4, 8 sau 16 MHz. Acest lucru va asigura funcționarea microcontrolerului cu orice configurație în care generatorul RC cu ceas intern este oprit.

Un ceas de la un generator extern poate fi util și pentru a restabili performanța microcontrolerului, a cărei configurare este solicitată în mod eronat. Puteți citi despre asta.

Deși microcontrolerul conține propria memorie de date non-volatile, este adesea insuficientă pentru o sarcină solidă. Problema poate fi rezolvată prin conectarea la microcontrolerul microcircuitului de memorie externă a volumului dorit. Pe tabloul FRADAVR, acest lucru se face conform schemei prezentate în fig. 3 DS1 Chip 24C sau 24LC Series - Reprogramată memorie non-volatilă cu interfața I2C. Intrările AO-A2 sunt conectate astfel încât descărcarea mai rapidă a adresei sale LED pe magistrala de interfață este de 1, iar cele două urme sunt zero.

În fig. 4 prezintă schema disponibilă pe bordul de control și indicație Fasevr. Comutatorul Quadruple DIP SA1 este conectat la concluziile porturilor microcontrolerului. Rezistențele R4-R7 protejează aceste concluzii dacă sunt programate aleatoriu ca ieșiri de suprasarcină atunci când switch-uri închise. Rezistențele de asamblare DR1 susțin un nivel logic ridicat la intrările microcontrolerului când switch-urile SA1.1-SA1.4 sunt deschise. Al cincilea rezistor de asamblare "extra" poate fi, de asemenea, utilizat pentru a trimite un astfel de nivel oricărui lanț.
Patru LED-uri de semnal HL1-HL4 sunt stralucitoare la niveluri logice mari pe ieșirile la care sunt conectate și nu vor fi aprinse la scăzut. Rezistoare R8-R11 Limitați curentul.

Comutatoare de electrozi comuni de indicator LED cu șaptemente cu două dimensiuni HG1, colectate pe tranzistoarele VT1-VT4. Aceștia pot controla indicatorii cu anoduri comune (de exemplu, DA56-11) și cu catodele comune de elemente (de exemplu, DC56-11), trebuie doar să furnizați polaritatea necesară a impulsurilor de control formate de software furnizate R12-R21 rezistențe. Astfel de indicatori sunt ușor de găsit în registrele de numerar și blocurile de sisteme ale computerelor. După îndepărtarea jumperului S7, puteți dezactiva elementul H (punct zecimal) al descărcării inferioare a indicatorului HG1.

Conectorul XP5 este utilizat pentru a vă conecta la bordul FRADAVR al LCD simbolic comun cu controlerele încorporate. De fapt, acesta este un conector IDC-34M cu două rânduri, însă sunt utilizate numai 14 dintre cele 17 contacte ale unui rând. Numerele lor prezentate în diagramă nu corespund conectorului standard pentru acest lucru, dar coincid cu rezultatele celei mai frecvente LCD. Prezența unui astfel de conector vă permite să utilizați pentru a comunica cu indicatorul cu un cablu plat 34-pro-apos, proiectat pentru a conecta unitatea de discuri flexibile cu plăci de bază. În deschiderile de interfață, contactați site-urile LCD introduse și lipite de ele un bloc de vârf de 14 pini. Un conector este pus pe el cablu platIar al doilea este introdus în conectorul XP5. Contacte Mii sunt conectate la ieșirile porturilor microcontrolerului în conformitate cu schema de incluziune din dispozitivul de depanare. Placa cu indicatorul conectat este prezentată în fig. cinci.

Metoda descrisă de conectare a ecranului LCD este relativ complexă, dar este convenabilă deoarece indicatorii tipuri diferiteAvând aceeași cocoșă, puteți schimba rapid, fără a risca să confunde ordinea conexiunii concluziilor lor cu porturile microcontrolerului. R23 Rezistența rapidă servește ca regulator de contrast.

Dispozitivul de semnalizare fără sunet B1 este un emițător electromagnet de 80 ohm rezistență, găsit pe placa de bază a computerului. Dioda VD1 suprimă emisiile de tensiune de auto-inducție care apar asupra semnalizării alarmei atunci când este alimentată de tensiunea pulsului. Reduceți rezistența rezistenței R22 pentru a crește volumul sonor, nu trebuie să fie. Acest lucru va duce la o ieșire de microcontroler.

Consiliul mic. Nu uitați la sfârșitul procedurii de programare a programului semnal sonor Trimiteți o setare de comandă nivel scăzut La ieșirea microcontrolerului PD7. Dacă nivelul de aici este ridicat, curentul prin emițătorul B1 va continua să curgă și să poarte între semnale, ceea ce va duce la o creștere generală a consumului de energie de către un microcontroler.

Sistem interfețe externe Consiliul de depanare este prezentat în fig. 6. Pentru conectorul XS1, vă puteți conecta tastatura sau "mouse" și conectați conectorul XS2 cu portul COM al computerului. Microcircuitul DA1 inclus în conformitate cu schema tipică, coordonează nivelurile semnalelor RS-232 și a unui microcontroler. Jumperii S8-S10 sunt secțiuni subțiri ale conductorilor de tipărire, care pot fi tăiate dacă este necesar să se utilizeze nu numai informații, ci și semnalele de control ale interfeței RS-232 în dispozitivul de depanare.
Chokes L1-L5 suprimă interferențe de înaltă frecvență. Acestea sunt tuburi de ferită mici pe fire. Astfel de găsiți ușor pe plăci de calculator.

Pentru a încărca codurile programului de microcontroler instalate pe bordul FRADAVR, conectorul XP6 este conectat la programator. La momentul lucrului cu acesta, jumperul S1 (vezi figura 1) este recomandat să fie îndepărtat prin oprirea lanțului instalării inițiale a microcontrolerului de pe placă. Dacă programatorul are propria sursă de energie, este necesar să se elimine jumperul S11. Când este instalat, programatorul este alimentat de consiliul de depanare.

Am folosit un programator similar cu STK-200. Diagrama sa și desenul plăcii de circuit pot fi găsite în fig. 8 și 9 V. În acest programmer, doar un cip KR1564AP5 (74HC244an) este conectat la portul LPT al computerului. Instalați rezonatorul cuarț în programator nu este necesar, este pe consiliul de depanare. Când lucrați cu acest programator și programul Ponyprog pe un computer cu Core2Doo + procesor, chipset 1965 și operează sistemul Windows. XP SP3 nu au apărut probleme.

Circuitul colectării plăcii de depanare este prezentat în fig. 7. Contactați conectorul 3 xp7 de la sursă externă Puteți trimite o tensiune stabilizată +5 V. Jumpers S12, S13 trebuie eliminată. Dacă există o sursă de tensiune constantă de 9 ... 16 V, ieșirea sa pozitivă este conectată la contactul celor 2 conectori și jumperi instalați S12, S13. În acest caz, nu este necesară tensiunea stabilizată externă, se obține utilizând stabilizatorul integral DA2.

Când LED-ul HG1 nu este utilizat și orice dispozitive externe nu sunt conectate la placă, temperatura stabilizatorului DA2 este mică. Dacă, în ciuda prezenței radiatorului, stabilizatorul este puternic încălzit, este recomandat să comutați la putere dintr-o sursă de tensiune suficientă de 5 V. Pe prezența semnalelor de tensiune de alimentare LED-ul HL5.

Diodele Vd2 și VD3 protejează de polaritatea incorectă a sursei de alimentare. Throtes (tuburi de ferită) L6 și L7 suprimă interferențe de înaltă frecvență. CT12-X17 (+5 V) și HT18-HT22 (total) și HT18-HT22 (total) și HT18-HT22 (total) pot fi utilizate în diferite dispozitive externe. În plus, contactele HT18-HT22 sunt convenabil conectarea firului general al instrumentelor de măsurare.

Desenul plăcii de circuit este descris în fig. 8. Este unilateral de fibelker de folie cu o grosime de 1,5 mm. Rețineți că cele două linii deplasate cu jumper de la firul izolat sunt instalate din conductorii tipăriți. Restul sunt fabricate din fir fără izolare și sunt situate pe partea părții. Pentru chips-urile DA1, DD1, DD2, DS1 și indicatorul LED HG1, panoul este instalat pe placă, ceea ce vă permite să înlocuiți rapid aceste elemente, dacă este necesar. În absența tuburilor de ferită, în loc de Chokes L1-L7, puteți instala jumperi.

Alături de conectorul XS1, există un spațiu de aterizare pentru un alt conector indicat de XSV. Deși concluziile sale nu sunt conectate nicăieri, vă permite să instalați cu ușurință o priză duală MDN-6F cu o placă de bază de calculator. Conector XS2 - soclu DB-9F.

CHR1-HR4 PIN, HT1 -HT22 Pini și destinate instalării de jumpers S1 - S7, S11-S13 sunt realizate din conectori cu două rânduri ale seriei PLD sau din seria PLS cu un singur rând. Pentru a obține numărul dorit de contacte, acestea sunt separate de segmentele de lungime sau segmente corespunzătoare se adaugă contacte lipsă.

Vă rugăm să rețineți că există plăcuțe de contact gratuite lângă site-urile de contact pentru pinii PT4-HT11. Acest lucru vă permite să instalați aici un block cu două rânduri, să nu fie supus "slăbirea" cu recomandări frecvente. Despre conectorul KHR5 (IDC-34MS) a fost menționat anterior. Conectorul XP6 (pentru programator) este decada aceleiași serii (IDC-10MS). Conectorul de alimentare XP7 cu trei pini este scos din placa de bază, unde a fost utilizat pentru conectarea ventilatorului. Acest lucru a declanșat problema căutării răspunsului conectorului, care este proiectat să se conecteze la placa de alimentare cu energie electrică.

În partea inferioară (conform desenului), părțile plăcii există un câmp dreptunghiular umplut cu situsuri de contact - o rezervă pentru plasarea tot felul de elemente suplimentare care pot fi necesare în timpul depanării. La plata făcută de mine, a fost instalată aici, de exemplu, un rezistor variabil cu o denominație de 22 com. A fost umplut cu o tensiune de +5 V și reglabil reglabil scos din motor a fost utilizat pentru a verifica microcontrolerul ADC.

Interfața RS-232 este foarte convenabilă pentru utilizare la depanare, adăugând depanarea programului la modulul care trimite informațiile necesare prin intermediul microcontrolerului USART. Rularea pe computer, cu un com-port care a conectat conectorul XS2 al plăcii de depanare, programul terminalului, puteți monitoriza mesajele primite.


Am folosit programul terminal v1.9b, care poate fi găsit pe Internet cu orice motor de căutare. Fereastra acestui program cu exemple de mesaje primite de la dispozitivul depanat și transmise către acesta este prezentată în fig. 9. Pentru un afișaj normal al textului rusesc, trebuie să faceți clic pe butonul "Setare Font", selectați fontul în fereastra care se deschide - dimensiunea obișnuită este de 8, setul de simboluri este chirilic.

Fișierul PCB în Sprint Layout 5.0 Format și exemple de programe care demonstrează lucrarea disponibilă în tabloul nodurilor:

LITERATURĂ
1 Baranov V. Recuperarea configurației microcontrolerelor AVR. - Radio. 2009, № 11, p. 26-29.

S. Borisov, regiunea Knotovaya Tula.
Radio nr. 8-9 2010.

Este adesea necesar să se utilizeze controlul oricărui dispozitiv (dacă becul incandescent, motorul, un bronz sau un LED simplu) este prin intermediul PWM.

Probabil explicați ceea ce este și în ceea ce farmecul controlului Shim nu este necesar, există deja o mulțime de informații pe Internet și este puțin probabil să ajungem mai bine acest subiect. Prin urmare, vom trece imediat la afaceri, și anume, vom începe PWM pe mijloacele AtTininy2313 ale Bascom-AVR.

PWM B. microcontrolere AVR Funcționează pe cronometrele contoarelor, în Tiny2313 MK a unor astfel de cronometre de numai 2: Timerul pe 8 biți, având în vedere până la 255 și temporizator de 16 biți capabili să numărați la 65535. Fiecare temporizator controlează două canale PWM, astfel toate hardware-ul poate să fie implementat până la 4 canale shim.

Informații despre numărul de canale de PWM și descărcarea fiecărui canal pot fi tremurate pe paginile datelor la microcontroler.

Astfel, la bordul ATTINING2313 Există două canale pe 8 biți de lucru WIM de la Timer0 și două canale care rulează cronometrul 1 Timer au un bit programabil de la 8 la 10 biți. În Datashet, aceste picioare sunt semnate după cum urmează:

Pentru a configura cronometrul Timer1 pentru a genera PWM în Bascom, este suficient să scrieți următoarea linie:

Config timer1 \u003d PWM, PWM \u003d 8, comparați un PWM \u003d Ștergeți, comparați B PWM \u003d Clear în jos, Prescale \u003d 64

PWM \u003d 8 Selectează bitul PWM, pentru timer1 așa cum a fost scris mai sus poate fi, de asemenea, PWM \u003d 9 sau PWM \u003d 10.

Comparați A / B PWM \u003d Ștergeți / Clear aici Configurați starea activă pentru fiecare canal PWM (A și B).

Prescale \u003d 64 - șir de configurare a temporizatorului deja care este responsabil pentru pre-divizarea frecvenței de depășire a cronometrului în acest caz Dividerul va seta frecvența PWM. Ne putem schimba la discreția dvs. de discale \u003d 1 | 8 | 64 | 256 | 1024


Ciclul de funcționare al semnalului generat este determinat de valoarea pe care o scriem la registrele de comparație OCR1A și OCR1B (avem două canale, avem două pe un cronometru, aici un registru pe canalul A și B). Cu valorile care stau în aceste registre compară în mod constant valoarea registrului de numărare (este copiat la cronometru), când sunt coincis, trecerea piciorului MK în starea activă, iar registrul de numărare continuă să citească valoare maximă. După examinarea maximă, cronometrul începe să conteze direcție inversă, și ajungând până când valorile registrului de numărare și registrul de comparație vor coincide din nou, se va întoarce la poalele microcontrolerului (vezi figura de mai jos).



Pentru noi, registrele de comparație OCR1A și OCR1B sunt doar variabile, în care putem pune o valoare. De exemplu, deci:


OCR1A. = 100
OCR1B \u003d 150.


Într-un banchet pentru comoditate, este de asemenea furnizat un alt nume al acestor registre: PWM1A și PWM1B, astfel încât liniile anterioare vor fi echivalente după cum urmează:


PWM1A. = 100
Pwm1b \u003d 150.

Acum vom înțelege modul în care configurația de stare activă a lui Clear Up / Clear Down afectează ceea ce se întâmplă la ieșirea PWM în funcție de registrul de comparație.

Când ieșirea este configurată ca comparare a unui PWM \u003d Starea de ieșire activă este un nivel ridicat și cu o creștere a valorii registrului OCR (PWM), tensiunea proporțională pe acest picior va crește. Cu precizie, dimpotrivă, totul se va întâmpla dacă ieșirea este configurată ca comparați un PWM \u003d clar. Toate acestea sunt bine ilustrate în imaginea de mai jos.



Valorile pe care aceste registre de comparație le pot lua pe modul în care canalul Shim este perceput. La PWM \u003d 8 (8 biți PWM) este posibilă de la 0 la 255; la PWM \u003d 9 de la 0 la 511; Cu PWM \u003d 10 de la 0 la 1023. Aici cred că totul este clar.


Acum, un mic exemplu: Conectați LED-urile la microcontroler așa cum se arată în diagramă (nu este specificată puterea MK în diagramă)


Și scrie un program mic:


$ cristal \u003d 4000000

Config Timer1 \u003d PWM, PWM \u003d 9, comparați un PWM \u003d Clear în jos, comparați B PWM \u003d Clear Up, Prescale \u003d 8
Config Portb.3 \u003d ieșire
Config Portb.4 \u003d ieșire

INCR PWM1A. "Creșteți fără probleme regimul de comparație OCR1A
INCR PWM1B. "Creșteți fără probleme valoarea registrului de comparare OCR1B

Waithens 20. "Adăugați întârzieri

Buclă.

Sfârșit.

După ce a compilat și a aprins programul în controler, unul dintre LED-uri (D1) va introduce ușor luminozitatea, iar celălalt (D2) merge fără probleme


Dacă acum împingeți osciloscopul cu privire la randamentul PWM, putem vedea o astfel de imagine cu o unitate de schimbare a impulsurilor (semnal albastru pe OS1a, roșu pe OS1V):


Timer0 Configurarea temporizatorului Pentru a genera PWM, aproape la fel, cu excepția faptului că Timer0 este un cronometru de 8 biți și, prin urmare, PWM generate de acest cronometru va avea întotdeauna un pic de 8. Prin urmare, configurarea acestui timer, bitul PWM nu specifică:

Config timer0 \u003d PWM, comparați un PWM \u003d Ștergeți, comparați B PWM \u003d Clear în jos, Prescale \u003d 64



Acum un exemplu similar cu LED-urile, dar acum PWM va genera cu Timer0:


$ regfile \u003d "atragy2313dat"
$ cristal \u003d 4000000

Config Timer0 \u003d PWM, comparați un PWM \u003d Clear în jos, comparați B PWM \u003d Clear Up, Prescale \u003d 8
Config Portb.2 \u003d Ieșire
Config portd.5 \u003d ieșire

Incr pwm0a " creșteți fără probleme valoarea registrului OCR0A
Incr pwm0b " creșteți fără probleme valoarea registrului OCR0B

Waithens 20. "Adăugați întârzieri

Buclă.

Sfârșit.

Conectați LED-urile la ieșirea PWM Timer0, așa cum se arată în diagrama:

Totul este similar: primul LED (D1) va câștiga fără probleme luminozitate, iar al doilea (D2) va ieși fără probleme.


SHIM Generation Numărătoare de frecvență

Dacă doriți să aflați frecvența generației de unelte, atunci nu este dificil. Uită-te la formula de mai jos:

Frecvența PWM \u003d (Frecvența de cuarț / Offset) / (Dimensiunea înregistrării * 2)

De exemplu, vom calcula mai multe valori:

1. Frecvența cuarțului \u003d 4000000 Hz, Offset \u003d 64, PWM Bit 10 biți \u003d\u003e Numărul de registru Dimensiune \u003d 1024

Frecvența PWM \u003d (4000000/64) / (1024 * 2) \u003d 122 Hz

2. Quartz de frecvență \u003d 8000000 Hz, offset \u003d 8, PWM Bit 9 biți \u003d\u003e Numărul de registru Dimensiune \u003d 512

Frecvența PWM \u003d (8000000/8) / (512 * 2) \u003d 976,56 Hz

3. Frecvența cuarțului 16000000 Hz, offset \u003d 1, bit PWM 8 biți \u003d\u003e Dimensiunea registrului de numărare \u003d 256

Frecvența PWM \u003d (16000000/1) / (256 * 2) \u003d 31250 Hz

Placa de depanare universală Fabavr pentru începători în programarea ATMEL MK se bazează pe o analiză a aproximativ o duzină de desene similare. Taxa este un compromis rezonabil între funcționalitatea redundantă a majorității lor sau a caracteristicilor prea primitive ale altora. Având o anumită experiență în lucrul cu diferite sisteme de microprocesoare, de mai jos, voi comenta gândurile mele, așa cum a fost conceput unul sau altul nod de bord. Sunt de acord cu ei sau nu - afacerea dvs., dar pot fi parțial că vor fi utile pentru Master AVR în viitor ...

Designul designului sa bazat pe dezvoltarea și atacurile microelectronicii (http://www.mikroe.com/ru/). Dar taxele easi (și nu numai) conțin prea multe componente care sunt atrase de variesticul și calitatea noilor veniți în echipamentele microprocesoare, de fapt jumătate din ele devin inutile după o compilație de succes de 5-6 exemple de programe și de a câștiga experiență. Credeți că aveți nevoie de o grămadă de LED-uri și butoane conectate la fiecare port? Toate acestea sunt adevărate în timp ce nu învățați cum să controlați porturile portului și să aruncați indicatori, iar acest lucru se va întâmpla foarte repede ;-) Există 4 LED-uri în acest caz pe tablă, iar comutatorul este destul de suficient ...

Deci, posibilitățile consiliului de depanare:

  • setul principal periferie pentru suportul ATMEGA: Convertor RS-232, Biper, SPI EEPROM, indicatoare LCD și LED, Generator de ceas încorporat + cuarț, tastatură PS-2, tester ADC, testere logice;
  • abilitatea de a repeta la domiciliu, placa de circuite imprimate unilaterale este optimizată pentru tehnologia cu laser-fier, dimensiuni mici;
  • aplicarea tuturor componentelor numai în carcasele DIP, facilitează înlocuirea acestora în procesul de experimente sau programarea procesorului în sine pentru alte sisteme (de exemplu, pentru JTAG);
  • suficiența funcțională completă pentru a crea prototipuri simple de dispozitive și depanarea acestora;
  • conector SPI SPI SPI cu sursă de alimentare selectivă la programator, abilitatea conectare externă JTAG;
  • abilitatea de a permite consiliului în modul ICE JTAG cu o recomandare simplă;
  • posibilitatea schimbării independente a periferiei în orice combinație datorită tehnologiei liniare a localizării tuturor porturilor MK;
  • posibilitatea unei conexiuni ușoare a oricărei periferice externe și a utilizării la 100% din resursele ATMEGA în DIP-40, toate porturile sunt mari, în plus - toate perifericele interne ale plăcii vă permit să o utilizați pentru dispozitivele externe (de exemplu, un ceas generator sau indicatori LED;

Toate acestea nu necesită rafinament de taxe sau de lipire. Asa de La etapa inițială a dezvoltării posibilităților MK ale Fapavr este destul de suficient. Unul care dorește să meargă mai departe, după crearea propriului său software, poate decide independent că trebuie să facă în mod specific și să facă prototipul designului cu propriul set de periferice. Încă o dată, chitanța este creată pentru a începe studiul MK AVR, nimeni nu a fost persecutat. Apariția documentației în sine este asociată cu interesul pe care mulți începători îl dezvoltă acest tip Controlere sau încă gândiți unde să începeți. Și trebuie să începeți în mod natural cu taxa de testare ;-)

MK AVR-auto-suficiente Controlere, cu toate acestea, procesorul nu este întregul sistem. "Cuburi" care servesc sau controlate de ele, singure pot fi privite ca blocuri separate de structuri viitoare. Prin combinarea acestora pe placa principală, puteți toți împreună prin combinarea rezultatelor necesare. La început, taxa a fost concepută pe baza ATMEGA8, pentru că El este ieftin și are aproape toate capabilitățile AVR. Cu toate acestea, plimbăm sfatul, am decis să nu salvați și să punem microcontroler-Atmega16 microcontroler ca fiind accesibil în carcasa DIP sau 32. CODOOLEVKA atât MK, este identic. Costul unei astfel de soluții de o sută de ori se plătește de numărul de porturi I / O la care pot fi conectate cel puțin pentru timpul de depanare. Compatibilitatea din partea de jos în sus pentru toate generațiile AVR vă permite să scrieți și să depanați programe utilizând un cip mai puternic, apoi efectuați o compilație pentru cristalul țintă. Resursa suficientă a blițului permite să nu "umple" limitările în posibilitățile de reprogramare a mega, mai ales că este posibil să se facă suficient, să trimită pentru a trăi MK la designul de lucru, cusându-l pentru ultima oară (JTAG ICE este primul challenger)

Pentru fabricarea consiliului, va dura un pic de calculator adecvat "gunoi", care este suficient în încăperile de depozitare ale oricărei electronice. Cele mai multe componente sunt aplicate de la vechi sau refuzate plăci de bază IBM PC sau tehnologia aproape de calculator, recent fier de acest tip este din ce în ce mai mult dezasamblă și este aruncată fără utilizare. pentru că Cu lucruri mici mici, practic nimic de făcut nimic (sortare problema și timpul ...), am scos astfel de dispozitive în întregime sau un uscător de păr sau o sobă electrică.

Principala descriere a Fabavr de mai jos este blocarea:

Alimente. Stabilizatorul încorporat la 78 (m) 05 vă permite să deschideți o taxă din adaptoarele pe scară largă 9-12V luate de la alte echipamente care sunt de obicei inactive. În includerea obișnuită a acestui fapt, este suficientă (Meg-16/32 + LCD + RS232 + TXO), când se utilizează un LED tipic de 7 segmente sau o periferie externă extrem de voință (programator complex), stabilizatorul este deja foarte fierbinte. Conectarea unei tensiuni stabilizate externe + 5V este posibilă prin PIN-3 X1 (se aplică conectorul de la răcitoarele Matei)). Anterior, trebuie să dezactivați jumperii JP1-JP2 din grupul Vcc_sel. X1 de acest tip este aleasă din mai multe motive, principalul poate face aproape întotdeauna un adaptor pentru alimentarea plăcii de la adaptoare diferite care sunt disponibile sau laborator BP. Passover Ferrite Chokes (Balun) FB1, FILTER FILTER INTERFEING PULSE și vârful RF. Pe diodele VD1, VD2 efectuate de la "supraveghere". În mai multe locuri, plăcile sunt instalate VCC_XT și GND_EXT Jumpers. Prin ele, este suficient doar atunci când conectați periferie pentru a îndepărta tensiunea de alimentare și "Pământul" general.

Memoria externă este implementată pe standardul I2C EEPROM 24CXXX. Deși AVR în sine conține propria memorie non-volatilă, dar în multe modelează un cip extern poate fi preferabil datorită volumului fie al resursei. Circuitul de incluziune este standard, adresa cristalului 0x01.

Indicatoarele de stare a portului LED-uri LED HL2-HL5 sunt realizate pe 4 LED-uri discrete. Pentru începerea experimentelor cu AVR, acest lucru este suficient, mai mult din numărul lor, consider că nu este justificat și mai degrabă decorat. LED-urile sunt incluse atunci când scrieți în jurnalul portului. "1", așa mai departe Starea portului este afișată fără inversiune de semnal, care este convenabilă și vizuală.

Conectarea la placa indicatoare LCD este realizată prin conector de 2, este posibilă utilizarea unui mod de 8 biți și pe 4 biți. Primul dintre acestea este 34 de pini x2 (de la 3,5 ") vă permite să utilizați buclele standard reîncărcate din unitățile de lungime dorită, respectiv, pe indicatorul în sine, este mai bine să ascundeți o linie de jumper PIN (PIN- bloc), vă permite să modificați rapid indicatorii diferiți fără frică convertiți concluzii. Conectarea la porturile Abra este efectuată prin blocul PIN X10, care, în plus față de modul de conectare LCD, puteți selecta în mod flexibil concluziile Mk. Acest design vă permite să vă adaptați cu ușurință la porturile libere ale controlerului, chiar să le "formați" într-unul din porturile de grupuri diferite, care sunt necesare atunci când este configurat într-un prototip în mod deosebit sau o placă de circuite imprimată nou construită, se dovedește mai convenabil în cablare.


În multe cazuri, utilizarea unui indicator LCD nu poate fi justificată prin preț, dimensiuni sau fiabilitate. De exemplu, în cea mai simplă Încărcător Sau temporizatorul poate funcționa cu greu și indicatorul LED cu 2 biți. În prezența indicatorilor dubli de 7 segmente de tipul comun cu o înălțime de 14 mm, atât cu un anod comun, cât și un catod comun (scris în registrele de numerar și blocuri de sistem 486 computere). A trebuit să aplicați tastele cu 2 timpi pe VT1-VT4 pentru a conecta orice indicatori de tip și, în consecință, indicatorul însuși panou astfel încât, în viitor, nu vă rupe capul cu circuite.

Toate perifericele de conectare la porturile ATMEGA, după cum se menționează mai devreme, sunt realizate prin linia X3-X6 PIN. În principal pe taxele datoriilor, am observat utilizarea conectorilor IDC-10 (2x5). Singurul avantaj în aceasta este prezența unei "cheie", pentru a nu lua plumele în locuri când este conectat. Prin urmare, avantajele unei astfel de metode se vor încheia și vor începe deficiențe - chiar și inconveniente pentru a lucra cu porturi de 8 cifre, deoarece Concluziile nu sunt situate într-un rând, este imposibil, cu excepția buclei de conectare a periferiei încorporate. Utilizarea blocurilor PIN oferă direct rezultatul opus, cu excepția faptului că, prin jumper-jumper-jumper, este ușor de controlat orice semnale de mai sus, de exemplu sonda logică Sau osciloscopul, nu aveți nevoie să vă loviți și să numărați frica portului portului din întâmplare "pentru a bloca" concluziile. Adăugați aici cel mai scăzut și reutilizabilitatea maximă a acestei conexiuni, deoarece este mult mai ușor să înlocuiți o buclă sau un jumper decât conectorul responsabil cu taxa. Mai mult, acum, în vânzare chiar și în seutul nostru, puteți găsi astfel de părți de răspuns ale conectorilor (sau puteți utiliza de la unitățile vechi de sistem), ceea ce face ușor și rapid combinați conectorii (Fig.):


Pentru sunet, a fost aplicat un bipper comun cu o rezistență de aproximativ 80 ohmi de la Mattlat. Semnalul nu este foarte puternic, dar suficient pentru a controla (R23 și astfel selectat la limită). O cheie separată pe care nu am pus pe nimeni care a vrut să-l reconstruiască în locurile de a fi desemnate ca temperatură. Un sfat mic - care lucrează cu sunet, nu uitați la sfârșitul procedurii de a genera un semnal pentru a pune o comandă care a scăzut în jurnal. "0" PD7 ieșire, altfel după oprirea generației, poate rămâne "1" și curentul Vorbitorul va continua să meargă că nu există nici un bun, deși pentru considerații privind consumul total al AVR-A.

Pe comutatorul DIP de 4 biți SW4, semnalele logice pentru porturi sunt asamblate. Aici, situația cu numărul este similară cu LED-urile LED. pentru că Intrările AVROV au rezistență internă de plug-up, respectiv "Suspendari" pentru a furniza nevoi de mese. Rezistențele R18-R21 conțin protecție împotriva erorilor de incluziune accidentală a porturilor MK pe ieșire. În auditul consiliului 1.03 și mai sus, comutatorul DIP poate fi înlocuit cu jumperi. Recent am nevoie pentru a face rapid din tabloul de gheață JTAG. În legătură cu care Rev 1.4, a fost introdusă matricea rezistenței RN1, care permite hardware-ului să formeze o conferință "1" pe mai multe intrări ale controlerului. Dacă nu aveți nevoie de ea - nu puteți instala RN1.

Tactul de pe MK este selectat de grupul PIN CL_sel și poate fi efectuat dintr-un resonator de cuarț extern Z1 (numai JP37, JP38 este instalat), un generator de cuarț integral G1 (16 MHz) sau dintr-un divizor la: 2 și: 4. Asa de În plus față de cuarț, puteți să cluați procesorul cu frecvențe de 16, 8, 4 MHz. Puteți estima cu ușurință viteza programului de depanare a programului sau puteți obține o frecvență standard de ceas cu o specială sigilată. cuarţ. În principiu, în absența TXO pe această frecvență Puteți aplica orice alt generator la 16 MHz. Generatorul poate fi, de asemenea, util pentru dvs. când "ridicarea" MK datorită microcontrolerului FIOM incorect, în acest caz, frecvența ceasului nu redă rolul.

Convertorul de nivel de interfață serial RS-232 pentru UART este un atribut constant al majorității sistemelor pe AVR. Aici nu trebuie să "reinventați bicicleta", standardul MAX232 este destul de suficient. Numai semnalele RX-TX sunt implicate, ceea ce este suficient pentru majoritatea aplicațiilor. Puteți să conectați practic CTS-RTS pentru controlul fluxului hardware fără a returna placa, firele flexibile pe JP31-JP32 de pe piese. În schemă, MAXIM MAX232, TI MAX232 și SPILEX SP3232 - Puneți comutatoarele sunt verificate în MAXIM MAX232, TI MAX232.

Tastatura de matrice exterioară poate fi făcută pe o placă separată și conectați-vă la Plumele MC (am decis să se aplice de la manipulatori de șoarece, ca o regulă 2 micrikka acolo este întotdeauna bun). La bordul de depanare, sunt instalate un conector dublu PS-2. Tastatura standard IBM PC este conectată fără îmbunătățiri hardware, în mod natural cu sprijinul software adecvat de la AVR. Cel de-al doilea conector este gratuit, utilizați la discreția dvs. De regulă, tastatura este un lucru foarte specific, în funcție de datoria protetipului, așa că după unele plăți am decis să nu pun nici măcar cele mai simple butoane de la bord. Îți voi pune plăcile după cablare și testele lor.

Indicatorul HL7 este setat pentru experimente cu controlerul PWM de hardware încorporat.

Conectorul pentru programarea secvențială Intrahehemny X7 se face în conformitate cu STK-200. Puterea programatorului poate alege selectiv prin JP43. În cazul meu, cel mai simplu programator de la Ponyprog pe tamponul 74als (LS, F) 244 este utilizat cu conectarea prin LPT. Totul a fost verificat pe CORE2DOO + I965CHIPSET Gestionat de XP SP2, nu au apărut probleme. Programatorul este alimentat prin conectorul de debug și este convenabil în funcțiune, deoarece Tampoane în modul normal "Du-te" la z-status și absolut nu interfera cu FATEAVR. Conectarea adaptorului JTAG pentru programarea intraemică și depanarea în timp real este, de asemenea, posibilă fără rafinarea plăcii prin portul PIN liniar corespunzător al portului C.

Rămâne să menționez câteva elemente mai necesare:

Lanțul resetării externe, care AVR are un mod destul de simplu. Acesta poate fi oprit prin JP42, deși exploatarea cu programatorul nu interferează cu programatorul. Intrarea de resetare poate fi reprogramată prin fuziune ca un port standard I / O și utilizat pentru periferie, dar trebuie amintit că în acest caz nu mai este posibil să re-programați cristalul prin X7.

Rezistorul variabil R27 inclus în potențiometru este un evaluator de tensiune pentru experimentele cu ADC încorporat, ieșirea de la acesta poate fi servit pe oricare dintre intrările analogice ale MK. Notă mică - Vă rugăm să rețineți dacă nu instalați acest rezistor din nici un motiv, asigurați-vă la Jumper (în fig. Indicând) pentru trecerea normală a anvelopei GND totale!

Un pic despre Samoa pCB. și design. După cum sa menționat deja, consiliul este unilateral. Am fost testat 2 exemplare realizate de tehnologia laser-fier (unul la imprimarea pe hârtia foto din joncțiuni, cealaltă pe bază de auto-taste), așa mai departe Dacă se dorește, totul ar trebui să fie obținut ;-) Dacă vă gândiți la fotografii, minunat! Regulile de jumper sunt divorțate ținând cont de "zonele interzise" și utilizarea buclelor standard cu 16 pini (bar de la portul de joc) chiar și atunci când se conectează unul extrem de apropiat. În absența sufletelor de ferită (aplicați de la vechiul 286 de monitoare de arzător), puteți pune în siguranță jumperi. Vă recomandăm imediat sub toate jetoanele pentru a pune panourile pentru a nu fuma taxa. Nu uitați 2 jumperi cu taste la indicatorul HL6.

Dar se pare că interfața pentru verificarea logicii TTL / CMOS, pe cât posibil, voi încerca să spun ce sa dovedit.

În general, cronometrul are un registru de comparație OCR **Și când valoarea din cronometru coincide cu valoarea registrului de comparație OCR **2 lucruri pot apărea:

  • Întrerupe
  • Schimbarea stării de reducere a comparației externe Oc **

Acum putem personaliza Shim.când contorul ocupă până la valoarea OCR **tensiune pe picior ales Oc **schimbați de la 5 la 0. Când temporizatorul decolează până la capăt și începe să numere mai întâi schimbați tensiunea de la 0 la 5, vom avea impulsuri dreptunghiulare la ieșire.

Există 3 moduri de operareShim.

Str (resetați la coincidență) - acest lucru poate fi numit Chim.semnalul de modelare a frecvenței pulsatei când temporizatorul durează valoarea OCR **este resetat și modifică valoarea Oc **pe opusul. Astfel, wellness Shim.Întotdeauna la fel.

Acest lucru este utilizat atunci când trebuie să numărați perioadele exacte sau să generați întreruperi la un moment dat.

Fast PWM. (Fast PWM) - contorul crede de la 0 la 255, după care este resetat la 0.

Când valoarea cronometrului coincide cu OCR **puterea corespunzătoare este resetată la 0, când zeroul este setat 1.

Cel mai adesea folosit ca obișnuit Shim.

Faza corectă PWM. (PWM cu fază exactă) - În acest mod, contorul consideră de la 0 la 255 și apoi îl consideră în direcția opusă zero. La prima coincidență cu OCR **ieșirea este resetată la 0, cu 2 meciuri (când contorul se întoarce), puneți 1.

Utilizați pentru a nu fi împușcat faza atunci când se schimbă datoria.



Dacă vrem să lucrăm cu concluzia OC1A.am pus biți B. COM1A1 COM1A0.
În general, "/" înseamnă sau. Tcnt1.= OCR1A.pentru Shim.la rezultatul OC1A.

TIMER / MODUL DE FUNCȚIONARE - modul Timer / Counter.

Top.- valoarea TCNT1 la care se schimbă valoarea de ieșire OC **.

TOV1 Steagul SET ON - la ce valori este instalat un pic de registru de gifr

Alegeți din ultimul tabel în care avem nevoie, nu priviți Top.. Din cele 2 mese, alegeți oricare dintre cele două opțiuni. Rămâne doar pentru a plasa biții necesari în registre.

#Define f_cpu 8000000L #include #Include. INT Main () (DDRD \u003d 0xFF, OCR1A \u003d 0xc0; // Comparați cu această valoare OCR1B \u003d 0x40; // Configurarea temporizatorului PWM și TCCR1A | \u003d (1<CS10.puneți 1, el crede cu frecvența MK despre modul de configurare a frecvenței temporizatorului


Să ne întoarcem la studiul cronometrelor încorporate.
Învățarea întrerupe și mai ales cronometreÎn microcontrolere, prezintă o anumită dificultate datorită multifuncționalității lor. Astăzi vom încerca să ne dăm seama de termenii și numele.

ÎN microcontrolere AVR Poate fi de la unu la 4 cronometre, opt cifre sau hexazecimente.
Timpurile simplificate sunt indicate de litera t și numărul de la zero la trei. În mod tipic, chiar T0 și T2 sunt de optic, și T1 ciudat, cu șaisprezece cifre. Sub programare, versiunea simplificată este utilizată numai în comentarii, iar în programe numele complet al cronometrului este prescris - Registrul TCNT. Mai jos sunt denumirile cronometrelor:

Cronometre

T0, T2. - (TCNT0, TCNT2) contoare de opt biți (chiar)
Tcntn.- Registrul de contabilitate 8 al contorului de descărcare
Unde; N-numărul de contor

T1, t3. - (TCNT1N și TCNT1L, TCNT3H și TCNT3L) Șaisprezece contoare de cifre (impare)
Tcntny. - Registrul conturilor 16 din contorul de descărcare de gestiune
Unde; N-numărul de contor
Y-senior (h) sau de evacuare junior (l)

T1 constă din două registre de opt biți Tcnt1n și tcnt1l., dar
T3 din două registre Tcnt3h și tcnt3l.. Scrisoare H. denotă descărcarea vârstnicului și L. Jr.

La fel de cronometresunt registrele, atunci le puteți contacta în orice moment, citiți, scrieți, resetați și modificați valoarea.
A declarat reguli specifice pentru înregistrarea și citirea cronometrilor TCNT1N și TCNT1L.

1. Programele de înregistrare și citirea datelor TIMER trebuie să fie atomice, adică Înainte de a citi sau a scrie, interzicem întreruperea și la sfârșitul procesului din nou permit.
2. La înregistrare, octetul mai vechi H și apoi mai tânăr L. este înregistrat pentru prima dată.
3. Când citiți, byte-ul mai tânăr apoi Senior H.
De exemplu:
Înregistrați datele în registrul de numărare.
CLI; Interzicerea întreruperii TCNT1H, R16; Înregistrarea octetului mai vechi TCNT1L, R17; Înregistrarea byte-ului mai tânără SEI; Permiteți întreruperile

Datele de citire din registrul de numărare
CLI; Interzicerea întreruperilor în TCNT1L, R16; Citind octetul mai tânăr în TCNT1H, R17; Citind senior SEI Byte; Permiteți întreruperile

De ce astfel de reguli? Și totul, astfel încât datele să nu fie distorsionate în timpul în care vor merge la procesul de citire din fiecare registru.
Dacă utilizați citirea directă pe 8 biți registre TCNT1H și TCNT1L, atunci nu puteți fi sigur că aceste registre au citit simultan. Se poate produce următoarea situație: contorul conținea valoarea de 01 de dolari, ați considerat TCNT1H (conținând valoarea 01 la o anumită variabilă). În acest timp, a venit impulsul de numărare, iar conținutul TCNT1L a devenit 00 $, iar valoarea de 02 dolari a fost înregistrată în TCNT1H.

Acum citiți valoarea TCNT1L la o altă variabilă, obțineți valoarea de 00 $ în această variabilă (la urma urmei, temporizatorul / contorul a făcut deja un cont). Valoarea pe 16 biți a acestor variabile a fost de $ 0100, dar la momentul citește octetul mai vechi Conținutul contorului a fost de $ 01FF, și a trebuit să citiți octetul mai tânăr ca FF. Pentru a preveni o astfel de situație, se utilizează registrul temporar conținut în unitatea temporizator / contra. Acest registru este transparent, adică Acționează automat. La citirea valorii înregistrării TCNT1L la variabilă, conținutul TCNT1H cade în acest registru. Apoi, atunci când citiți octetul mai în vârstă în variabilă, valoarea registrului de timp este citită. Registrul temporar este absolut transparent pentru utilizator, dar pentru funcționarea sa corectă, este necesar să urmați succesiunea acțiunilor specificate mai sus. Apelul la registre printr-un registru suplimentar (tampon) se numește tampon dublu

Cronometrele sunt asociate cu numărarea impulsurilorcare pot fi externe și introduceți intrarea specială a cipului sau pentru a fi formată din generator propriu. La rândul său, frecvența generatorului propriu poate fi sincronizată de un rezonator de cuarț extern și poate fi determinat de schema RC internă. După aceasta, frecvența exterioară sau frecvența generatorului propriu este deținută de registrul gestionat de registru CLKPR.. Driverul generatorului după explorator (Prescasher) CLKPR este adesea numit semnalul de ceas (frecvența ceasului) procesorului (CPU).
Frecvența furnizată timerului de intrare indicat ca clktn. Această frecvență corespunde semnalului ceasului procesorului.
Un impuls de numărare crește valoarea cronometrului pe unitate, astfel încât registrele TCNT sunt numărate și chemat cronometru / contoare (TC).
Pentru funcționarea corectă a cronometrului / contorului pe un semnal de ceas extern, timpul minim dintre cele două comutare a unui semnal de ceas extern trebuie să fie cel puțin o perioadă a semnalului ceasului CPU. Semnalul ceasului extern sincronizat de către partea din față a semnalului de ceas CPU intern. (Trebuie să fie amintit la construirea contoarelor de frecvență).
Timer / Counter Register Tcnt. este un registru TCCR..
Masca întrerupere Pentru cronometru / contor Tcnt. Servește registru TIMSK. (Registrul de control al întreruperii întreruperii temporizatorului).
Registrul Steagurilor Timsk Mask de întrerupere - este registrul TIFR. Amintiți-vă că aceste 3 registre (TCCR, TIMSK, TIFR) atunci când funcționează / numărau TCNT este folosit aproape întotdeauna.

Întreruperile pot fi solicitate pentru a depăși registrul TCNT, comparând valorile registrului TCNT cu valoarea registrelor de comparare OCR speciale, captură - prin valorile registrelor speciale de captură ICR și sunt determinate de modul Timer / Counter . În plus, solicitarea de întrerupere poate apărea la răspuns watchdog Timer WDT.

Timpurile / contoarele pot funcționa în moduri diferite și, în consecință, efectuează diferite funcții.
Modul de funcționare, adică, comportamentul temporizatorului / contorului și ieșirii semnalului de coincidență este definit ca modul de funcționare a semnalelor controlate de registre WGM02; WGM01; WGM00. (Înregistrarea abreviată WGM02: 0.) și modul de ieșire al semnalului de coincidență controlat de registre Soms0x1; Som0x0. (Înregistrarea abreviată Som0x1: 0.). Starea biților, pe care depinde modul de ieșire a semnalului de coincidență, nu afectează secvența de numărare, care este determinată numai de starea biților de configurare a generatorului de semnal.

Biți Som0x1: 0. Determinați dacă semnalul de ieșire PWM trebuie inversat sau nu (inversat sau nu inversat PWM).
(PWM) modularea impulsului sau modularea lățimii pulsului (PWM).
Pentru modurile non-PWM, conținutul Bits Som de Soms0x1: 0 determină dacă semnalul de ieșire trebuie instalat într-o unitate, resetat la zero sau comutat la starea opusă în momentul coincidenței.

--
Multumesc pentru atentie!
Igor Kotov, redactor-șef al revistei "Datgorod"

Puteți face un pas egal cu unul, apoi schimbările vor arăta astfel:
Plus: întârziere rcall; Tranziția la subrutina de întârziere Inc2; Mergeți la un pas și verificați dacă rezultatul este zero Breq plus_1; Dacă este, ne întoarcem la eticheta corectă Plus_1 RJMP; Premiul la Butoanele Plus_1: Dec TEMP2 Butoane Survey; Scădem unitatea RJMP corect; Reveniți la butoanele de întârziere minus: rcall; Tranziția la subprogramul de întârziere Dec TEMP2; Mergeți la un pas și verificați dacă rezultatul este zero Breq minus_1; Dacă este, ne întoarcem la eticheta corectă minus_1 RJMP; Reveniți la butoanele minus_1: inc2; Adăugați o unitate corectă RJMP; Reveniți la butonul de sondaj

Datorită iritației Avstudio 5 și a microcontrolerului AtTininy2313, seria articolelor va fi rescrisă sub atmlstudio6 și microcontrolere ATMEGA8 și ATMEGA16. Îmi cer scuze în avans pentru inconveniente.