This shows you the differences between two versions of the page.
pm:lab:lab2-2023 [2025/03/16 22:29] andrei.batasev [3. Exerciții] |
pm:lab:lab2-2023 [2025/03/16 22:36] (current) andrei.batasev [3. Exerciții] |
||
---|---|---|---|
Line 421: | Line 421: | ||
**Task 1. (2p)** | **Task 1. (2p)** | ||
- | * Implementați o funcție asemănătoare cu `delay(int ms)` din biblioteca Arduino. Aceasta ar trebui să întrerupă execuția programului pentru numărul de milisecunde dat. Implementarea se va face folosind întreruperi. | + | * Implementați o funcție asemănătoare cu ''delay(int ms)'' din biblioteca Arduino. Aceasta ar trebui să oprească execuția programului pentru numărul de milisecunde dat. Implementarea se va face folosind întreruperi. |
- | HINTS: | + | <note tip> |
* Frecvența de ceas a uC-ului este de 12MHz. Folosiți formulele prezentate anterior pentru a obține valorile potrivite pentru prescaler și registrul de comparație ale timer-ului ales astfel încât întreruperile generate de acesta să se declanșeze la intervalul de timp dorit. | * Frecvența de ceas a uC-ului este de 12MHz. Folosiți formulele prezentate anterior pentru a obține valorile potrivite pentru prescaler și registrul de comparație ale timer-ului ales astfel încât întreruperile generate de acesta să se declanșeze la intervalul de timp dorit. | ||
* Timer2 poate fi utilizat cu un număr mai mare de valori ale prescaler-ului. | * Timer2 poate fi utilizat cu un număr mai mare de valori ale prescaler-ului. | ||
+ | </note> | ||
+ | |||
**Task 2. (2p)** | **Task 2. (2p)** | ||
- | * Citiți `PD6` folosind întreruperi și trimiteți un mesaj prin USART0 (configurată ca la laboratorul anterior). | + | * Citiți ''PD6'' folosind întreruperi și trimiteți un mesaj prin ''USART0'' (configurată ca la laboratorul anterior). |
**Task 3. (3p)** | **Task 3. (3p)** | ||
- | * Folosind buzzer-ul, transmiteți o literă din codul "Morse" (modificat). Un simbol (`.` sau `-`) va dura 500 ms, iar durata dintre simboluri va fi tot 500 ms. Pentru a diferenția între `.` și `-`, alterați frecvența buzzer-ului (de exemplu, 500 Hz versus 1500 Hz). | + | * Folosind buzzer-ul, transmiteți un cuvânt cu literele codificate in alfabetul Morse astfel: |
+ | * Un simbol (''.'' sau ''-'') va dura 500 ms, iar durata dintre simboluri va fi tot 500 ms. Pentru a diferenția între ''.'' și ''-'', alterați frecvența buzzer-ului (de exemplu, 500 Hz versus 1500 Hz). | ||
* La fiecare apăsare a butonului ''PB2'' transmiteți următoarea literă. | * La fiecare apăsare a butonului ''PB2'' transmiteți următoarea literă. | ||
+ | |||
**Task 4. (3p)** | **Task 4. (3p)** |