www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR + Midi


Autor: Stef (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo beisammen,

ich möchte einen MEGA16 per BasCom zum Midi-Controller umfunktionieren
und hab damit ein kleines Problem.

Ich habe die Pollin-Platine mit einem integrierten MAX232 und greife
für den Midi-Anschluß TDX, wiederum vom 34-Poligen Pfostenstecker +5V
ab. Mein Versuch (simples Note-on) war dahingehend (connected am
Portd.1>TXD, sorry, wenn die Befehle nicht 100%ig stimmen, bin grad auf
Arbeit, hab das Prog nicht hier):

dim a as byte
dim b as ybte
dim c as byte
dim f as byte

a=&h91
b=&h0d
c=&hf7
f=1

main:
serout f,1,d,1,31250,0,1,0  ; Start-Bit
serout a,8,d,1,31250,1,8,1 ;Note on und Stop-bit
serout f,1,d,1,31250,0,1,0  ; Start-Bit
serout b,8,d,1,31250,1,8,1 ;Note und Stop-bit
serout f,1,d,1,31250,0,1,0  ; Start-Bit
serout c,8,d,1,31250,1,8,1 ;Velocity und Stop-bit
wait 1
goto main

Am Synth, der an der Midi-Schnittstelle klemmt, kommt nur eine
Error-Message a l'a "Channel Full" und ich bekomme keine Note
heraus.

Irgendwo stand was davon, das man wegen dem integrietem Inverter im
MAX232 das ganze per "a=a xor &b111111111, b=b xor &b111111111, c=c
xor &b111111111" drehen muß und /oder a=255-a, b=255-c /c=255-c
ausführen muß, funktioniert aber auch nicht. Entweder er macht gar
nichts oder fürht ein Progchange durch. Direkt am Prozessor ohne
MAX232, annem anderen Pin (TXD) bzw direkt per print "wert" und
$baud=31250 (bei 8 MHz) klappt ebenfalls nicht; die Fehler sind die
gleichen....

Frage: a) Wie kann ich das lösen, b) ist am Midi in am Synth ebenfalls
ein Inverter?



Grüsse + mächtig vielen Dank!

Stef

Autor: Sascha Dürkes (plutoonline)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Stef,
ist das Basic?
Ich kenne mich mit Basic leider nicht so gut aus aber ich versuch Dir
mal zu helfen.
Also Du mußt das Midi Signal direkt am Prozessor PIN (TXD) ausgeben.
Aber mit Serout und nicht mit Print. Invertieren muß man da normal
nichts, ausser wenn man direkt an den Gameport der Soundkarte geht kann
das vorkommen.
Der Anschluß am Proz muß folgendermaße aussehen:

TXD--------[220 Ohm]-----Midi-Buchse  (Pin5)
+5V--------[220 Ohm]-----Midi-Buchse  (Pin4)

es kann sein das ich PIN4 und PIN5 vertauscht habe, also vorher nochmal
checken.

Und dann mußt du folgendes senden:
-NoteOn   z.B (144+Kanal also 144+10 für Kanal 10)
-Note     z.B (39 für d#3)
-Anschlagdynamik   z.B. (Standardmäßig 100)

Ich hoffe ich konnte Dir einwenig weiterhelfen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.