This shows you the differences between two versions of the page.
|
apm:laboratoare:009 [2025/12/09 18:59] cristian.lazar1512 [Cheatsheet] |
apm:laboratoare:009 [2025/12/09 19:54] (current) melisa.staicu [Cheatsheet] |
||
|---|---|---|---|
| Line 13: | Line 13: | ||
| * dacă un bit n este 1 atunci pinul respectiv va fi legat la HIGH (VCC) | * dacă un bit n este 1 atunci pinul respectiv va fi legat la HIGH (VCC) | ||
| - Dacă DDRx e setat ca intrare ('citire') | - Dacă DDRx e setat ca intrare ('citire') | ||
| - | * dacă un bit n este 0 atunci resistența de pull-up internă a pinului respectiv va fi dezactivată | + | * dacă un bit n este 0 atunci rezistența de pull-up internă a pinului respectiv va fi dezactivată |
| - | * dacă un bit n este 1 atunci resistența de pull-up internă a pinului respectiv va fi activată | + | * dacă un bit n este 1 atunci rezistența de pull-up internă a pinului respectiv va fi activată |
| - PINx: Data Input Register (Indică starea reală a unui pin) | - PINx: Data Input Register (Indică starea reală a unui pin) | ||
| - | * daca un bit este 0 atunci pinul respectiv are valoarea LOW | + | * dacă un bit este 0 atunci pinul respectiv are valoarea LOW |
| - | * daca un bit este 1 atunci pinul are valoare HIGH | + | * dacă un bit este 1 atunci pinul are valoare HIGH |
| * **Unde x poate fi A sau B** | * **Unde x poate fi A sau B** | ||
| - | În memoria microcontrollerului de la 0x00 la 0x3F gasim I/O Space. Aici se află toate registrele de lucru cu periferice și, desigur, DDRx, PORTx și PINx. De exemplu registrul PORTA are adresa 0x02. | + | În memoria microcontrollerului de la 0x00 la 0x3F găsim I/O Space. Aici se află toate registrele de lucru cu periferice și, desigur, DDRx, PORTx și PINx. De exemplu, registrul PORTA are adresa 0x02. |
| - | Pentru a scrie citi date din I/O Space putem folosi instrucțiunile LDS/STS, însă recomandat este să folosim instrucțiunile speciale pentru lucru de memoria I/O Space ce se execută mai rapid: | + | Pentru a scrie/citi date din I/O Space putem folosi instrucțiunile LDS/STS, însă recomandat este să folosim instrucțiunile speciale pentru lucrul cu memoria I/O Space ce se execută mai rapid: |
| * ''OUT A, Rr'': Scrie (Store) în I/O Space la adresa A valoarea din registrul Rr | * ''OUT A, Rr'': Scrie (Store) în I/O Space la adresa A valoarea din registrul Rr | ||
| * ''IN Rd, A'' : Citește (Load) din I/O Space de la adresa A și pune în registrul Rd | * ''IN Rd, A'' : Citește (Load) din I/O Space de la adresa A și pune în registrul Rd | ||
| Line 36: | Line 36: | ||
| * Trei valori de referință: BOTTOM, MAX și TOP | * Trei valori de referință: BOTTOM, MAX și TOP | ||
| * PWM este o tehnică de generare a unui semnal analogic pornind de la unul digital | * PWM este o tehnică de generare a unui semnal analogic pornind de la unul digital | ||
| - | * Semnalul analogic obtinut depinde de factorul de umplere al semnalului digital | + | * Semnalul analogic obținut depinde de factorul de umplere al semnalului digital |
| * Timerele de pe ATtiny20 conțin 3 registre importante: TCNT0, OCR0A/OCR0B, TCCR0A, TCCR0B | * Timerele de pe ATtiny20 conțin 3 registre importante: TCNT0, OCR0A/OCR0B, TCCR0A, TCCR0B | ||
| * TCNT0 este registrul cu contor | * TCNT0 este registrul cu contor | ||
| - | * OCR0A/OCR0B definesc valori de comparație iar OCR0A poate fi folosit la TOP | + | * OCR0A/OCR0B definesc valori de comparație, iar OCR0A poate fi folosit la TOP |
| * TCCR0A și TCCR0B sunt registre de control pentru modul de funcționare | * TCCR0A și TCCR0B sunt registre de control pentru modul de funcționare | ||
| * Moduri de funcționare: | * Moduri de funcționare: | ||
| Line 50: | Line 50: | ||
| * Starea pinilor OC0A/OC0B poate fi schimbată la comparație și BOTTOM | * Starea pinilor OC0A/OC0B poate fi schimbată la comparație și BOTTOM | ||
| - | === INTRERUPERI === | + | === ÎNTRERUPERI === |
| - | * Întreruperile sunt eveniment asincrone execuției programului | + | * Întreruperile sunt evenimente asincrone execuției programului |
| * Dacă apare o întrerupere, procesorul oprește execuția normală a programului după instrucțiunea curentă și execută o rutină de tratare | * Dacă apare o întrerupere, procesorul oprește execuția normală a programului după instrucțiunea curentă și execută o rutină de tratare | ||
| * Tabela vectorilor de întreruperi conține câte o intrare pentru fiecare întrerupere care duce la rutina ei de tratare | * Tabela vectorilor de întreruperi conține câte o intrare pentru fiecare întrerupere care duce la rutina ei de tratare | ||