This shows you the differences between two versions of the page.
|
pm:lab:lab2-2023 [2026/03/05 23:53] irina.bradu [3. Exerciții] |
pm:lab:lab2-2023 [2026/03/06 12:23] (current) irina.bradu [3. Exerciții] |
||
|---|---|---|---|
| Line 462: | Line 462: | ||
| Folosiți buzzer-ul și butoanele: | Folosiți buzzer-ul și butoanele: | ||
| - | * BTN1 (''PB2'') schimbă frecvența sunetului generat de buzzer. Frecvența poate avea 3 valori diferite (200 Hz, 400 Hz, 800 Hz). | + | * BTN1 (''PB2'') schimbă frecvența sunetului generat de buzzer. Frecvența poate avea 3 valori diferite (200 Hz, 400 Hz, 800 Hz). |
| - | + | * BTN2 (''PD6'') este „gate”: buzzerul sună doar cât timp BTN2 este ținut apăsat. | |
| - | * BTN2 (''PD6'') este „gate”: buzzerul sună doar cât timp BTN2 este ținut apăsat. | + | |
| (generați semnalul pentru buzzer folosind un timer și întreruperi) | (generați semnalul pentru buzzer folosind un timer și întreruperi) | ||
| Line 473: | Line 472: | ||
| Folosiți funcția ''uptime_ms()'' pentru a implementa un mini-scheduler cooperativ care execută mai multe taskuri periodice. Implementați în bucla principală un mecanism care verifică periodic momentul curent (''now = uptime_ms()'') și execută următoarele taskuri: | Folosiți funcția ''uptime_ms()'' pentru a implementa un mini-scheduler cooperativ care execută mai multe taskuri periodice. Implementați în bucla principală un mecanism care verifică periodic momentul curent (''now = uptime_ms()'') și execută următoarele taskuri: | ||
| - | - T1 – Heartbeat (periodă 100 ms) - Comută starea LED-ului albastru. | + | * T1 – Heartbeat (periodă 100 ms) - Comută starea LED-ului albastru. |
| - | + | * T2 – Logger (periodă 500 ms) - Transmite pe USART mesajul: **t=<uptime_ms> ms** | |
| - | - T2 – Logger (periodă 500 ms) - Transmite pe USART mesajul: **t=<uptime_ms> ms** | + | * T3 – Status (periodă 1000 ms) - Comută starea LED-ului roșu. |
| - | + | ||
| - | - T3 – Status (periodă 1000 ms) - Comută starea LED-ului roșu. | + | |