This shows you the differences between two versions of the page.
pm:lab:lab0-2024 [2025/03/03 13:23] dan.tudose [5. Exerciții] |
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 466: | Line 469: | ||
**Task 2 (3p)** | **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. | ||
Line 474: | Line 477: | ||
* 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. |