Differences

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

Link to this comparison view

pm:lab:lab0-2024 [2025/02/25 19:32]
atoader [7. Responsabili laborator]
pm:lab:lab0-2024 [2025/03/04 10:10] (current)
jan.vaduva [5. Exerciții]
Line 323: Line 323:
     * Bitul 4 (''​PD4''​) din registrul ''​DDRD''​ va fi 0     * Bitul 4 (''​PD4''​) din registrul ''​DDRD''​ va fi 0
     * ''​DDRD &= ~(1 << PD4);''​     * ''​DDRD &= ~(1 << PD4);''​
 +  * Activati rezistenta de PULL-UP interna microcontroller-ului:​
 +    * Bitul 4 (''​PD4''​) din registrul ''​PORT''​ va fi 1
 +    * ''​PORTD |= (1 << PD4);''​
   * Pentru a determina starea de apăsare a butonului trebuie să citim valoarea pinului la care este atașat. Acesta va fi 1 atunci când butonul este liber și 0 atunci când butonul este apăsat   * Pentru a determina starea de apăsare a butonului trebuie să citim valoarea pinului la care este atașat. Acesta va fi 1 atunci când butonul este liber și 0 atunci când butonul este apăsat
     * Citim valoarea bitului 4 (''​PD4''​) din registrul ''​PIND''​     * Citim valoarea bitului 4 (''​PD4''​) din registrul ''​PIND''​
Line 457: Line 460:
 ===== 5. Exerciții ===== ===== 5. Exerciții =====
  
-**Task 0** Începem prin a verifica setup-ul.+**Task 0 (0p)** Începem prin a verifica setup-ul.
  
   * Instalați IDE-ul dorit/​folosit și rulați exemplul Hello Word pe placa de dezvoltare din laborator. ​   * Instalați IDE-ul dorit/​folosit și rulați exemplul Hello Word pe placa de dezvoltare din laborator. ​
  
  
-**Task 1** +**Task 1 (2p)** 
   * Modificați exemplul Hello World încât LED-ul aprins să fie cel de culoare albastră. Hint: căutați pinul și portul la care e legat acest LED (parte a LED-ului RGB) în [[https://​raw.githubusercontent.com/​dantudose/​PM-Board/​main/​Hardware/​schematic.pdf | schema plăcii]] / [[https://​github.com/​dantudose/​PM-Board/​tree/​main?​tab=readme-ov-file#​board-pinout|documentația plăcii pe GitHub]]. **Atenție**:​ LED-ul RGB are anodul comun, așa că scrierea unui 1 logic pe pinul de GPIO corespunzător o să stingă LED-ul.   * Modificați exemplul Hello World încât LED-ul aprins să fie cel de culoare albastră. Hint: căutați pinul și portul la care e legat acest LED (parte a LED-ului RGB) în [[https://​raw.githubusercontent.com/​dantudose/​PM-Board/​main/​Hardware/​schematic.pdf | schema plăcii]] / [[https://​github.com/​dantudose/​PM-Board/​tree/​main?​tab=readme-ov-file#​board-pinout|documentația plăcii pe GitHub]]. **Atenție**:​ LED-ul RGB are anodul comun, așa că scrierea unui 1 logic pe pinul de GPIO corespunzător o să stingă LED-ul.
  
-**Task 2**  +**Task 2 (3p)**  
-   * Modificați exemplul Hello World încât LED-ul să pâlpâie intermitent la apăsarea butonului ​BTN 1 (PB2).+   * Modificați exemplul Hello World încât LED-ul să pâlpâie intermitent la apăsarea butonului PB2.
      * Mențineți LED-ul albastru aprins.      * Mențineți LED-ul albastru aprins.
      * Configurați registrele pentru a face pinul PB2 de input.      * Configurați registrele pentru a face pinul PB2 de input.
      * Nu uitați să activați rezistența de pull-up internă a µC-ului pentru PB2.      * Nu uitați să activați rezistența de pull-up internă a µC-ului pentru PB2.
  
-**Task 3** +**Task 3 (5p)** 
    * Plecând de la aplicația rezultată la Task 2, pentru a implemeta un semafor cu LED-urile de culoare roșu și verde.    * Plecând de la aplicația rezultată la Task 2, pentru a implemeta un semafor cu LED-urile de culoare roșu și verde.
      * Mențineți LED-ul roșu aprins la pornirea aplicației.      * Mențineți LED-ul roșu aprins la pornirea aplicației.
-     * La apăsarea butonului ​BTN 1 (PB2), LED-ul își va schimba culoarea în galben, după care se aprinde LED-ul verde, va sta aprins 10 secunde, după care va pâlpâi pentru 2 secunde. apoi se va stinge și se va aprinde LED-ul roșu.+     * La apăsarea butonului PB2, LED-ul își va schimba culoarea în galben, după care se aprinde LED-ul verde, va sta aprins 10 secunde, după care va pâlpâi pentru 2 secunde. apoi se va stinge și se va aprinde LED-ul roșu.
      * Până la terminarea secventei reapăsarea butonului BTN 1 (PB2) nu va avea niciun efect.      * Până la terminarea secventei reapăsarea butonului BTN 1 (PB2) nu va avea niciun efect.
      * Hint: folosiți un automat finit pentru a implementa această funcționalitate.      * Hint: folosiți un automat finit pentru a implementa această funcționalitate.
pm/lab/lab0-2024.1740504761.txt.gz · Last modified: 2025/02/25 19:32 by atoader
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