ich habe schon 2 mal den Fehler gepostet aber keine Antwort erhalten,
daher noch ein Post im deutschen Forum.
Es gibt einen Bug im Midi Component. Ein Status-Byte 0xF1 und höher
ergibt eine Variable von 0x00. Es ist nicht möglich Realtime-Messages
zu empfangen. Das gilt für alle Versionen von Flowcode.
Hier der Custom Code "ReceiveMIDI"
Code: Select all
MX_UINT8 idx, current_data = 0;
%a_Received_MIDI[0] = 0; //Reset Status Byte
%a_Received_MIDI[3] = 0; //Reset Real Time Message
for (idx = 1; idx < 3; idx++)
{
%a_Received_MIDI[idx] = 255; //Clear old MIDI data
}
for (idx = 0; idx < 3; idx++)
{
current_data = %a_UART_Receive(cTimeout);
if (current_data == 255)
return 0; //Timeout Occurred
if (current_data >= 0xf8) //If real time message received
%a_Received_MIDI[3] = current_data;
else //Else normal message / data
%a_Received_MIDI[idx] = current_data;
}
return %a_Received_MIDI[0]; //Return status byte
Kann man den Code ändern damit das funktioniert?
Auch sollte es möglich sein, das man nur 1 oder auch nur 2 Bytes senden kann, da ein Program Change
nur aus 2 und eine Realtime Message nur aus 1 Byte, das Status Byte besteht. Das ist momentan nicht möglich, man muss
alle 3 Bytes senden. So ist das Programmieren einer Remote Control und auch ein Midi-Panic nicht möglich.
Alle anderen Midi-Funktionen sind bei mir kein Problem.
Ich habe sehr viele Programme mit Flowcode 5 programmiert und benötige auch ein Bug Fix für Ver. 5, also
eigentlich für alle Flowcode Versionen bis Flowcode 8. Ein Import von Ver. 5 ist nicht möglich, da das Programm
danach etwas größer wird und nicht mehr in den Chip passt. Ich verwende sehr oft den PIC 12F1840 und den
PIC 16F1825. Bitte helft mir.
Vielen Dank
Dirk