Declare Function StartCon Lib "Iic.dll" (ByVal Port_Address As Integer) As Integer Declare Function RepStartCon Lib "Iic.dll" (ByVal Port_Address As Integer) As Integer Declare Function StopCon Lib "Iic.dll" (ByVal Port_Address As Integer) As Integer Declare Function Transmit Lib "Iic.dll" (ByVal Port_Address As Integer, ByVal Transmit_Byte As Integer) As Integer Declare Function Receive Lib "Iic.dll" (ByVal Port_Address As Integer, Receive_Byte As Integer, ByVal Ackknowledge As Integer) As Integer Declare Function TestFree Lib "Iic.dll" (ByVal Port_Address As Integer) As Integer Declare Function TestConnected Lib "Iic.dll" (ByVal Port_Address As Integer) As Integer Sub ChipAdr_Change () ChipAdress = Val(ChipAdr.Text) 'Bei Ändern der (Hardware)-Chipadresse hier neuen Wert einlesen If ChipAdress < 0 Then ChipAdress = 0 'max. 7 If ChipAdress > 7 Then ChipAdress = 7 'min. 0 End Sub Sub ChipAdr_LostFocus () ChipAdr.Text = Str$(ChipAdress) 'wenn in ChipAdr.Text < 0 oder > 7 auf 0 oder 7 setzten End Sub Sub Form_Load () ChipAdress = Val(ChipAdr.Text) 'Hardware TDA8444-Adresse (0-7) = Jumperstellung If ChipAdress < 0 Then ChipAdress = 0 'Adresse kleiner 0 If ChipAdress > 7 Then ChipAdress = 7 'oder größer 7 ausschließen Lpt = Lpt2 'parallele Schnittstelle für I2C-Interface 'standartmäßig auf LPT 2 setzen Statustext.Text = " Schnittstellenadresse = " + Lpt + " (dez.)" ' LPT Adresse ausgeben ErrorMsg = TestConnected(Lpt) 'IIC.dll - Fehlertestroutine 'Fehlermeldungen der IIC.dll-Routine (siehe Elektor 3/99, X-11) 'bei Programmstart ins Fehlertextfenster ausgeben If ErrorMsg = 0 Then Fehlertext.Text = " Kein Fehler" If ErrorMsg = 1 Then Fehlertext.Text = " IIC-Bus nicht frei" If ErrorMsg = 4 Then Fehlertext.Text = " IIC-Bus hat keine Spannung" If ErrorMsg = 5 Then Fehlertext.Text = " IIC-Interface nicht verbunden" If ErrorMsg = 6 Then Fehlertext.Text = " Unklarer Fehler" End Sub Sub Parallel1_Click (Index As Integer) Lpt = Lpt1 'Schnittstelle auf LPT1 setzen Parallel1(1).Checked = True 'im Menue LPT1 anhaken Parallel2(1).Checked = False 'und von LPT2 Häcchen entfernen Statustext.Text = " Schnittstellenadresse = " + Lpt + " (dez.)" 'Adresse unter Statustext ausgeben End Sub Sub Parallel2_Click (Index As Integer) Lpt = Lpt2 'Schnittstelle auf LPT2 setzen Parallel1(1).Checked = False 'im Menue bei LPT2 ein Häkchen setzen Parallel2(1).Checked = True 'und bei LPT1 Häkchen entfernen Statustext.Text = " Schnittstellenadresse = " + Lpt + " (dez.)" ' LPT-Adresse unter Status ausgeben End Sub Sub ServoScroll1_Change () DacAdress = 0 'Adresse des 6-Bit_DAC im TDA8444 (0-7) DacWert = ServoScroll1.Value 'zu wandelnder Wert (0-63) 'Schieberendstellung = 63 da Eigenschaft MAX = 63 A1 = 64 + (ChipAdress * 2) 'Berechnung des 1. Datenbytes für den TDA8444 A2 = 240 + DacAdress 'Berechnung des 2. Datenbytes für den TDA8444 A3 = DacWert 'Berechnung des 3. Datenbytes für den TDA8444 'Aufbau des Datentelegramms siehe TDA8444-Datenblatt ' oder Beschreibung im Artikel ErrorMsg = StartCon(Lpt) 'Generieren einer I2C-Startbedingung und Ausgabe über ' die eingestellte Parallelschnittstelle; Er1 = ErrorMsg 'evtl aufgetretene Fehlermeldung in der Variablen ' Er1 zwischenspeichern; ErrorMsg = Transmit(Lpt, A1) 'Ausgabe des 1. Datenbytes über die eingestellte Parallelschnittstelle ' an das I2C-Interface; Er2 = ErrorMsg 'evtl aufgetretene Fehlermeldung in der Variablen ' Er2 zwischenspeichern; ErrorMsg = Transmit(Lpt, A2) 'Ausgabe des 2. Datenbytes über die eingestellte Parallelschnittstelle ' an das I2C-Interface; Er3 = ErrorMsg 'evtl aufgetretene Fehlermeldung in der Variablen ' Er3 zwischenspeichern; ErrorMsg = Transmit(Lpt, A3) 'Ausgabe des 3. Datenbytes über die eingestellte Parallelschnittstelle ' an das I2C-Interface; Er4 = ErrorMsg 'evtl aufgetretene Fehlermeldung in der Variablen ' Er4 zwischenspeichern; ErrorMsg = StopCon(Lpt) 'Generieren einer I2C-Stopbedingeung (Ende der Übertragung) über ' die eingestellte Parallelschnittstelle; Er5 = ErrorMsg 'evtl aufgetretene Fehlermeldung in der Variablen ' Er5 zwischenspeichern; Fehlertitel$ = " DAC 1: Fehler = " + Str$(Er1) + Str$(Er2) + Str$(Er3) + Str$(Er4) + Str$(Er5) + " = " 'Fehlernummern der IIC.dll ausgeben ZS$ = Chr$(13) + Chr$(10) 'Zeilenschaltung für neue Zeile bei Multiline-Text If Er1 = 0 Then ErT1$ = " Startbeding.: Kein Fehler" 'Fehlertext der Fehlernummer der Startbedingung zuordnen If Er1 = 1 Then ErT1$ = " Startbeding.: IIC-Bus nicht frei" If Er1 = 2 Then ErT1$ = " Startbeding.: kein Acknowledge (ACK) empfangen" If Er1 = 3 Then ErT1$ = " Startbeding.: Stopbedingung nicht generierbar" If Er1 = 4 Then ErT1$ = " Startbeding.: IIC-Bus hat keine Spannung" If Er1 = 5 Then ErT1$ = " Startbeding.: IIC-Interface nicht verbunden" If Er1 = 6 Then ErT1$ = " Startbeding.: Unklarer Fehler" If Er2 = 0 Then ErT2$ = " Datenbyte 1: Kein Fehler" 'Fehlertext der Fehlernummer des 1. Datenbytes zuordnen If Er2 = 1 Then ErT2$ = " Datenbyte 1: IIC-Bus nicht frei" If Er2 = 2 Then ErT2$ = " Datenbyte 1: kein Acknowledge (ACK) empfangen" If Er2 = 3 Then ErT2$ = " Datenbyte 1: Stopbedingung nicht generierbar" If Er2 = 4 Then ErT2$ = " Datenbyte 1: IIC-Bus hat keine Spannung" If Er2 = 5 Then ErT2$ = " Datenbyte 1: IIC-Interface nicht verbunden" If Er2 = 6 Then ErT2$ = " Datenbyte 1: Unklarer Fehler" If Er3 = 0 Then ErT3$ = " Datenbyte 2: Kein Fehler" 'Fehlertext der Fehlernummer des 2. Datenbytes zuordnen If Er3 = 1 Then ErT3$ = " Datenbyte 2: IIC-Bus nicht frei" If Er3 = 2 Then ErT3$ = " Datenbyte 2: kein Acknowledge (ACK) empfangen" If Er3 = 3 Then ErT3$ = " Datenbyte 2: Stopbedingung nicht generierbar" If Er3 = 4 Then ErT3$ = " Datenbyte 2: IIC-Bus hat keine Spannung" If Er3 = 5 Then ErT3$ = " Datenbyte 2: IIC-Interface nicht verbunden" If Er3 = 6 Then ErT3$ = " Datenbyte 2: Unklarer Fehler" If Er4 = 0 Then ErT4$ = " Datenbyte 3: Kein Fehler" 'Fehlertext der Fehlernummer des 3. Datenbytes zuordnen If Er4 = 1 Then ErT4$ = " Datenbyte 3: IIC-Bus nicht frei" If Er4 = 2 Then ErT4$ = " Datenbyte 3: kein Acknowledge (ACK) empfangen" If Er4 = 3 Then ErT4$ = " Datenbyte 3: Stopbedingung nicht generierbar" If Er4 = 4 Then ErT4$ = " Datenbyte 3: IIC-Bus hat keine Spannung" If Er4 = 5 Then ErT4$ = " Datenbyte 3: IIC-Interface nicht verbunden" If Er4 = 6 Then ErT4$ = " Datenbyte 3: Unklarer Fehler" If Er5 = 0 Then ErT5$ = " Stopbeding.: Kein Fehler" 'Fehlertext der Fehlernummer der Stopbedingung zuordnen If Er5 = 1 Then ErT5$ = " Stopbeding.: IIC-Bus nicht frei" If Er5 = 2 Then ErT5$ = " Stopbeding.: kein Acknowledge (ACK) empfangen" If Er5 = 3 Then ErT5$ = " Stopbeding.: Stopbedingung nicht generierbar" If Er5 = 4 Then ErT5$ = " Stopbeding.: IIC-Bus hat keine Spannung" If Er5 = 5 Then ErT5$ = " Stopbeding.: IIC-Interface nicht verbunden" If Er5 = 6 Then ErT5$ = " Stopbeding.: Unklarer Fehler" Statustext.Text = " Übertragene Werte = " + Str$(A1) + Str$(A2) + Str$(A3) 'Inhalt der 3 Datenbytes ins Statusfenster ausgeben Fehlertext.Text = Fehlertitel$ + ZS$ + ErT1$ + ZS$ + ErT2$ + ZS$ + ErT3$ + ZS$ + ErT4$ + ZS$ + ErT5$ 'Fehlernummern und Fehlertext ins Fehlerfenster ausgeben End Sub Sub ServoScroll2_Change () DacAdress = 1 'das gleiche für den 2.DAC im TDA8444 'siehe ServoScroll1 DacWert = ServoScroll2.Value A1 = 64 + (ChipAdress * 2) A2 = 240 + DacAdress A3 = DacWert ErrorMsg = StartCon(Lpt) Er1 = ErrorMsg ErrorMsg = Transmit(Lpt, A1) Er2 = ErrorMsg ErrorMsg = Transmit(Lpt, A2) Er3 = ErrorMsg ErrorMsg = Transmit(Lpt, A3) Er4 = ErrorMsg ErrorMsg = StopCon(Lpt) Er5 = ErrorMsg Fehlertitel$ = " DAC 2: Fehler = " + Str$(Er1) + Str$(Er2) + Str$(Er3) + Str$(Er4) + Str$(Er5) + " = " ZS$ = Chr$(13) + Chr$(10) 'Zeilenschaltung für neue Zeile bei Multiline-Text If Er1 = 0 Then ErT1$ = " Startbeding.: Kein Fehler" If Er1 = 1 Then ErT1$ = " Startbeding.: IIC-Bus nicht frei" If Er1 = 2 Then ErT1$ = " Startbeding.: kein Acknowledge (ACK) empfangen" If Er1 = 3 Then ErT1$ = " Startbeding.: Stopbedingung nicht generierbar" If Er1 = 4 Then ErT1$ = " Startbeding.: IIC-Bus hat keine Spannung" If Er1 = 5 Then ErT1$ = " Startbeding.: IIC-Interface nicht verbunden" If Er1 = 6 Then ErT1$ = " Startbeding.: Unklarer Fehler" If Er2 = 0 Then ErT2$ = " Datenbyte 1: Kein Fehler" If Er2 = 1 Then ErT2$ = " Datenbyte 1: IIC-Bus nicht frei" If Er2 = 2 Then ErT2$ = " Datenbyte 1: kein Acknowledge (ACK) empfangen" If Er2 = 3 Then ErT2$ = " Datenbyte 1: Stopbedingung nicht generierbar" If Er2 = 4 Then ErT2$ = " Datenbyte 1: IIC-Bus hat keine Spannung" If Er2 = 5 Then ErT2$ = " Datenbyte 1: IIC-Interface nicht verbunden" If Er2 = 6 Then ErT2$ = " Datenbyte 1: Unklarer Fehler" If Er3 = 0 Then ErT3$ = " Datenbyte 2: Kein Fehler" If Er3 = 1 Then ErT3$ = " Datenbyte 2: IIC-Bus nicht frei" If Er3 = 2 Then ErT3$ = " Datenbyte 2: kein Acknowledge (ACK) empfangen" If Er3 = 3 Then ErT3$ = " Datenbyte 2: Stopbedingung nicht generierbar" If Er3 = 4 Then ErT3$ = " Datenbyte 2: IIC-Bus hat keine Spannung" If Er3 = 5 Then ErT3$ = " Datenbyte 2: IIC-Interface nicht verbunden" If Er3 = 6 Then ErT3$ = " Datenbyte 2: Unklarer Fehler" If Er4 = 0 Then ErT4$ = " Datenbyte 3: Kein Fehler" If Er4 = 1 Then ErT4$ = " Datenbyte 3: IIC-Bus nicht frei" If Er4 = 2 Then ErT4$ = " Datenbyte 3: kein Acknowledge (ACK) empfangen" If Er4 = 3 Then ErT4$ = " Datenbyte 3: Stopbedingung nicht generierbar" If Er4 = 4 Then ErT4$ = " Datenbyte 3: IIC-Bus hat keine Spannung" If Er4 = 5 Then ErT4$ = " Datenbyte 3: IIC-Interface nicht verbunden" If Er4 = 6 Then ErT4$ = " Datenbyte 3: Unklarer Fehler" If Er5 = 0 Then ErT5$ = " Stopbeding.: Kein Fehler" If Er5 = 1 Then ErT5$ = " Stopbeding.: IIC-Bus nicht frei" If Er5 = 2 Then ErT5$ = " Stopbeding.: kein Acknowledge (ACK) empfangen" If Er5 = 3 Then ErT5$ = " Stopbeding.: Stopbedingung nicht generierbar" If Er5 = 4 Then ErT5$ = " Stopbeding.: IIC-Bus hat keine Spannung" If Er5 = 5 Then ErT5$ = " Stopbeding.: IIC-Interface nicht verbunden" If Er5 = 6 Then ErT5$ = " Stopbeding.: Unklarer Fehler" Statustext.Text = " Übertragene Werte = " + Str$(A1) + Str$(A2) + Str$(A3) Fehlertext.Text = Fehlertitel$ + ZS$ + ErT1$ + ZS$ + ErT2$ + ZS$ + ErT3$ + ZS$ + ErT4$ + ZS$ + ErT5$ End Sub Sub ServoScroll3_Change () DacAdress = 2 'das gleiche für den 3. DAC im TDA8444 'siehe ServoScroll1 DacWert = ServoScroll3.Value A1 = 64 + (ChipAdress * 2) A2 = 240 + DacAdress A3 = DacWert ErrorMsg = StartCon(Lpt) Er1 = ErrorMsg ErrorMsg = Transmit(Lpt, A1) Er2 = ErrorMsg ErrorMsg = Transmit(Lpt, A2) Er3 = ErrorMsg ErrorMsg = Transmit(Lpt, A3) Er4 = ErrorMsg ErrorMsg = StopCon(Lpt) Er5 = ErrorMsg Fehlertitel$ = " DAC 3: Fehler = " + Str$(Er1) + Str$(Er2) + Str$(Er3) + Str$(Er4) + Str$(Er5) + " = " ZS$ = Chr$(13) + Chr$(10) 'Zeilenschaltung für neue Zeile bei Multiline-Text If Er1 = 0 Then ErT1$ = " Startbeding.: Kein Fehler" If Er1 = 1 Then ErT1$ = " Startbeding.: IIC-Bus nicht frei" If Er1 = 2 Then ErT1$ = " Startbeding.: kein Acknowledge (ACK) empfangen" If Er1 = 3 Then ErT1$ = " Startbeding.: Stopbedingung nicht generierbar" If Er1 = 4 Then ErT1$ = " Startbeding.: IIC-Bus hat keine Spannung" If Er1 = 5 Then ErT1$ = " Startbeding.: IIC-Interface nicht verbunden" If Er1 = 6 Then ErT1$ = " Startbeding.: Unklarer Fehler" If Er2 = 0 Then ErT2$ = " Datenbyte 1: Kein Fehler" If Er2 = 1 Then ErT2$ = " Datenbyte 1: IIC-Bus nicht frei" If Er2 = 2 Then ErT2$ = " Datenbyte 1: kein Acknowledge (ACK) empfangen" If Er2 = 3 Then ErT2$ = " Datenbyte 1: Stopbedingung nicht generierbar" If Er2 = 4 Then ErT2$ = " Datenbyte 1: IIC-Bus hat keine Spannung" If Er2 = 5 Then ErT2$ = " Datenbyte 1: IIC-Interface nicht verbunden" If Er2 = 6 Then ErT2$ = " Datenbyte 1: Unklarer Fehler" If Er3 = 0 Then ErT3$ = " Datenbyte 2: Kein Fehler" If Er3 = 1 Then ErT3$ = " Datenbyte 2: IIC-Bus nicht frei" If Er3 = 2 Then ErT3$ = " Datenbyte 2: kein Acknowledge (ACK) empfangen" If Er3 = 3 Then ErT3$ = " Datenbyte 2: Stopbedingung nicht generierbar" If Er3 = 4 Then ErT3$ = " Datenbyte 2: IIC-Bus hat keine Spannung" If Er3 = 5 Then ErT3$ = " Datenbyte 2: IIC-Interface nicht verbunden" If Er3 = 6 Then ErT3$ = " Datenbyte 2: Unklarer Fehler" If Er4 = 0 Then ErT4$ = " Datenbyte 3: Kein Fehler" If Er4 = 1 Then ErT4$ = " Datenbyte 3: IIC-Bus nicht frei" If Er4 = 2 Then ErT4$ = " Datenbyte 3: kein Acknowledge (ACK) empfangen" If Er4 = 3 Then ErT4$ = " Datenbyte 3: Stopbedingung nicht generierbar" If Er4 = 4 Then ErT4$ = " Datenbyte 3: IIC-Bus hat keine Spannung" If Er4 = 5 Then ErT4$ = " Datenbyte 3: IIC-Interface nicht verbunden" If Er4 = 6 Then ErT4$ = " Datenbyte 3: Unklarer Fehler" If Er5 = 0 Then ErT5$ = " Stopbeding.: Kein Fehler" If Er5 = 1 Then ErT5$ = " Stopbeding.: IIC-Bus nicht frei" If Er5 = 2 Then ErT5$ = " Stopbeding.: kein Acknowledge (ACK) empfangen" If Er5 = 3 Then ErT5$ = " Stopbeding.: Stopbedingung nicht generierbar" If Er5 = 4 Then ErT5$ = " Stopbeding.: IIC-Bus hat keine Spannung" If Er5 = 5 Then ErT5$ = " Stopbeding.: IIC-Interface nicht verbunden" If Er5 = 6 Then ErT5$ = " Stopbeding.: Unklarer Fehler" Statustext.Text = " Übertragene Werte = " + Str$(A1) + Str$(A2) + Str$(A3) Fehlertext.Text = Fehlertitel$ + ZS$ + ErT1$ + ZS$ + ErT2$ + ZS$ + ErT3$ + ZS$ + ErT4$ + ZS$ + ErT5$ End Sub Sub ServoScroll4_Change () DacAdress = 3 'das gleiche für den 4. DAC im TDA8444 'siehe ServoScroll1 DacWert = ServoScroll4.Value A1 = 64 + (ChipAdress * 2) A2 = 240 + DacAdress A3 = DacWert ErrorMsg = StartCon(Lpt) Er1 = ErrorMsg ErrorMsg = Transmit(Lpt, A1) Er2 = ErrorMsg ErrorMsg = Transmit(Lpt, A2) Er3 = ErrorMsg ErrorMsg = Transmit(Lpt, A3) Er4 = ErrorMsg ErrorMsg = StopCon(Lpt) Er5 = ErrorMsg Fehlertitel$ = " DAC 4: Fehler = " + Str$(Er1) + Str$(Er2) + Str$(Er3) + Str$(Er4) + Str$(Er5) + " = " ZS$ = Chr$(13) + Chr$(10) 'Zeilenschaltung für neue Zeile bei Multiline-Text If Er1 = 0 Then ErT1$ = " Startbeding.: Kein Fehler" If Er1 = 1 Then ErT1$ = " Startbeding.: IIC-Bus nicht frei" If Er1 = 2 Then ErT1$ = " Startbeding.: kein Acknowledge (ACK) empfangen" If Er1 = 3 Then ErT1$ = " Startbeding.: Stopbedingung nicht generierbar" If Er1 = 4 Then ErT1$ = " Startbeding.: IIC-Bus hat keine Spannung" If Er1 = 5 Then ErT1$ = " Startbeding.: IIC-Interface nicht verbunden" If Er1 = 6 Then ErT1$ = " Startbeding.: Unklarer Fehler" If Er2 = 0 Then ErT2$ = " Datenbyte 1: Kein Fehler" If Er2 = 1 Then ErT2$ = " Datenbyte 1: IIC-Bus nicht frei" If Er2 = 2 Then ErT2$ = " Datenbyte 1: kein Acknowledge (ACK) empfangen" If Er2 = 3 Then ErT2$ = " Datenbyte 1: Stopbedingung nicht generierbar" If Er2 = 4 Then ErT2$ = " Datenbyte 1: IIC-Bus hat keine Spannung" If Er2 = 5 Then ErT2$ = " Datenbyte 1: IIC-Interface nicht verbunden" If Er2 = 6 Then ErT2$ = " Datenbyte 1: Unklarer Fehler" If Er3 = 0 Then ErT3$ = " Datenbyte 2: Kein Fehler" If Er3 = 1 Then ErT3$ = " Datenbyte 2: IIC-Bus nicht frei" If Er3 = 2 Then ErT3$ = " Datenbyte 2: kein Acknowledge (ACK) empfangen" If Er3 = 3 Then ErT3$ = " Datenbyte 2: Stopbedingung nicht generierbar" If Er3 = 4 Then ErT3$ = " Datenbyte 2: IIC-Bus hat keine Spannung" If Er3 = 5 Then ErT3$ = " Datenbyte 2: IIC-Interface nicht verbunden" If Er3 = 6 Then ErT3$ = " Datenbyte 2: Unklarer Fehler" If Er4 = 0 Then ErT4$ = " Datenbyte 3: Kein Fehler" If Er4 = 1 Then ErT4$ = " Datenbyte 3: IIC-Bus nicht frei" If Er4 = 2 Then ErT4$ = " Datenbyte 3: kein Acknowledge (ACK) empfangen" If Er4 = 3 Then ErT4$ = " Datenbyte 3: Stopbedingung nicht generierbar" If Er4 = 4 Then ErT4$ = " Datenbyte 3: IIC-Bus hat keine Spannung" If Er4 = 5 Then ErT4$ = " Datenbyte 3: IIC-Interface nicht verbunden" If Er4 = 6 Then ErT4$ = " Datenbyte 3: Unklarer Fehler" If Er5 = 0 Then ErT5$ = " Stopbeding.: Kein Fehler" If Er5 = 1 Then ErT5$ = " Stopbeding.: IIC-Bus nicht frei" If Er5 = 2 Then ErT5$ = " Stopbeding.: kein Acknowledge (ACK) empfangen" If Er5 = 3 Then ErT5$ = " Stopbeding.: Stopbedingung nicht generierbar" If Er5 = 4 Then ErT5$ = " Stopbeding.: IIC-Bus hat keine Spannung" If Er5 = 5 Then ErT5$ = " Stopbeding.: IIC-Interface nicht verbunden" If Er5 = 6 Then ErT5$ = " Stopbeding.: Unklarer Fehler" Statustext.Text = " Übertragene Werte = " + Str$(A1) + Str$(A2) + Str$(A3) Fehlertext.Text = Fehlertitel$ + ZS$ + ErT1$ + ZS$ + ErT2$ + ZS$ + ErT3$ + ZS$ + ErT4$ + ZS$ + ErT5$ End Sub Sub ServoScroll5_Change () DacAdress = 4 'das gleiche für den 5. DAC im TDA8444 'siehe ServoScroll1 DacWert = ServoScroll5.Value A1 = 64 + (ChipAdress * 2) A2 = 240 + DacAdress A3 = DacWert ErrorMsg = StartCon(Lpt) Er1 = ErrorMsg ErrorMsg = Transmit(Lpt, A1) Er2 = ErrorMsg ErrorMsg = Transmit(Lpt, A2) Er3 = ErrorMsg ErrorMsg = Transmit(Lpt, A3) Er4 = ErrorMsg ErrorMsg = StopCon(Lpt) Er5 = ErrorMsg Fehlertitel$ = " DAC 5: Fehler = " + Str$(Er1) + Str$(Er2) + Str$(Er3) + Str$(Er4) + Str$(Er5) + " = " ZS$ = Chr$(13) + Chr$(10) 'Zeilenschaltung für neue Zeile bei Multiline-Text If Er1 = 0 Then ErT1$ = " Startbeding.: Kein Fehler" If Er1 = 1 Then ErT1$ = " Startbeding.: IIC-Bus nicht frei" If Er1 = 2 Then ErT1$ = " Startbeding.: kein Acknowledge (ACK) empfangen" If Er1 = 3 Then ErT1$ = " Startbeding.: Stopbedingung nicht generierbar" If Er1 = 4 Then ErT1$ = " Startbeding.: IIC-Bus hat keine Spannung" If Er1 = 5 Then ErT1$ = " Startbeding.: IIC-Interface nicht verbunden" If Er1 = 6 Then ErT1$ = " Startbeding.: Unklarer Fehler" If Er2 = 0 Then ErT2$ = " Datenbyte 1: Kein Fehler" If Er2 = 1 Then ErT2$ = " Datenbyte 1: IIC-Bus nicht frei" If Er2 = 2 Then ErT2$ = " Datenbyte 1: kein Acknowledge (ACK) empfangen" If Er2 = 3 Then ErT2$ = " Datenbyte 1: Stopbedingung nicht generierbar" If Er2 = 4 Then ErT2$ = " Datenbyte 1: IIC-Bus hat keine Spannung" If Er2 = 5 Then ErT2$ = " Datenbyte 1: IIC-Interface nicht verbunden" If Er2 = 6 Then ErT2$ = " Datenbyte 1: Unklarer Fehler" If Er3 = 0 Then ErT3$ = " Datenbyte 2: Kein Fehler" If Er3 = 1 Then ErT3$ = " Datenbyte 2: IIC-Bus nicht frei" If Er3 = 2 Then ErT3$ = " Datenbyte 2: kein Acknowledge (ACK) empfangen" If Er3 = 3 Then ErT3$ = " Datenbyte 2: Stopbedingung nicht generierbar" If Er3 = 4 Then ErT3$ = " Datenbyte 2: IIC-Bus hat keine Spannung" If Er3 = 5 Then ErT3$ = " Datenbyte 2: IIC-Interface nicht verbunden" If Er3 = 6 Then ErT3$ = " Datenbyte 2: Unklarer Fehler" If Er4 = 0 Then ErT4$ = " Datenbyte 3: Kein Fehler" If Er4 = 1 Then ErT4$ = " Datenbyte 3: IIC-Bus nicht frei" If Er4 = 2 Then ErT4$ = " Datenbyte 3: kein Acknowledge (ACK) empfangen" If Er4 = 3 Then ErT4$ = " Datenbyte 3: Stopbedingung nicht generierbar" If Er4 = 4 Then ErT4$ = " Datenbyte 3: IIC-Bus hat keine Spannung" If Er4 = 5 Then ErT4$ = " Datenbyte 3: IIC-Interface nicht verbunden" If Er4 = 6 Then ErT4$ = " Datenbyte 3: Unklarer Fehler" If Er5 = 0 Then ErT5$ = " Stopbeding.: Kein Fehler" If Er5 = 1 Then ErT5$ = " Stopbeding.: IIC-Bus nicht frei" If Er5 = 2 Then ErT5$ = " Stopbeding.: kein Acknowledge (ACK) empfangen" If Er5 = 3 Then ErT5$ = " Stopbeding.: Stopbedingung nicht generierbar" If Er5 = 4 Then ErT5$ = " Stopbeding.: IIC-Bus hat keine Spannung" If Er5 = 5 Then ErT5$ = " Stopbeding.: IIC-Interface nicht verbunden" If Er5 = 6 Then ErT5$ = " Stopbeding.: Unklarer Fehler" Statustext.Text = " Übertragene Werte = " + Str$(A1) + Str$(A2) + Str$(A3) Fehlertext.Text = Fehlertitel$ + ZS$ + ErT1$ + ZS$ + ErT2$ + ZS$ + ErT3$ + ZS$ + ErT4$ + ZS$ + ErT5$ End Sub Sub ServoScroll6_Change () DacAdress = 5 'das gleiche für den 6. DAC im TDA8444 'siehe ServoScroll DacWert = ServoScroll6.Value A1 = 64 + (ChipAdress * 2) A2 = 240 + DacAdress A3 = DacWert ErrorMsg = StartCon(Lpt) Er1 = ErrorMsg ErrorMsg = Transmit(Lpt, A1) Er2 = ErrorMsg ErrorMsg = Transmit(Lpt, A2) Er3 = ErrorMsg ErrorMsg = Transmit(Lpt, A3) Er4 = ErrorMsg ErrorMsg = StopCon(Lpt) Er5 = ErrorMsg Fehlertitel$ = " DAC 6: Fehler = " + Str$(Er1) + Str$(Er2) + Str$(Er3) + Str$(Er4) + Str$(Er5) + " = " ZS$ = Chr$(13) + Chr$(10) 'Zeilenschaltung für neue Zeile bei Multiline-Text If Er1 = 0 Then ErT1$ = " Startbeding.: Kein Fehler" If Er1 = 1 Then ErT1$ = " Startbeding.: IIC-Bus nicht frei" If Er1 = 2 Then ErT1$ = " Startbeding.: kein Acknowledge (ACK) empfangen" If Er1 = 3 Then ErT1$ = " Startbeding.: Stopbedingung nicht generierbar" If Er1 = 4 Then ErT1$ = " Startbeding.: IIC-Bus hat keine Spannung" If Er1 = 5 Then ErT1$ = " Startbeding.: IIC-Interface nicht verbunden" If Er1 = 6 Then ErT1$ = " Startbeding.: Unklarer Fehler" If Er2 = 0 Then ErT2$ = " Datenbyte 1: Kein Fehler" If Er2 = 1 Then ErT2$ = " Datenbyte 1: IIC-Bus nicht frei" If Er2 = 2 Then ErT2$ = " Datenbyte 1: kein Acknowledge (ACK) empfangen" If Er2 = 3 Then ErT2$ = " Datenbyte 1: Stopbedingung nicht generierbar" If Er2 = 4 Then ErT2$ = " Datenbyte 1: IIC-Bus hat keine Spannung" If Er2 = 5 Then ErT2$ = " Datenbyte 1: IIC-Interface nicht verbunden" If Er2 = 6 Then ErT2$ = " Datenbyte 1: Unklarer Fehler" If Er3 = 0 Then ErT3$ = " Datenbyte 2: Kein Fehler" If Er3 = 1 Then ErT3$ = " Datenbyte 2: IIC-Bus nicht frei" If Er3 = 2 Then ErT3$ = " Datenbyte 2: kein Acknowledge (ACK) empfangen" If Er3 = 3 Then ErT3$ = " Datenbyte 2: Stopbedingung nicht generierbar" If Er3 = 4 Then ErT3$ = " Datenbyte 2: IIC-Bus hat keine Spannung" If Er3 = 5 Then ErT3$ = " Datenbyte 2: IIC-Interface nicht verbunden" If Er3 = 6 Then ErT3$ = " Datenbyte 2: Unklarer Fehler" If Er4 = 0 Then ErT4$ = " Datenbyte 3: Kein Fehler" If Er4 = 1 Then ErT4$ = " Datenbyte 3: IIC-Bus nicht frei" If Er4 = 2 Then ErT4$ = " Datenbyte 3: kein Acknowledge (ACK) empfangen" If Er4 = 3 Then ErT4$ = " Datenbyte 3: Stopbedingung nicht generierbar" If Er4 = 4 Then ErT4$ = " Datenbyte 3: IIC-Bus hat keine Spannung" If Er4 = 5 Then ErT4$ = " Datenbyte 3: IIC-Interface nicht verbunden" If Er4 = 6 Then ErT4$ = " Datenbyte 3: Unklarer Fehler" If Er5 = 0 Then ErT5$ = " Stopbeding.: Kein Fehler" If Er5 = 1 Then ErT5$ = " Stopbeding.: IIC-Bus nicht frei" If Er5 = 2 Then ErT5$ = " Stopbeding.: kein Acknowledge (ACK) empfangen" If Er5 = 3 Then ErT5$ = " Stopbeding.: Stopbedingung nicht generierbar" If Er5 = 4 Then ErT5$ = " Stopbeding.: IIC-Bus hat keine Spannung" If Er5 = 5 Then ErT5$ = " Stopbeding.: IIC-Interface nicht verbunden" If Er5 = 6 Then ErT5$ = " Stopbeding.: Unklarer Fehler" Statustext.Text = " Übertragene Werte = " + Str$(A1) + Str$(A2) + Str$(A3) Fehlertext.Text = Fehlertitel$ + ZS$ + ErT1$ + ZS$ + ErT2$ + ZS$ + ErT3$ + ZS$ + ErT4$ + ZS$ + ErT5$ End Sub Sub ServoScroll7_Change () DacAdress = 6 'das gleiche für den 7. DAC im TDA8444 'siehe ServoScroll1 DacWert = ServoScroll7.Value A1 = 64 + (ChipAdress * 2) A2 = 240 + DacAdress A3 = DacWert ErrorMsg = StartCon(Lpt) Er1 = ErrorMsg ErrorMsg = Transmit(Lpt, A1) Er2 = ErrorMsg ErrorMsg = Transmit(Lpt, A2) Er3 = ErrorMsg ErrorMsg = Transmit(Lpt, A3) Er4 = ErrorMsg ErrorMsg = StopCon(Lpt) Er5 = ErrorMsg Fehlertitel$ = " DAC 7: Fehler = " + Str$(Er1) + Str$(Er2) + Str$(Er3) + Str$(Er4) + Str$(Er5) + " = " ZS$ = Chr$(13) + Chr$(10) 'Zeilenschaltung für neue Zeile bei Multiline-Text If Er1 = 0 Then ErT1$ = " Startbeding.: Kein Fehler" If Er1 = 1 Then ErT1$ = " Startbeding.: IIC-Bus nicht frei" If Er1 = 2 Then ErT1$ = " Startbeding.: kein Acknowledge (ACK) empfangen" If Er1 = 3 Then ErT1$ = " Startbeding.: Stopbedingung nicht generierbar" If Er1 = 4 Then ErT1$ = " Startbeding.: IIC-Bus hat keine Spannung" If Er1 = 5 Then ErT1$ = " Startbeding.: IIC-Interface nicht verbunden" If Er1 = 6 Then ErT1$ = " Startbeding.: Unklarer Fehler" If Er2 = 0 Then ErT2$ = " Datenbyte 1: Kein Fehler" If Er2 = 1 Then ErT2$ = " Datenbyte 1: IIC-Bus nicht frei" If Er2 = 2 Then ErT2$ = " Datenbyte 1: kein Acknowledge (ACK) empfangen" If Er2 = 3 Then ErT2$ = " Datenbyte 1: Stopbedingung nicht generierbar" If Er2 = 4 Then ErT2$ = " Datenbyte 1: IIC-Bus hat keine Spannung" If Er2 = 5 Then ErT2$ = " Datenbyte 1: IIC-Interface nicht verbunden" If Er2 = 6 Then ErT2$ = " Datenbyte 1: Unklarer Fehler" If Er3 = 0 Then ErT3$ = " Datenbyte 2: Kein Fehler" If Er3 = 1 Then ErT3$ = " Datenbyte 2: IIC-Bus nicht frei" If Er3 = 2 Then ErT3$ = " Datenbyte 2: kein Acknowledge (ACK) empfangen" If Er3 = 3 Then ErT3$ = " Datenbyte 2: Stopbedingung nicht generierbar" If Er3 = 4 Then ErT3$ = " Datenbyte 2: IIC-Bus hat keine Spannung" If Er3 = 5 Then ErT3$ = " Datenbyte 2: IIC-Interface nicht verbunden" If Er3 = 6 Then ErT3$ = " Datenbyte 2: Unklarer Fehler" If Er4 = 0 Then ErT4$ = " Datenbyte 3: Kein Fehler" If Er4 = 1 Then ErT4$ = " Datenbyte 3: IIC-Bus nicht frei" If Er4 = 2 Then ErT4$ = " Datenbyte 3: kein Acknowledge (ACK) empfangen" If Er4 = 3 Then ErT4$ = " Datenbyte 3: Stopbedingung nicht generierbar" If Er4 = 4 Then ErT4$ = " Datenbyte 3: IIC-Bus hat keine Spannung" If Er4 = 5 Then ErT4$ = " Datenbyte 3: IIC-Interface nicht verbunden" If Er4 = 6 Then ErT4$ = " Datenbyte 3: Unklarer Fehler" If Er5 = 0 Then ErT5$ = " Stopbeding.: Kein Fehler" If Er5 = 1 Then ErT5$ = " Stopbeding.: IIC-Bus nicht frei" If Er5 = 2 Then ErT5$ = " Stopbeding.: kein Acknowledge (ACK) empfangen" If Er5 = 3 Then ErT5$ = " Stopbeding.: Stopbedingung nicht generierbar" If Er5 = 4 Then ErT5$ = " Stopbeding.: IIC-Bus hat keine Spannung" If Er5 = 5 Then ErT5$ = " Stopbeding.: IIC-Interface nicht verbunden" If Er5 = 6 Then ErT5$ = " Stopbeding.: Unklarer Fehler" Statustext.Text = " Übertragene Werte = " + Str$(A1) + Str$(A2) + Str$(A3) Fehlertext.Text = Fehlertitel$ + ZS$ + ErT1$ + ZS$ + ErT2$ + ZS$ + ErT3$ + ZS$ + ErT4$ + ZS$ + ErT5$ End Sub Sub ServoScroll8_Change () DacAdress = 7 'das gleiche für den 8. DAC im TDA8444 'siehe ServoScroll1 DacWert = ServoScroll8.Value A1 = 64 + (ChipAdress * 2) A2 = 240 + DacAdress A3 = DacWert ErrorMsg = StartCon(Lpt) Er1 = ErrorMsg ErrorMsg = Transmit(Lpt, A1) Er2 = ErrorMsg ErrorMsg = Transmit(Lpt, A2) Er3 = ErrorMsg ErrorMsg = Transmit(Lpt, A3) Er4 = ErrorMsg ErrorMsg = StopCon(Lpt) Er5 = ErrorMsg Fehlertitel$ = " DAC 8: Fehler = " + Str$(Er1) + Str$(Er2) + Str$(Er3) + Str$(Er4) + Str$(Er5) + " = " ZS$ = Chr$(13) + Chr$(10) 'Zeilenschaltung für neue Zeile bei Multiline-Text If Er1 = 0 Then ErT1$ = " Startbeding.: Kein Fehler" If Er1 = 1 Then ErT1$ = " Startbeding.: IIC-Bus nicht frei" If Er1 = 2 Then ErT1$ = " Startbeding.: kein Acknowledge (ACK) empfangen" If Er1 = 3 Then ErT1$ = " Startbeding.: Stopbedingung nicht generierbar" If Er1 = 4 Then ErT1$ = " Startbeding.: IIC-Bus hat keine Spannung" If Er1 = 5 Then ErT1$ = " Startbeding.: IIC-Interface nicht verbunden" If Er1 = 6 Then ErT1$ = " Startbeding.: Unklarer Fehler" If Er2 = 0 Then ErT2$ = " Datenbyte 1: Kein Fehler" If Er2 = 1 Then ErT2$ = " Datenbyte 1: IIC-Bus nicht frei" If Er2 = 2 Then ErT2$ = " Datenbyte 1: kein Acknowledge (ACK) empfangen" If Er2 = 3 Then ErT2$ = " Datenbyte 1: Stopbedingung nicht generierbar" If Er2 = 4 Then ErT2$ = " Datenbyte 1: IIC-Bus hat keine Spannung" If Er2 = 5 Then ErT2$ = " Datenbyte 1: IIC-Interface nicht verbunden" If Er2 = 6 Then ErT2$ = " Datenbyte 1: Unklarer Fehler" If Er3 = 0 Then ErT3$ = " Datenbyte 2: Kein Fehler" If Er3 = 1 Then ErT3$ = " Datenbyte 2: IIC-Bus nicht frei" If Er3 = 2 Then ErT3$ = " Datenbyte 2: kein Acknowledge (ACK) empfangen" If Er3 = 3 Then ErT3$ = " Datenbyte 2: Stopbedingung nicht generierbar" If Er3 = 4 Then ErT3$ = " Datenbyte 2: IIC-Bus hat keine Spannung" If Er3 = 5 Then ErT3$ = " Datenbyte 2: IIC-Interface nicht verbunden" If Er3 = 6 Then ErT3$ = " Datenbyte 2: Unklarer Fehler" If Er4 = 0 Then ErT4$ = " Datenbyte 3: Kein Fehler" If Er4 = 1 Then ErT4$ = " Datenbyte 3: IIC-Bus nicht frei" If Er4 = 2 Then ErT4$ = " Datenbyte 3: kein Acknowledge (ACK) empfangen" If Er4 = 3 Then ErT4$ = " Datenbyte 3: Stopbedingung nicht generierbar" If Er4 = 4 Then ErT4$ = " Datenbyte 3: IIC-Bus hat keine Spannung" If Er4 = 5 Then ErT4$ = " Datenbyte 3: IIC-Interface nicht verbunden" If Er4 = 6 Then ErT4$ = " Datenbyte 3: Unklarer Fehler" If Er5 = 0 Then ErT5$ = " Stopbeding.: Kein Fehler" If Er5 = 1 Then ErT5$ = " Stopbeding.: IIC-Bus nicht frei" If Er5 = 2 Then ErT5$ = " Stopbeding.: kein Acknowledge (ACK) empfangen" If Er5 = 3 Then ErT5$ = " Stopbeding.: Stopbedingung nicht generierbar" If Er5 = 4 Then ErT5$ = " Stopbeding.: IIC-Bus hat keine Spannung" If Er5 = 5 Then ErT5$ = " Stopbeding.: IIC-Interface nicht verbunden" If Er5 = 6 Then ErT5$ = " Stopbeding.: Unklarer Fehler" Statustext.Text = " Übertragene Werte = " + Str$(A1) + Str$(A2) + Str$(A3) Fehlertext.Text = Fehlertitel$ + ZS$ + ErT1$ + ZS$ + ErT2$ + ZS$ + ErT3$ + ZS$ + ErT4$ + ZS$ + ErT5$ End Sub