This shows you the differences between two versions of the page.
|
pm:prj2026:bianca.popa1106:toma.ariciu [2026/05/09 23:57] toma.ariciu [Hardware Design] |
pm:prj2026:bianca.popa1106:toma.ariciu [2026/05/09 23:58] (current) toma.ariciu [Software Design] |
||
|---|---|---|---|
| Line 49: | Line 49: | ||
| ===== Software Design ===== | ===== Software Design ===== | ||
| + | **Mediu de dezvoltare:** PlatformIO cu framework-ul MiniCore. | ||
| - | <note tip> | + | Logica programului se bazează pe măsurarea timpului scurs între întreruperile generate de cei trei senzori IR, folosind Timer1 pe 16 biți ca bază de timp. |
| - | Descrierea codului aplicaţiei (firmware): | + | |
| - | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | |
| - | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
| - | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
| - | * (etapa 3) surse şi funcţii implementate | + | |
| - | </note> | + | |
| + | **Structura algoritmului:** | ||
| + | |||
| + | - Inițializare: configurarea pinilor I/O, a Timer1, a întreruperilor externe pentru senzori și a interfeței I²C pentru LCD. | ||
| + | - Bucla principală: | ||
| + | - Așteptarea unui flag setat de un ISR la trecerea vehiculului prin dreptul unui senzor. | ||
| + | - Calculul timpului pe sectorul închis ca diferență între capturile Timer1. | ||
| + | - Compararea timpului nou cu recordul personal al sesiunii și cu recordul absolut al zilei. | ||
| + | - Actualizarea culorii LED-ului pentru sectorul respectiv (mov / verde / galben). | ||
| + | - Actualizarea afișajului LCD cu turul curent, timpii pe sectoare și delta. | ||
| + | - Tratarea butoanelor (cu debouncing software) pentru reset sesiune și reset valori salvate. | ||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||