- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 83

Thema: Nunchuk + Bascom + Atmega8 . Brauche hilfe :-)

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #34
    Hallo Leute!
    Ich bin neu hier und hab mir so einiges angelesen, programmiert und so...
    Klasse Sache so ein Atmel!
    Bisher haben meine Programme alle funktioniert. nun hab ich mir mal den Nunchuk vorgenommen. Ich hab vor, ihn als Steuerung für Roboter etc zu verwenden.So weit bin ich noch lange nicht, erstmal muss das Ding Werte liefern, mit denen man arbeiten kann.
    Irgendwas mach ich falsch. Sämtliche versionen des Programms aus dem Thread hab ich durch. Es kommen keine Werte an!

    Hier der letztgenannte Code, ein wenig abgeändert.
    An Port D hingen eh einige LEDs rum. Die CLK und DAT hab ich an Port D 4/5 Wahlweise wird mit Levelshifter und 3,3V oder ohne Levelshifter und mit 5,0V getestet. Ergebnis immer gleich.

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $baud = 9600
    $hwstack = 32
    $swstack = 32
    $framesize = 32
    
    $lib "i2c_twi.lbx"
    
    Config Portd.4 = Output                                     ' Port d.4/5/6 LEDs - für Startsequenz / Statusanzeige
    Config Portd.5 = Output                                     '
    Config Portd.6 = Output
    
    
    Config Scl = Portc.5
    Config Sda = Portc.4
    Config Twi = 100000
    I2cinit
    
    Const Nunchuck_write = &HA4
    Const Nunchuck_read = &HA5
    
    Dim Buffer(16) As Byte
    Dim Joy_x As Byte
    Dim Joy_y As Byte
    Dim Accel_x As Integer
    Dim Accel_y As Integer
    Dim Accel_z As Integer
    Dim Buttons As Byte
    Dim But_c As Byte
    Dim But_z As Byte
    
    
    Waitms 250
    
    ' Startausgabe
    Portd.4 = 1                                                 'alle LED aus
    Portd.5 = 1
    Portd.6 = 1
    Waitms 5000                                                 'led nacheinander einschalten
    Portd.4 = 0
    Waitms 500
    Portd.5 = 0
    Waitms 500
    Portd.6 = 0
    
    Print "--- nunchuk ---"
    Print " "
    Print "Nunchuk Init"
        I2cstart
        I2cwbyte Nunchuck_write
        I2cwbyte &H40
        If Err <> 0 Then
          Print "Error data sending"
        End If
        I2cwbyte &H00
        If Err <> 0 Then
          Print "Error data sending"
        End If
        I2cstop
        If Err <> 0 Then
          Print "Error IC2 Stop"
        End If
    Waitms 250
    
    Print "Nunchack Init finished"
    Waitms 250
    Print "Nunchuck active"
    
    Do
       Gosub Nunchuk_read
       Print Accel_x ; "," ; Accel_y , ; "," ; Accel_z ; "," ; Joy_x ; "," ; Joy_y ; "," ; Buttons.0 ; "," ; Buttons.1
    
       Waitms 500
    Loop
    
    End
    
    Nunchuk_read:
       Dim I As Byte
       Dim Tmp As Byte
    
       I2cstart
       I2cwbyte Nunchuck_write
       I2cwbyte &H00
        If Err <> 0 Then
          Print "Error data sending"
        End If
       I2cstop
    
       Waitms 5
       Buffer(1) = 0
       I2creceive Nunchuck_read , Buffer(1) , 0 , 6
       If Err <> 0 Then
         Print "Error data receving"
       End If
    
       For I = 1 To 6
          Tmp = Buffer(i) Xor &H17
          Tmp = Tmp + &H17
          Buffer(i) = Tmp
       Next I
    
       Joy_x = Buffer(1)
       Joy_y = Buffer(2)
       Accel_x = Buffer(3) * 4
       Accel_y = Buffer(4) * 4
       Accel_z = Buffer(5) * 4
    
       Buttons = Buffer(6)
    
       If Buttons.2 = 1 Then Accel_x = Accel_x + 1
       If Buttons.3 = 1 Then Accel_x = Accel_x + 2
       If Buttons.4 = 1 Then Accel_y = Accel_y + 1
       If Buttons.5 = 1 Then Accel_y = Accel_y + 2
       If Buttons.6 = 1 Then Accel_z = Accel_z + 1
       If Buttons.7 = 1 Then Accel_z = Accel_z + 2
    
    Return
    und DAS kommt im Terminal an:

    Code:
    Nunchuk Init
    Error data sending
    Error data sending
    Error IC2 Stop
    Nunchack Init finished
    Nunchuck active
    Error data sending
    Es scheint NICHTS zu funktionieren. Warum?
    JTAG ist ausgefust, sonst gingen die i2C-Ports nicht.
    Der Nunchuk ist per Isakartenadapter angeschlossen. Sowohl mit Levelshifter als auch ohne ist das Ergebnis gleich.
    Geändert von Matahalii (18.03.2011 um 20:14 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress