Technik > Tech-Talk Design & Konzepte

Entwicklung eines Midi-Switching-Systems auf Arduino-Basis

<< < (18/30) > >>

SvR:
Salü,

--- Zitat von: Nils H. am 26.08.2013 08:57 ---Ich vermute, dass der I²C-Bus dann hängt, weil sich Tastendrücke, LCD-Ausgaben und EEPROM lesen in die Quere kommen - vermutlich muss ich in den Menüs einiges noch atomisieren.

--- Ende Zitat ---
Läuft das über Interrupts? Sperrst du alle anderen Interrupts, wenn du ein Ereignis bearbeitest? Evtl. gibt es auch die Möglichkeit Prioritäten für die Interrupts zu vergeben? Kenn mich da bei AVRs nicht so aus.
mfg Sven

Nils H.:

--- Zitat von: SvR am 26.08.2013 17:22 ---Salü,Läuft das über Interrupts? Sperrst du alle anderen Interrupts, wenn du ein Ereignis bearbeitest? Evtl. gibt es auch die Möglichkeit Prioritäten für die Interrupts zu vergeben? Kenn mich da bei AVRs nicht so aus.
mfg Sven

--- Ende Zitat ---

Die I²C-Kommunikation läuft insofern nicht mit Interrupts, als dass die INT-Leitung des Busses nicht ausgewertet wird. Die Taster am Bus werden über eine Timer-ISR aber regelmäßig (alle 8 ms) abgefragt. Außerdem läuft noch eine ISR für den 16-Bit-Timer.

Grunsätzlich sollte es so sein, dass ich vor jedem Buszugriff die Interrupts sperre und hinterher wieder freigebe. Ich muss mal überprüfen, ob das konsequent immer so ist oder ob ich das irgendwo in einer Routine vergessen habe.

Gruß, Nils

Nils H.:
hmm, bisher sind keine Crashes mehr aufgetreten.... komisch das.

Ich habe gerade die ersten "Komfortfunktionen" implementiert, nämlich das kopieren und tauschen von Presets, außerdem Shortcuts zum editieren und speichern von Presets.  War erstaunlich leicht, hat keine halbe Stunde gedauert. So schlecht scheint mein Programmierunterbau doch nicht zu sein, musste nur ein paar Variablen umspeichern und ein paar bereits fertige Funktionen aufrufen... ich bin stolz auf mich  ;D .


Der Weg zum editieren eines beliebigen Presets ist Menü > Edit Preset > Preset auswählen, loseditieren.  Anschließend kehrt der Controller zum vorher geladenen Preset zurück. Das gerade aktive Preset kann jetzt über langes Drücken des Edit-Tasters direkt editiert werden. Außerdem lässt sich im Direct-Mode die gerade gedrückte Tasteranordnung ebenfalls über langes Drücken von Edit abspeichern. So langsam bekommt auch die Bedienung Struktur.

Ich habe überlegt, jedem CC-Taster mehr als eine CC-Zuordnung zu spendieren. Platz im EEPROM für die Daten ist genug, ich denke, das könnte ganz praktisch sein. Mögliches Szenario: Im Direktmodus bei einem Tastendruck im Looper mehrere Loops gleichzeitig aktivieren, oder z.B. beim Umschalten des Amps auf den High Gain Kanal automatisch im Multieffekt das Noise Gate aktivieren - und eben ohne lästige Presetwechsel.

Ich mus nur aufpassen, dass ich nicht die Featuritis bekomme... wobei: Da geht noch was. Mein neues Vorbild: http://www.youtube.com/watch?v=bLKo8cQcxcc .

Gruß, Nils

Nils H.:
Moin,


--- Zitat von: kugelblitz am 22.08.2013 12:23 ---BTW  vielleicht hast Du es schon geschrieben, aber wie hinterlegst Du den Status der Effekte im Board (Annahme: Gmaj oder Gmaj als Gegenstück). Ich speichere sie ATM nicht und damit kann es sein daß das erstemal schalten nach Presetwechsel 127 statt 0 sendet und erst beim zweiten mal findet der Wechsel statt? Speicherst Du alles in Deinen Presets im fußcontroller oder hast Du eine Möglichkeit gefunden den Status beim Gmaj(2) zu erfragen?

--- Ende Zitat ---

was ich rausgefunden habe: Das G-Major 2 sendet die entsprechenden CCs beim Presetwechsel über MIDI-Out raus. Wennn Der Controller das also kann, bekommt er vom G-Major den aktuellen Status mitgeteilt.

Gruß, Nils

kugelblitz:
Merci Nils,

wenn ich einmal Zeit finde, werde ich mitsniffen was da so raus kommt. Leider ists ATM sehr eng. Aber Danke für den Hinweis.

Gruß,
Sepp

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln