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 ===== | ||