Differences

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

Link to this comparison view

pm:lab:lab4-2023-2024 [2025/03/30 20:59]
dan.tudose [4. Exercitii]
pm:lab:lab4-2023-2024 [2025/04/02 11:11] (current)
florin.stancu
Line 154: Line 154:
 Scheletul de cod este {{:​pm:​lab:​lab4_skel.zip|aici}}. Scheletul de cod este {{:​pm:​lab:​lab4_skel.zip|aici}}.
  
-(2 puncte) ​**Task 0** Completați scheletul de cod (fișierul “adc.c”) astfel încât sa definiți o funcție cu un comportament similar analogRead(uint8_t pin) → aceasta face o singura conversie a semnalului de pe pinul specificat și este blocanta pana la returnarea rezultatului.+**Task 0** (2 puncte) ​Completați scheletul de cod (fișierul “adc.c”) astfel încât sa definiți o funcție cu un comportament similar analogRead(uint8_t pin) → aceasta face o singura conversie a semnalului de pe pinul specificat și este blocanta pana la returnarea rezultatului.
  
-(1 punct) ​**Task 1** Folosind funcția anterior definită, citiți valorile de pe senzorul de temperatura (PA0). Puteti pune degetul peste el (pe proprie răspundere) și observa cum se modifica valorile. Senzorul de temperatura `MCP9701T-E/​TT` are un interval de functionare de -10°C - 125°C.+**Task 1** (1 punct) ​Folosind funcția anterior definită, citiți valorile de pe senzorul de temperatura (PA0). Puteti pune degetul peste el (pe proprie răspundere) și observa cum se modifica valorile. Senzorul de temperatura `MCP9701T-E/​TT` are un interval de functionare de -10°C - 125°C.
  
-(3 punte) **Task 2** Butoanele 1-6 sunt multiplexate pe același pin analogic (PA5) prin intermediul unui sistem de divizoare de tensiune (urmăriți schematicul pentru o explicație vizuala). Aflați ce valoare întoarce fiecare buton la apăsare și completați “define-urile” din cod. Completați codul astfel încât la apăsarea BTN1 sa se aprindă doar LED-ul magenta, la apăsarea BTN4 - LED-ul galben, iar la apăsarea BTN6 - LED-ul cyan.+<note warning>​ 
 +AVR Libc are implicit o implementare simplistică a printf()-ului care nu știe să formateze valori floating point. Dacă doriți să meargă ''​%f''​ & friends, va trebui să activați o setare de bibliotecă prin linker-ul GCC, desigur, prin ''​platformio.ini'':​ <​code>​build_flags = -Wl,​-u,​vfprintf -lprintf_flt -lm</​code>​ 
 +</​note>​ 
 + 
 +**Task 2** (3 puncte) ​Butoanele 1-6 sunt multiplexate pe același pin analogic (PA5) prin intermediul unui sistem de divizoare de tensiune (urmăriți schematicul pentru o explicație vizuala). Aflați ce valoare întoarce fiecare buton la apăsare și completați “define-urile” din cod. Completați codul astfel încât la apăsarea BTN1 sa se aprindă doar LED-ul magenta, la apăsarea BTN4 - LED-ul galben, iar la apăsarea BTN6 - LED-ul cyan.
  
 > Hint: culorile cerute se pot obtine prin combinarea a cate 2 leduri dintre rosu, verde si albastru > Hint: culorile cerute se pot obtine prin combinarea a cate 2 leduri dintre rosu, verde si albastru
  
-(4 puncte) ​**Task 3** Configurați ADC-ul astfel încât conversia valorilor citite de pe senzorul de temperatura sa se întâmple in mod continuu. Configurati LED-ul RBG astfel incat sa afiseze o culoare intre albastru si rosu. (Albastru va corespunde unei temperaturi de 20°C, iar rosu unei temperaturi de 30°C). Folositi FastPWM de 8 biti pentru culorile ledurilor. NU MODIFICATI CODUL DIN FUNCTIA `task3`!+**Task 3** (4 puncte) ​Configurați ADC-ul astfel încât conversia valorilor citite de pe senzorul de temperatura sa se întâmple in mod continuu. Configurati LED-ul RBG astfel incat sa afiseze o culoare intre albastru si rosu. (Albastru va corespunde unei temperaturi de 20°C, iar rosu unei temperaturi de 30°C). Folositi FastPWM de 8 biti pentru culorile ledurilor. NU MODIFICATI CODUL DIN FUNCTIA `task3`!
  
 > Hint: folositi functia `remap_interval` pentru a calcula duty-cycle pentru cele 2 timere > Hint: folositi functia `remap_interval` pentru a calcula duty-cycle pentru cele 2 timere
  
-(1 punct) ​**Task 4 (BONUS)** Configurati ADC-ul astfel incat sa aiba o precizie ​de 8 biti si observati diferenta de timp la rulare.+**Task 4 (BONUS)** ​(1 punct) ​Configurati ADC-ul astfel incat sa aiba o rezolutie ​de 8 biti si observati diferenta de timp la rulare.
 ===== 5. Linkuri utile  ===== ===== 5. Linkuri utile  =====
  
Line 175: Line 179:
 ===== 6. Responsabili laborator ===== ===== 6. Responsabili laborator =====
  
-  * [[mihnea.dinica@stud.acs.upb.ro|Mihnea Dinica]] +  * Eduard Radu 
-  * [[cristi.tranca@gmail.com|Cristi Tranca]]+  * Alexandru Jipa
pm/lab/lab4-2023-2024.1743357565.txt.gz · Last modified: 2025/03/30 20:59 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