Hallo,
das GPIB_USB Interface funktioniert jetzt am GPIB bus. Getestet mit einem HP1630D Logic Analyzer.
Leider habe ich einen Bug in dem File
GPIB_functions.c gefunden und behoben.
Ursache:
Da bei dem Port 0 das Bit 0 für die serielle Schnittstelle gebraucht wird (TxD), müssen die Daten um 1 nach links geschoben werden. Das Bit 7 wird dann über Port3, Bit 1 ausgegeben. Da leider zuerst geschoben und dann auf Bit 7 geprüft wird, bekommen alle ASCII Zeichen > 0x3F dann das Bit 7 gesetzt. Einige GPIB Teilnehmer werden das klaglos korrigieren.
Mein Logic Analyzer leider nicht.
Lösung:
Im Programm
GPIB_functions.c in Funktion
send_gpib_byte () muss die Befehlsfolge sein:
if (data & 0x80) p3_1=0; else p3_1=1;data = data <<1; //shift to p0_1..p0_7p0= ~data;
Ich habe dann die Versions Nummer im Hauptprogramm auf 1.1 gesetzt, damit man die Versionen besser auseinander halten kann.
Grüße, Rudolf