This shows you the differences between two versions of the page.
pm:prj2024:fstancu:cristian.musat2412 [2024/05/27 12:43] cristian.musat2412 |
pm:prj2024:fstancu:cristian.musat2412 [2024/05/27 13:06] (current) cristian.musat2412 |
||
---|---|---|---|
Line 32: | Line 32: | ||
===== Design Software ===== | ===== Design Software ===== | ||
- | %% | + | <code> |
#include <avr/io.h> | #include <avr/io.h> | ||
#include <avr/interrupt.h> | #include <avr/interrupt.h> | ||
Line 216: | Line 216: | ||
return 0; | return 0; | ||
} | } | ||
- | %% | + | </code> |
+ | Pentru a interfața cu LCD-ul am folosit o bibliotecă built-in Adafruit_ST7735.h. \\ | ||
+ | Timer 0 are rolul de a controla durata dintre două aprinderi succesive ale LED-urilor, inițial la 3 secunde, dar la fiecare 10 secunde, cu 0.25 secunde mai puțin până ce se ajunge la o secundă, când se resetează la durata inițială de 3 secunde. \\ | ||
+ | Timer 2 are rolul de a stinge LED-ul aprins după 1.5 secunde în cazul în care butonul asociat lui nu a fost apăsat. \\ | ||
+ | Timer 1 are rolul de a aprinde LED-ul pe canalul A și de a afișa scorul obținut la ultima apăsare pe canalul B. \\ | ||
+ | Scorul obținut la ultima apăsare se calculează în funcție de numărul total de ticks ale Timer 2 la momentul apăsării butonului, iar scorul total este afișat în permanență și actualizat atunci când este cazul. \\ | ||
+ | Pentru a verifica că un LED a fost stins datorită apăsării butonului sau am folosit ADC pentru a măsura tensiunea la buton. \\ |