Gast
#1086575
Hallo, bisher habe ich Midibefehle mit At89C2051 über Bascom-8051 immer folgendermassen ausgegeben, was einwandfrei funktioniert: $baud = 31250 Open "com3.1:31250" For Output As #1 Put #1 , 153 'kanal Put #1 , 45 'ton Put #1 , 90 'lautstärke Close #1 (hier als Beispiel die Ausgabe eines Tons auf Kanal 10) Jetzt bin ich auf Bascom-AVR und AtMega32 umgestiegen und habe das selbe dort folgendermassen probiert: $baud = 31250 Open "comd.1:31250" For Output As #1 (alternativ: Open "comd.1:31250,8,n,1" For Output As #1 ) Put #1 , 153 Put #1 , 45 Put #1 , 90 Close #1 Hier sollen die Midibefehle ebenfalls über TXD (portbit d.1) ausgegeben werden, deshalb comd.1. Midi ist ja ein serielles Protokoll mit 31250Baud, 8 Bit, noParity, 1 Stopbit, daher bei der alternativen Open-Variante die anderen Parameter. Leider funktioniert die Übertragung mit dem AVR überhaupt nicht. Zuerst dachte ich, vielleicht schwingt der Oszillator auf der falschen Frequenz, aber $crystal = 8000000 ist völlig ok (sonst hatte es mit der Baudrate ja nicht mehr hingehauen). Dann habe ich mal ein Multimeter an PinD.1 (TXD) gegen GND angeschlossen, da tut sich anscheinend überhaupt nichts (beim At89C2051 ließen sich so auf jeden Fall im Sendebetrieb leichte bis mittlere Spannungsschwankungen an TXD feststellen). Daher vermute ich, dass der AVR gar keine Daten an das Midigerät übermittelt. Stellt sich nur die Frage, woran das liegen kann! Habe ich möglicherweise den UART nicht richtig konfiguriert? Wenn jemand eine Idee hat, bitte melden! Viele Grüsse, Daniel