Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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 exempluregistrul 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țieiar 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}}+
apm/laboratoare/009.1733725905.txt.gz · Last modified: 2024/12/09 08:31 by irina_cristina.nita
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0