Hi!
Hab meine C-.Control seit monaten ausgepackt weil ich ultra viel zu tun hatte
Ich hab alle kabel zu den Ports angeschlossen und auf start gedrückt... hat sich nichts gerührt ...
ich hab den SDA an Port1 und SCL an Port2 gehängtund andersrum .. nicht hat sich gerührt ..
dann bin ich drauf gekommen das ich SDA an 5v und SCL an port1 gehängt hab und dann andersrum
kann der SD20 chip dadurch defekt werden? habs noch immer nicht zum laufen bekommen
Code:'*********************************************************** '* Ansteuerung von bis zu 20 Servos mit dem SD20 * '* über den I2C Bus. * '* das Programm dreht den Servo am Servo PIN 1 des SD20 * '* und liest den Register 0 (Version) um die Vorgänge * '* zu demonstrieren. * '* (ohne Expanded Mode) * '*********************************************************** '*********** Ports für den I2C Bus************************** define SDA Port[15] define SCL Port[16] define I2C_Daten byte define N byte 'Schleifenvariable define Startbyte byte define Kommandobyte byte define ServoNummer byte define ServoWinkel byte 'I2C Bus Ruhezustand SDA=ON SCL=ON '*********** Hauptprogramm******************************** #Main Get Startbyte ' Startbyte von der seriellen Schnittstelle If Startbyte <> 97 Then Goto Main ' Schleife, solang bis ein Startbyte empfangen wurde If Startbyte = 97 Then Goto KlasseA ' falls Kommandobyte = asci(97)="a" springe zur #KlasseA #KlasseA ' Klasse A: Servodirektsteuerung get ServoNummer ' Nummer des anzusteuernden Servos von der seriellen Schnittstelle empfangen get ServoWinkel ' Winkel des anzusteuernden Servos von der seriellen Schnittstelle empfangen Gosub ServoStellen Goto Main #ServoStellen gosub I2C_Start ' I2C-Startbedingung I2C_Daten=194 ' Adresse des SD20 am I2C Bus gosub I2C_Write ' Adresse übertragen I2C_Daten = ServoNummer ' Register des Servos, der angesprochen werden soll schreiben gosub I2C_Write ' Register übertragen I2C_Daten = ServoWinkel ' Winkel auf den dieser Servo drehen soll schreiben gosub I2C_Write ' Winkel schreiben gosub I2C_Stop ' I2C-Stopbedingung. Return '*********** I2C Bus Standard Routinen******************** #I2C_Start SDA=OFF SCL=OFF return #I2C_Stop SDA=OFF SCL=ON SDA=ON return #I2C_Write for N=1 to 8 ' 8 Bit schreiben in For-Next-Schleife SDA=OFF if (I2C_Daten and 128) =128 then SDA=ON pulse SCL I2C_Daten=I2C_Daten shl 1 next pulse SCL Return #I2C_Read I2C_Daten=0 deact SDA for n=1 to 8 ' 8 Bit lesen in For-Next-Schleife I2C_Daten=I2C_Daten shl 1 SCL=ON if SDA then I2C_Daten=I2C_Daten+1 SCL=OFF next Return #Ack SDA=0 pulse SCL return #NoAck SDA=1 pulse SCL return







Zitieren

Lesezeichen