Forum: Mikrocontroller und Digitale Elektronik USB Controller in Assembler programmieren


von eagle_eye (Gast)


Lesenswert?

Hallo,
Ich habe eine Frage zu einem Thema dass mich schon lange beschäftigt und 
hoffe ihr könnt mir dabei helfen.

Mein Ziel ist eigentlich ein recht überschaubares: Ich möchte per USB 
einige Schalter an den PC anschliesen, so das ich diese wie die Knöpfe 
eines Gamepads nutzen kann. Da ich mit der Programmierung von Treibern 
oder PC Programmen keine Erfahrung habe sollte das ganze möglichst als 
HID device erkannt werden.

Vor einiger Zeit hatte ich das schon mit einem Atmega8U2 probiert bin 
aber gescheitert. Desshalb habe ich mir jetzt ein Atmel evakuations 
board (At90USBKEY)gekauft. Auf dem board sitzt ein At90USB1287. Da ich 
das ganze auf einer eigenen Platine haben möchte habe ich auch noch ein 
paar AT90USB162 dazu gekauft die später im fertigen Projekt verbaut 
werden sollen.

Mein Problem ist es jetzt, dass ich nur die Assembler Programmierung 
beherrsche und alle Codebeispiele in C geschrieben sind. Daher fehlt mir 
der überblick was der Controller wann und wie machen muss und wo die 
daten für endpoints usw. abgelegt werden müssen.

Wenn also schon jemand ein ähnliches Projekt umgesetzt hat oder 
Erfahrungswerte mit USB vorzuweisen hat wäre ich über eine Nachricht 
oder Hilfestellung sehr dankbar.

von St W. (hallohallo)


Lesenswert?

eagle_eye schrieb:

>
> Mein Problem ist es jetzt, dass ich nur die Assembler Programmierung
> beherrsche und alle Codebeispiele in C geschrieben sind.
>

Ich denke mit Assembler kommst du heute nicht mehr weit...
Ich würde C lernen...

z.B. hier http://openbook.galileocomputing.de/c_von_a_bis_z/
auch als Download
download.galileo-press.de/openbook/c_von_a_bis_z/galileocomputing_c_von_ 
a_bis_z.zip

von Ultraschall (Gast)


Lesenswert?

eagle_eye schrieb:
> Mein Problem ist es jetzt, dass ich nur die Assembler Programmierung
> beherrsche und alle Codebeispiele in C geschrieben sind.

Je nachdem wieviel Erfahrung du sonst so mit der Programmierung hast, 
kannst du ja den vorhandenen C Code eventuell "lesen". Das sollte 
eigentlich auch ohne größere C Kenntnisse machbar sein. Ansonsten 
könntest du natürlich kompilieren und dir die generierten Listings 
ansehen.

Persönlich bin ich davon überzeugt, dass C "gut" genug ist, um unsere 
kleinen Mikrocontroller zu programmieren. Nebenbei kommt man damit 
schneller zu einem brauchbaren Ergebnis, der Code ist lesbarer und 
dadurch einfacher zu warten.

Aber ich finde das AVR Tutorial auf dieser Seite zeigt eindrucksvoll, 
dass man auch halbwegs vernünftig und überschaubar in Assembler 
programmieren kann.

Ich will hier aber nicht die klasssische "Assembler vs C" Diskussion vom 
Stapel treten, aber geschadet hat es glaub ich noch niemanden beides zu 
"können". Was du dann letztendlich einsetzt bleibt dir überlassen.

von Reiner O. (elux)


Lesenswert?

eagle_eye schrieb:
> Mein Ziel ist eigentlich ein recht überschaubares: Ich möchte per USB
> einige Schalter an den PC anschliesen, so das ich diese wie die Knöpfe
> eines Gamepads nutzen kann. Da ich mit der Programmierung von Treibern
> oder PC Programmen keine Erfahrung habe sollte das ganze möglichst als
> HID device erkannt werden.

Na, dann sieh Dir mal diese Seite an : 
http://www.codemercs.com/controller0/?L=0

MfG
Elux

von Wilhelm F. (Gast)


Lesenswert?

eagle_eye schrieb:

> Mein Problem ist es jetzt, dass ich nur die Assembler Programmierung
> beherrsche und alle Codebeispiele in C geschrieben sind.

Mit (8051-)Assembler fing ich auch mal an. Sich in die Grundlagen von C 
einarbeiten, ist gar nicht so heftig. Die eleganten Dinge in C sind 
beispielsweise auch Datenstrukturen. Eine Hochsprache vereinfacht sehr 
sehr vieles gegenüber Assembler. Alleine Rechnungen. In C macht man mal 
einfach: c=a*b. In Assembler rufst du dann nach und nach die Funktionen 
auf, die du auch selbst erstelltest, mußt das manuell zusammen stricken, 
oder gefunden zumindest anpassen.

Inzwischen bin ich so fit, daß ich Code problemlos zwischen Assembler 
und C hin und her umschreibe, wenn es nötig ist. Allerdings nur für den 
Assenbler, den ich mit links beherrsche, den 8051.

Meine DCF77-Uhr, die ich vor 15 Jahren in 8051-Assembler baute, ist noch 
eine Baustelle, Aber zu 80% in C um portiert. Die sollte auch mal auf 
anderen Plattformen laufen, z.B. ARM. Teilweise ging das nur über den 
Umweg Struktogramme, aber das eignete ich mir auch mal an, das sitzt.

von Ralph (Gast)


Lesenswert?

Sieh die mal das hier an:
http://www.codemercs.com/io-warrior/?L=0

Sollte ungefähr das sein was du machen willst, nur schon in fertig.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.