This shows you the differences between two versions of the page.
|
pm:lab:lab1-2022 [2023/03/11 17:58] andrei.darmaz [4. Exerciții] |
pm:lab:lab1-2022 [2023/03/16 15:37] (current) alexandru.predescu [4. Exerciții] |
||
|---|---|---|---|
| Line 174: | Line 174: | ||
| /* pune datele în buffer; transmisia va porni automat în urma scrierii */ | /* pune datele în buffer; transmisia va porni automat în urma scrierii */ | ||
| UDR0 = data; | UDR0 = data; | ||
| + | } | ||
| + | |||
| + | char USART0_receive() | ||
| + | { | ||
| + | /* asteapta cat timp bufferul e gol */ | ||
| + | while (!(UCSR0A & (1 << RXC0))); | ||
| + | |||
| + | /* returneaza datele din buffer */ | ||
| + | return UDR0; | ||
| } | } | ||
| </file> | </file> | ||
| Line 225: | Line 234: | ||
| void loop() | void loop() | ||
| { | { | ||
| - | if (Serial.available()){ | + | if (Serial.available()) { |
| char a = Serial.read(); | char a = Serial.read(); | ||
| char buf[20]; | char buf[20]; | ||
| Line 251: | Line 260: | ||
| * Comenzile on/off vor opri funcția blink. | * Comenzile on/off vor opri funcția blink. | ||
| - | <note important>Pentru a putea primi comenzi pe serială, este de dorit să nu existe delay-uri sau funcții blocante în programul principal (în loop). Funcția blink ar trebui să fie non-blocantă. Vom folosi funcția millis() pentru a măsura durata de timp (în loc să ținem programul blocat până expiră delay-ul) astfel: | + | <note tip> |
| + | * pentru a primi un șir de caractere de la interfața serială, puteți folosi un vector de caractere pe post de buffer | ||
| + | * pentru a verifica dacă șirul de caractere primit corespunde cu comanda, puteți folosi funcția //strcmp()//, ex. //strcmp(a, b) == 0// | ||
| + | </note> | ||
| + | |||
| + | |||
| + | <note important>Pentru a putea primi comenzi pe serială, este de dorit să nu existe delay-uri sau funcții blocante în programul principal (în loop). Funcția blink ar trebui să fie non-blocantă. Vom folosi funcția //millis()// pentru a măsura durata de timp (în loc să ținem programul blocat până expiră delay-ul) astfel: | ||
| <code> | <code> | ||
| Line 302: | Line 317: | ||
| </solution> | </solution> | ||
| </hidden> | </hidden> | ||
| + | |||
| **Task 3** (4p) | **Task 3** (4p) | ||
| Line 321: | Line 337: | ||
| </note> | </note> | ||
| + | |||
| **Bonus** (2p) | **Bonus** (2p) | ||