Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:lab:lab1-2023 [2024/03/11 18:48]
dan.tudose [3.1 Registre]
pm:lab:lab1-2023 [2026/03/02 07:55] (current)
andrei.batasev [4. Exerciții]
Line 77: Line 77:
  
 <note warning>​Pentru ca două dispozitive,​ în cazul nostru PC-ul și placa de laborator, să poată comunica între ele prin USART în mod asincron, trebuie configurate **identic**. Dacă placa este configurată cu baud rate 115200, 9 biți de date, 1 bit de stop și fără paritate atunci PC-ul trebuie configurat **exact la fel** pentru a comunica.</​note>​ <note warning>​Pentru ca două dispozitive,​ în cazul nostru PC-ul și placa de laborator, să poată comunica între ele prin USART în mod asincron, trebuie configurate **identic**. Dacă placa este configurată cu baud rate 115200, 9 biți de date, 1 bit de stop și fără paritate atunci PC-ul trebuie configurat **exact la fel** pentru a comunica.</​note>​
 +
 +<note tip> **Video explicativ** (~10 min): [[https://​www.ti.com/​video/​6313217959112|UART protocol and error overview]] </​note>​
  
 ==== 3.1 Registre ==== ==== 3.1 Registre ====
Line 194: Line 196:
 ===== 4. Exerciții ===== ===== 4. Exerciții =====
  
-{{:​pm:​lab:​lab1-usart.zip|Schelet}}+{{:​pm:​lab:​lab1-usart-2026.zip|Schelet}}
  
-**Task 1**+**Task 1 (3p)**
  
-Folosind scheletul de laborator configurează USART0 cu următorii parametri : baud rate 28800, 8 biți de date, bit de stop, fără ​paritate. Transmiteți către PC mesajul “Butonul 1 a fost apasat” dacă butonul 1 (PB2) este apăsat.+Folosind scheletul de laborator configurează USART0 cu următorii parametri: baud rate 38400, 8 biți de date, bit de stop, cu verificare de paritate ​pară. Transmiteți către PC mesajul “Butonul 1 a fost apasat” dacă butonul 1 (PB2) este apăsat.
  
 <note warning> <note warning>
Line 209: Line 211:
  
 <​note>​ <​note>​
-Pentru a preciza baud rate-ul consolei seriale din VSCode cu PlatformIO, folosiți următoarea variabilă din ''​platformio.ini'':​+Pentru a preciza baud rate-ul ​și paritatea ​consolei seriale din VSCode cu PlatformIO, folosiți următoarea variabilă din ''​platformio.ini''​
 +<​code>​ 
 +monitor_speed = 38400 
 +monitor_parity = E 
 +</​code>​ 
 + 
 +Pentru a vedea mesajul scris de la tastatura in serial monitor puteti adauga:
 <​code>​ <​code>​
-monitor_speed ​28800+monitor_echo ​true
 </​code>​ </​code>​
 </​note>​ </​note>​
  
-**Task 2**+**Task 2 (3p)**
  
 Folosind scheletul de laborator, implementează o nouă funcție USART_exec(unsigned char command) care să accepte următoarele comenzi venite pe USART: Folosind scheletul de laborator, implementează o nouă funcție USART_exec(unsigned char command) care să accepte următoarele comenzi venite pe USART:
Line 222: Line 230:
   * “off” – stinge legul rgb   * “off” – stinge legul rgb
   * “red”, “green” sau “blue” – setează culoarea led-ului indicată de text   * “red”, “green” sau “blue” – setează culoarea led-ului indicată de text
 +  * "​blink"​ - aprinde si stinge ledul rgb in un mod in care se păstrează culoarea selectată mai sus (sau culoarea albă daca nu a fost nimic selectat precedent)
  
 Pentru a controla ledul RGB aveți următorii pini: Pentru a controla ledul RGB aveți următorii pini:
Line 228: Line 237:
   * Blue – PB3   * Blue – PB3
  
-**Task 3**+**Task 3 (4p)**
  
-Trimiteți numele ​vostru ​prin interfața serială. Folosind “morse_alphabet” din scheletul de laborator și buzzerul, ​generati ​codul Morse aferent acestuia.+Trimiteți numele ​senzorului preferat ​prin interfața serială. Folosind “morse_alphabet” din scheletul de laborator și buzzerul, ​generați ​codul Morse aferent acestuia.
  
 **Bonus** **Bonus**
  
 Implementează un semafor controlat pe USART. Folosește ledul RGB de la Task-ul 1. Culoarea led-ului va fi în permanență roșie, până când mesajul "​pieton"​ va fi primit pe USART. Când mesajul este primit, se va seta culoarea galbenă pentru 2 secunde, după aceasta culoarea verde pentru 5 secunde, revenindu-se la culoarea roșie până la primirea unui mesaj nou. În cazul în care se va primi un mesaj diferit de "​pieton",​ se va trimite pe USART mesajul "​cerere incorecta"​. În timpul execuției comenzii de schimbare a culorilor, mesajele pe USART vor fi ignorate. Implementează un semafor controlat pe USART. Folosește ledul RGB de la Task-ul 1. Culoarea led-ului va fi în permanență roșie, până când mesajul "​pieton"​ va fi primit pe USART. Când mesajul este primit, se va seta culoarea galbenă pentru 2 secunde, după aceasta culoarea verde pentru 5 secunde, revenindu-se la culoarea roșie până la primirea unui mesaj nou. În cazul în care se va primi un mesaj diferit de "​pieton",​ se va trimite pe USART mesajul "​cerere incorecta"​. În timpul execuției comenzii de schimbare a culorilor, mesajele pe USART vor fi ignorate.
pm/lab/lab1-2023.1710175722.txt.gz · Last modified: 2024/03/11 18:48 by dan.tudose
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0