Gast
#1301393
Hallo,
ich habe Heute den ganzen Tag erfolglos versucht an ein
Gitarreneffektpedal über das Midiprotokoll eine Bank Select Message zu
senden.
Es wäre wirklich sehr nett, wenn mir irgendwer aus meiner Verzweifelung
heraus helfen kann.
Meine Hardware(die relevante):
Ich nutze einen Atmega16 mit einem 8Mhz Quarz.
PinD1(TXD) ist über einen 220 Ohm Widerstand an Pin5 der Midi
Eingangsbuchse angeschlossen und +5Volt ist auch über einen 220 Ohm
Widerstand an Pin4 der Midieingangsbuchse angeschlossen.
Wenn ich An PinD1 eine Led anschließe sehe ich diese beim senden kurz
aufblitzen.
Meine Software(auf das nötigste beschränkt):
#ifndef F_CPU
#define F_CPU 8000000UL // Systemtakt in Hz - Definition als unsigned
long beachten >> Ohne ergeben Fehler in der Berechnung
#endif
#define BAUD 31250UL // Baudrate
// Berechnungen
#define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1) // clever runden
#define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1))) // Reale Baudrate
#define BAUD_ERROR ((BAUD_REAL*1000)/BAUD) // Fehler in Promille, 1000 =
kein Fehler.
#if ((BAUD_ERROR<990) || (BAUD_ERROR>1010))
#error Systematischer Fehler der Baudrate grösser 1% und damit zu
hoch!
#endif
UCSRB |= (1<<TXEN); // UART TX einschalten
UCSRC |= (1<<URSEL)|(3<<UCSZ0); // Asynchron 8N1
UBRRH = UBRR_VAL >> 8;
UBRRL = UBRR_VAL & 0xFF;
if (!(PINA & (1<<PINA1) )) { // wenn Taster1 gedrückt
while (!(UCSRA & (1<<UDRE))){}
UDR = 0b10110001;
while (!(UCSRA & (1<<UDRE))){}
UDR = 0b00000001;
while (!(UCSRA & (1<<UDRE))){}
UDR = 0b00010011;
}
Unter diesem Link findet Ihr die Anleitung des Gitarreneffektpedals:
Auf Seite 86 steht eine Tabelle mit den Midibefehlen!
http://lib.roland.co.jp/support/en/manuals/res/1811397/GT-8_e7.pdf
P.S.: Ich habe sehr lange im Forum, sowie mit Google nach vergleichbaren
Problemen und Lösungsansätzen gesucht, da ich jedoch auch noch nicht
besonders gut im Programmieren bin konnten mit die Lösungsansätze nicht
weiterhelfen.
Vielen Dank für eure Bemühungen!