SWUSB - Atmega/Tiny direkt als USB Controller - Fehler beim kompilieren mit der akt. Bascom Version

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • SWUSB - Atmega/Tiny direkt als USB Controller - Fehler beim kompilieren mit der akt. Bascom Version

      Hallo und ein gesundes neues Jahr Euch allen, a_475_f10f3094
      ich lese seit einiger Zeit aufmerksam viele Themen mit, auch wenn ich vieles noch nicht so ganz verstehe.

      Nun habe ich ein kleines Projekt begonnen, bei dem ich schon am Anfang auf ein Problem gestoßen bin.

      Vielleicht können mit die Profis a_58_b54cfdb4 etwas unter die Arme greifen.

      Ich wollte einen USB-Joystick Controller verwenden, um für meinen Sohnemann eine Gangschaltung für sein Rennspiel zu basteln.

      Da ich noch einige AtMega's hier herumliegen habe, dachte ich mir, warum beim Chinesen einen fertigen HID-USB Joystick Controller kaufen, wenn man das selbst mit einem Atmega machen kann.

      Im Internet bin ich dann auf folgende Seite gestoßen: USB-Joystick

      Man kann einen Atmega/Tiny direkt als USB Controller für Ein/Ausgabe mit der LIB verwenden.

      Mit dem Code wird ein USB Joystick emuliert, Beispielcode ist auf der Seite vorhanden, die LIB ist von Rick Richards, welche auf einer anderen Seite SWUSB zu finden sind, welche dort verlinkt ist.




      Man kann ebenfalls eine Tastatur und eine Maus simulieren, falls sich dafür noch andere interessieren.



      Es gibt bereits fertige Bascom Programme als Download zur Verfügung gestellt.



      Herrn Kainka, der die Homepage Elektronik Labor für andere Projekte zur Verfügung stellt, konnte mir leider nicht weiterhelfen,

      Herrn Beesner welcher den Code abgeändert hatte, ist nicht aufzufinden, auch Herr Richards nicht.

      Nun zu meinem Problem:

      Es scheint so, als das es mit einer früheren Version von Bascom ging...
      Leider lassen sich diese nicht mit der aktuelle Vollversion von Bascom kompilieren, da 3 Fehlermeldungen auftauchen, mit denen ich nicht allzuviel anfangen kann:


      Error : 380 Line : 583 Array<>Non Array mismatch [TXSTATE(I),TXSTATE] , in File : D:\Downloads\swusb-joysticks-soft\usb-joystick-m8-2ax-4btn.bas
      Error : 380 Line : 615 Array<>Non Array mismatch [TXSTATE(3),TXSTATE] , in File : D:\Downloads\swusb-joysticks-soft\usb-joystick-m8-2ax-4btn.bas
      Error : 229 Line : 615 End Sub or End Function expected [> 3] , in File : D:\Downloads\swusb-joysticks-soft\usb-joystick-m8-2ax-4btn.bas



      Wenn ich es richtig verstehe, müsste man "TXSTATE als ein Array definieren? ?(
      Ich bin da absolut überfragt, mit Arrays hatte ich nocht nicht viel zu tun, und ich weiß nicht wie das in der LIB gehandhabt wird, wenn ich "TXSTATE" als ein Array konvertiere, oder wie das gehehn sollte... a_67_e210de67


      Vielleicht könnt Ihr mir ja etwas unter die Arme greifen...

      Viele Grüße Stefan

      The post was edited 1 time, last by Tester2 ().

    • Hallo,
      das Programm ist nicht von mir (von Herrn Beesner) wie oben geschrieben, aber ich kann es gerne posten.
      Bitte daran denken das auch die Bibliothek swusb.lbx dazu benötigt wird, welche in den Bascom LIB Ordner kopiert werden muss.

      Was mir aufgefallen ist, das die swusb-inculdes nicht im Hauptprogramm integriert ist als

      $include "swusb-includes.bas"

      Wenn ich diese einfüge, werden andere Fehlermeldungen angezeigt:

      Error : 222 Line : 87 Illegal character [expected (, got ')' [(2 ^ _USB_DPLUS) +(2 ^ _USB_DMINUS)]] , in File : swusb-includes.bas
      Error : 222 Line : 89 Illegal character [expected (, got '=' [_USB_POWERED = &HC0]] , in File : swusb-includes.bas
      Error : 326 Line : 89 #ENDIF expected , in File : swusb-includes.bas

      a_27_b277ca12
      Files

      The post was edited 4 times, last by Tester2 ().

    • Hallo Michael,
      vielen Dank für die schnelle Antwort, ich sehe Du bist der Profi den ich suche...

      habe versucht es zu verstehen, ich bin, glaube ich, zu blöde dafür...

      Ich nehme den Original Bascom-Quellcode "USB Gamepad"

      speichere die Datei ab, füge die "swusb-includes.bas" in den selben Ordner mit ein.


      Was mache ich mit den zwei *.inc Dateien von Dir welche ich vom mcselec Forum habe?

      Muss ich noch in dem Original Quellcode oder der SWUSB.LBX etwas ändern?

      Ich steh grade auf em Schlauch 8|

      In der "swusb_declarations.inc"


      steht noch
      'USB Vendor ID and Product ID (Assigned by USB-IF)
      '(
      Meine!!! Pid Vid
      Vid 16d0
      Pid Ff8f
      ')
      Const _usb_vid = $16d0 '&HAAAA
      Const _usb_pid = $ff8f '&HEF22


      Das sind Deine USB-HID Parameter?



      Grüß Dich, Stefan
    • Hi,
      die swusb.LBX in das "lib" Verzeichnis deiner Bascom Installation.
      Alle anderen Dateien in einen Ordner deiner Wahl.
      Datei USB.bas mit Bascom öffnen und kompilieren.

      Die VID/PID ist tatsächlich MEINE registrierte VID/PID Kombination!

      Du musst die Datei USB.bas und swusb_declarations.inc mit den Daten aus usb-joystick-m8-2ax-4btn.bas anpassen, dann geht es.
      Ich hatte die "Grunddatei" irgendwann mal zerlegt in mehrere Dateien, damit es übersichtlicher wird; sorry :D
      Files
      • USB.zip

        (14.33 kB, downloaded 12 times, last: )
      Code first, think later - Natural programmer :D