This shows you the differences between two versions of the page.
|
pm:prj2025:avaduva:andrei.diaconu1410 [2025/05/26 02:34] andrei.diaconu1410 [Software Design] |
pm:prj2025:avaduva:andrei.diaconu1410 [2025/05/28 14:22] (current) andrei.diaconu1410 [Software Design] |
||
|---|---|---|---|
| Line 110: | Line 110: | ||
| Aceasta trece de la starea MANUAL la LOADING sau de la starea LOADING, PLAYING_SD la MANUAL. | Aceasta trece de la starea MANUAL la LOADING sau de la starea LOADING, PLAYING_SD la MANUAL. | ||
| Este implementata si debouncing pentru a evita treceri multiple intre stari la o singura apasare a butonului. | Este implementata si debouncing pentru a evita treceri multiple intre stari la o singura apasare a butonului. | ||
| + | Totodata la apasarea de 2 ori a butonului sistemul trece in **teaching mode** atunci cand reda fisiere, reducand viteza de redare a fisierului si afisand informatii despre note pe ecran. | ||
| Functia **showNoteName()** calculeaza numele si octava notei primite si le afiseaza pe ecran. | Functia **showNoteName()** calculeaza numele si octava notei primite si le afiseaza pe ecran. | ||
| Line 116: | Line 117: | ||
| * PWM: pentru a genera semnalul audio. | * PWM: pentru a genera semnalul audio. | ||
| * Interupt: pentru a schimba starea sistemului la apasarea butonului. | * Interupt: pentru a schimba starea sistemului la apasarea butonului. | ||
| - | * SPI: pentru a comunica cu cardul SD si a citi fisierele MIDI. | + | * USART: pentru a primi comenzi de la clapa. |
| - | {{:pm:prj2025:avaduva:diaconuandrei_synth.zip| cod sursa}} | + | {{:pm:prj2025:avaduva:diaconuandrei_synth1.zip| cod sursa}} |
| + | [[https://www.youtube.com/watch?v=0_4VnZYQpdc|demo]] | ||
| <note tip> | <note tip> | ||
| Descrierea codului aplicaţiei (firmware): | Descrierea codului aplicaţiei (firmware): | ||
| Line 130: | Line 131: | ||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| + | |||
| <note tip> | <note tip> | ||
| Line 136: | Line 138: | ||
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| + | Desi nu am putut implementa de la 0 citirea fisierelor midi, proiectul m-a ajutat sa invat mai mult despre acest protocol si despre cum functioneaza clapa digitala. Am învatat cum sunt interpretate comenzile MIDI și cum acestea pot fi folosite pentru a genera sunete în timp real. De asemenea, am avut ocazia sa experimentez cu un filtru trece-jos RC si sa reusesc sa trec peste bug-uri hardware. | ||
| ===== Download ===== | ===== Download ===== | ||