This shows you the differences between two versions of the page.
|
apm:laboratoare:009 [2024/12/09 08:31] irina_cristina.nita [Resurse] |
apm:laboratoare:009 [2025/12/09 19:54] (current) melisa.staicu [Cheatsheet] |
||
|---|---|---|---|
| Line 12: | Line 12: | ||
| * dacă un bit n este 0 atunci pinul respectiv va fi legat la LOW (GND) | * dacă un bit n este 0 atunci pinul respectiv va fi legat la LOW (GND) | ||
| * 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 rezistența de pull-up internă a pinului respectiv va fi dezactivată | ||
| + | * 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 34: | 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 46: | Line 48: | ||
| * Fast PWM | * Fast PWM | ||
| * Timer-ul numără crescător de la 0 la 255 (sau OCR0A), apoi se resetează la 0 | * Timer-ul numără crescător de la 0 la 255 (sau OCR0A), apoi se resetează la 0 | ||
| - | * Starea pinilor OC0A/OC0B poate fi schimbată la comparaței ș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 | ||
| Line 177: | Line 179: | ||
| [0] {{:apm:laboratoare:09:skel:lab9_skel_v2.zip|Scheletul laboratorului}} | [0] {{:apm:laboratoare:09:skel:lab9_skel_v2.zip|Scheletul laboratorului}} | ||
| [3] [[https://www.xilinx.com/support/documentation/university/XUP%20Boards/XUPNexys3/documentation/Nexys3_rm.pdf|Datasheet Digilent Nexys 3 Spartan6]] | [3] [[https://www.xilinx.com/support/documentation/university/XUP%20Boards/XUPNexys3/documentation/Nexys3_rm.pdf|Datasheet Digilent Nexys 3 Spartan6]] | ||
| + | [4] [[https://gitlab.cs.pub.ro/calculatoare-numerice/cn2-public/-/tree/main/lab09/solutii_avr | Solutii]] | ||
| </hidden> | </hidden> | ||
| [1] [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-8235-8-bit-AVR-Microcontroller-ATtiny20_Datasheet.pdf | Datasheet ATTiny20]] | [1] [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-8235-8-bit-AVR-Microcontroller-ATtiny20_Datasheet.pdf | Datasheet ATTiny20]] | ||
| Line 184: | Line 187: | ||
| [3] [[https://digilent.com/reference/_media/reference/programmable-logic/nexys-a7/nexys-a7_rm.pdf|Nexys A7 Reference Manual]] | [3] [[https://digilent.com/reference/_media/reference/programmable-logic/nexys-a7/nexys-a7_rm.pdf|Nexys A7 Reference Manual]] | ||
| - | [4] [[https://gitlab.cs.pub.ro/calculatoare-numerice/cn2-public/-/tree/main/lab09/solutii_avr | Solutii]] | + | [4] {{:apm:laboratoare:avrasm.zip|AVRASM}} |
| - | + | ||
| - | [5] {{:apm:laboratoare:avrasm.zip|AVRASM}} | + | |