This shows you the differences between two versions of the page.
pm:lab:lab0-2024 [2025/02/25 19:30] atoader created |
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. | ||
Line 490: | Line 493: | ||
===== 7. Responsabili laborator ===== | ===== 7. Responsabili laborator ===== | ||
* [[atoader@stud.acs.upb.ro | Alex Toader]] | * [[atoader@stud.acs.upb.ro | Alex Toader]] | ||
- | * [[alexandru.radovici@cs.pub.ro | Eduard Radu]] | + | * [[eduard_andrei.radu@stud.acs.upb.ro | Eduard Radu]] |
| |