Hier der zweite Teil, den ich voraussichtlich demnächst brauche. Den Hardware-Teil gibts hier: Beitrag "Controller via USB an Computer: Wie am besten?" Es geht um den Datenaustausch zwischen PC und µC, den ich irgendwie hinkriegen muß. Alte DOS-PCs und RS232 sind tot - verdammt, hätte locker gereicht und das hätte ich gekonnt - also muß ich es mit USB und Windows hinkriegen... und das bedeutet eine Variante von C lernen. Mich gleich erhängen wäre auch eine Alternative, aber ich will's wenigstens versucht haben. Hat jemand Erfahrung auf diesem Gebiet und auch die Lust, mir beim Einstieg in dieses Thema zu helfen? Ich bin gut in Assembler und PHP, man liest immer C sei ähnlich zu PHP, aber immer wenn ich was mit C probiert habe, hatte ich massive Probleme damit, vor allem was die Syntax angeht oder mit Compiler-Fehlermeldungen. Aber vielleicht kann jemand darauf aufbauend einen Compiler empfehlen, der mir liegen könnte. Was ich brauche sind so Standard-Eingabefelder, Buttons, evtl. Tabellen/Scollbars. Kein 3D, kein Sound, keine störenden Extras, evtl. die Möglichkeit das Fenster farblich zu gestalten oder im Fenster einfachste Grafiken zu malen. Das Programm sollte mit Windows 7 32bit aufwärts kompatibel sein, also bin Windows 10 oder was immer da noch kommt und egal ob 32 oder 64 bit. Die USB-Kommunikation braucht nicht besonders schnell zu sein, einfach und robust reicht für die zu erwartenden Datenmengen locker aus. Bekommt man da irgendwas zustande, daß man "seinen" Controller am USB findet und mit ihm Daten austauschen kann, ohne einen extra Treiber installieren zu müssen? Also reichen die Windows-Bordmittel dafür aus? Die Programmiersprache sollte eine Variante von C sein. Wenn ich das schon lernen muß, dann hoffentlich auf eine Weise, daß es mir bei der PC-Programmierung und bei der Programmierung größerer µCs (Richtung STM32 bzw. ARM Cortex) nutzt. Für beides völlig verschiedene Lösungen lernen wäre hoher Aufwand, der sich evtl. vermeiden lässt. Danke schon mal, auch für die vielen Fragen, die da leider noch kommen werden.
:
Bearbeitet durch User
Nimm einen USB to Seriell Adapter. Den kannst du an den Controller anschließen und dort die Daten seriel übertragen.
Danke Dir, das wäre die Notlösung für die nicht USB-fähigen AVRs, hilft mir aber nicht beim PC-Programm weiter.
Dafür braucht man kein C. Kann man auch in Visual Basic oder sogar in Excel machen.
Wenn es als µC ein PIC sein darf, kannst du dir ja mal die Seite von sprut.de anschauen. Da gibt es eine ganz brauchbare Einführung in C und die Grundlagen von USB. Von Microchip gibt es auch ein Framework, wo einige USB-Anwendungen drin sind.
Sorry, hast Du meinen Beitrag oben überhaupt gelesen? Ich brauche C für die Controller sowieso, denn die lassen sich nicht in VB oder Excel programmieren. Irgendeine vernünftige C-Variante mit Tips zur Verwendung bzw. zum Compilieren wäre schon schön, das hilft mir evtl. auch bei C für die Mikrocontroller weiter. Edit @Jens: Wenn anderer Controller als AVR dann irgendwas 32bittiges mit guter Zukunft. Eher kein PIC...
:
Bearbeitet durch User
Ben B. schrieb: > Die Programmiersprache sollte eine Variante von C sein. Wenn ich das > schon lernen muß, dann hoffentlich auf eine Weise, daß es mir bei der > PC-Programmierung und bei der Programmierung größerer µCs (Richtung > STM32 bzw. ARM Cortex) nutzt. C++, bzw. mehr oder weniger auch C, bloß in einer C++ Umgebung? Kannst ja mal da einen Blick drauf werfen, ob das in etwa in deine Richtung geht: http://www.hs-ulm.de/nocache/wir/Personal/PersonalSaSchr/vschilli/QtProjekte/
Wie schwer ist die USB-Kommunikation mit Qt oder C#?
Ben B. schrieb: > Wie schwer ist die USB-Kommunikation mit Qt oder C#? Zu C# kann ich nichts sagen. Bei Qt finde ich es persönlich recht einfach, wenn man ein funktionierendes Beispiel hat. USB ist auch nicht gleich USB. Das ist in verschiedenen Geräteklassen organisiert, von denen die am einfachsten ( bei neueren OS ohne zusätzliche Treiber) CDC, Kommunikation Device Classic (Vortrag COM Port wie z.B. die FTDI USBSerial Wandler) oder HID, Human Interface Device (Tastatur Mais, oder beliebige Geräte mit Datenraten < 64kBit/s)
Ben B. schrieb: > Wie schwer ist die USB-Kommunikation mit Qt oder C#? Mit C# kannst Du aber keine Controller programmieren. Kauf Dir ein gutes Buch zu C und mach erst mal einfache Consolenprogramme. Wenn Du dann so einigermaßen fit bist kannste Dich ja an ein einfaches GUI Progrämmle ran wagen. Als IDE würde ich Eclipse nehmen. Damit kannst Du einfache C-Programme - auch für den Controller - und C++ ebenso compilieren. Wenn Du dann in C/C++ fit bist kannst Du im Prinzip auch C#. Dafür wäre dann Visualstudio die geeignete IDE.
Beitrag #5730666 wurde vom Autor gelöscht.
> Mit C# kannst Du aber keine Controller programmieren.
Ok, mit Qt wahrscheinlich auch nicht.
C++ anyone?
64kbit/s wären prinzipiell erstmal genug, aber für USB ziemlich wenig,
vor allem wenn man in ein paar Jahren vielleicht doch mal größere
Datenmengen hat... Gibts da Luft nach oben oder muss man sich damit
begnügen wenn man es einfach haben möchte?
Ben B. schrieb: > Ok, mit Qt wahrscheinlich auch nicht. > > C++ anyone? Qt ist ein C++ Framework. Das liefert dir die passenden libs, um mittels C++ auf die Schnittstellen zuzugreifen. Denn die low-Level-Zugriffe willst du nicht selber basteln, egal, in welcher Sprache. Oliver
Ben B. schrieb: > Mit C# kannst Du aber keine Controller programmieren. > > Ok, mit Qt wahrscheinlich auch nicht. > > C++ anyone? > > 64kbit/s wären prinzipiell erstmal genug, aber für USB ziemlich wenig, > vor allem wenn man in ein paar Jahren vielleicht doch mal größere > Datenmengen hat... Gibts da Luft nach oben oder muss man sich damit > begnügen wenn man es einfach haben möchte? Wie Olli schon erwähnte, ist Qt C++. 64kBit/s sind einfach das Maximum für HID bei full Speed USB Geräten. Das hat zwar mit dem verwendeten Controller erst mal nichts zu tun, aber falls wirklich absehbar wäre, dass in naher Zukunft deutlich höhere Datenraten benötigt werden, sollte das durchaus in die Wahl des Controllers und der Geräteklasse einfließen!
:
Bearbeitet durch User
Ben B. schrieb: > Wie schwer ist die USB-Kommunikation mit Qt oder C#? Hier ein Beispiel für USB-UART Kommunikation mit Qt:
1 | QSerialPort port("COM3"); |
2 | port.setBaudRate(QSerialPort::Baud115200); |
3 | port.open(QIODevice::ReadWrite); |
4 | |
5 | // Send a message
|
6 | port.write("Hello\n"); |
7 | port.flush(); |
8 | |
9 | // Receive the answer (one line, wait max. 1s)
|
10 | QTime time; |
11 | time.start(); |
12 | while (!serialPort.canReadLine()) |
13 | {
|
14 | if (time.elapsed()>1000) |
15 | {
|
16 | break; |
17 | }
|
18 | QThread::msleep(10); |
19 | QCoreApplication::processEvents(); |
20 | }
|
21 | QByteArray response=serialPort.readAll().trimmed(); |
22 | |
23 | port.close(); |
Ben B. schrieb: > Ok, mit Qt wahrscheinlich auch nicht. QT ist C++. Du kannst also mit der gleichen Sprache auch gleich den Controller programmieren. Ein gutes(!) Buch wird dir sagen, auf welche Sprachfeatures du in Embedded-Umgebungen verzichten solltest.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.