This shows you the differences between two versions of the page.
|
pm:prj2024:fstancu:cristian.musat2412 [2024/05/27 12:38] cristian.musat2412 |
pm:prj2024:fstancu:cristian.musat2412 [2024/05/27 13:06] (current) cristian.musat2412 |
||
|---|---|---|---|
| Line 32: | Line 32: | ||
| ===== Design Software ===== | ===== Design Software ===== | ||
| - | ''#include <avr/io.h> | + | <code> |
| + | #include <avr/io.h> | ||
| #include <avr/interrupt.h> | #include <avr/interrupt.h> | ||
| #include <stdlib.h> | #include <stdlib.h> | ||
| Line 214: | Line 215: | ||
| } | } | ||
| 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. \\ | ||