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) |