Hallo zusammen, nach längerer µC Programmier Abstinenz (~7 Jahre) wollte ich ein kleines Projekt zur Programmierung eines PPM2USB Converters aufsetzen, um meine MX-20 mit Heli-X zu bedienen. Dies möchte ich gern unter Win10 mit Eclipse in C++ umsetzen. Wenn ich mir jedoch das letzte Release Datum des AVR-Plugin (2014) und WINAVR (2010)ansehe, frage ich mich, ob es "aktuellere" Kombinationen gibt oder dies problemlos arbeitet. Welches ist eine aktuelle Toolchain, inkl. make und avrdude? Als Programmer liegen AVRISP MKII oder ein JTAG ICE3 bereit. Wäre euch sehr dankbar, wenn ihr mich da auf den neusten Stand bringt und vor eventuellen Problemen warnt. Vielen Dank im voraus!
Hauke Haien schrieb: > C++? Arduino.cc Ebenso, aber ich hör sieh schon wieder sabbern, die Fortran-Rentner-Gang
jens m. schrieb: > Welches ist eine aktuelle Toolchain, inkl. make und avrdude? Es gibt inzwischen mehrere Toolchains, weil Atmel sich irgendwann mal von der Community Version ausgeklinkt hatte. Siehe http://stefanfrings.de/avr_tools/index.html Lass dich nicht durch das Datum vom BLOG Eintrag von Zak irritieren. Die Files die er dort zum Download bereit stellt sind neuer.
Nimm einen aktuellen gcc (9.3 oder 10.0), sowie make und QtCreator. Weiterhin einen AVR der tiny1 oder mega0 Serie (etwa attiny1614 oder atmega4808). Zum Programmieren per UPDI dann einen simplen USB/seriell-Wandler und pyupdi. Alles vollkommen unspektakulär.
AtmelStudio7 ******************************************* AVR-GCC 9.2.0 for Windows 32 and 64 bit ******************************************* -std=c++2a -fconcepts ******************************************* toolchain von ************** https://blog.zakkemble.net/avr-gcc-builds/ *******************************************
Ich denke mal er will die PPM Signale der 6 benötigten Kanäle als USB ausgeben, in welchem Format (oder Protokoll?) auch immer. Es geht nicht um USB zu seriell.
Philipp G. schrieb: > Ich denke mal er will die PPM Signale der 6 benötigten Kanäle als USB > ausgeben, in welchem Format (oder Protokoll?) auch immer. Es geht nicht > um USB zu seriell. Keine Ahnung, wie und was er will. Was Du nicht verstanden hast: ich bezog mich nur auf das flashen der aktuellen AVRs, denn er wollte etwas zur Toolchain für sein Vorhaben wissen.
Und da es noch keiner erwähnt hat, das Einfachste dürfte sein Atmel Studio 7 zu benutzen. Neben der AVR8 Toolchain bekommt man dann auch direkt die ganzen Includes. Der damit direkt verfügbare GCC ist zwar "nur" der 5.4.0, der is aber auch erst von 06/2016 und geht bis C11/C++14.
Wilhelm M. schrieb: > Keine Ahnung, wie und was er will. > > Was Du nicht verstanden hast: ich bezog mich nur auf das flashen der > aktuellen AVRs, denn er wollte etwas zur Toolchain für sein Vorhaben > wissen. Schon klar. Letzten Endes bleibt er sowieso bei C(++) hängen. Er will die 6 PPM Signale abgreifen. Wohl kaum über den HF Teil. Bleibt als nur der Empfänger. Von dort in einem ATMEGA 328 und daraus ein digitales Signal machen ist der kleinste Teil. Der schwierige Teil ist die Software, sofern diese nicht grad open source ist.
Rudolph R. schrieb: > Der damit direkt verfügbare GCC ist zwar "nur" der 5.4.0, der is aber > auch erst von 06/2016 und geht bis C11/C++14. Würde ich nicht machen. Viele schöne Sachen fehlen: https://en.cppreference.com/w/cpp/compiler_support Ist doch nur Hobby, da sollte das Ganze doch Spaß machen, und deshalb würde ich auch C++20 Features nutzen.
Philipp G. schrieb: > Schon klar. Letzten Endes bleibt er sowieso bei C(++) hängen. Das (C++) will er doch, s.o. Philipp G. schrieb: > Er will die 6 PPM Signale abgreifen. An seiner Stelle würde ich das SUMD-Signal nehmen. Philipp G. schrieb: > Der schwierige Teil ist > die Software, sofern diese nicht grad open source ist. Was Du nicht sagst ...
Atmel-ICE + Atmel Studio mit GCC. Da kann man sich dann aussuchen, ob man das Programm in C oder C++ schreibt
Hallo Leute, erstmal vielen Dank für eure vielen hilfreichen Antworten! Zur Klärung was ich eigentlich vorhabe: - ich möchte das PPM Signal (Summensignal SUMO) eines Empfängers via USB an einen Flugsimulator weiterleiten, indem ich ein HID-Joystick simulieren möchte. Und richtig, just for fun. MX-20 hat einen USB Port, soweit mir bekannt aber nur zum flashen der Firmware, bin mir aber nicht 100% sicher. Ich möchte aber ohne Strippe am Sim üben :-) Habe mich gestern auf Stefans Seite umgeschaut und mich entschlossen altbekannte Wege zu gehen, als auch seinen Empfehlungen zu folgen, d.h. - Toolchain von SysGCC - Editor Eclipse (hätte gern QT ausprobiert, war aber unsicher welche Version) - AVR-Plugin für Eclipse - AvrDude 6.3 Nach einer langen Nacht musste ich feststellen, dass die neueren Eclipse Versionen ab 2018 scheinbar Probleme mit dem AVR-Plugin haben. Erst mit Eclipse Mars lief ein C++ Testprogramm inkl. brennen problemlos. Brenner MKII jagt alles rasend schnell in den µC, das kenn ich noch ganz anders. JTAG ICE3 wird nach einem downgrade zwar erkannt, aber erkennt meinen Atmega328P einfach nicht, aber erstmal egal. Toolchain arbeitet angenehm unauffällig und tut was sie soll, super. Da Eclipse Mars im Dark Design gelegentlich patzt (Fehlfarben in der Console) und auch nicht mehr "state of the art" vermittelt, würde ich gern QT probieren. Welcher Version ist frei downloadbar und gibt es dazu auch ein AVR-Plugin, oder wie läuft es dort? Vielen Dank für eure Hilfe!
jens m. schrieb: > > Nach einer langen Nacht musste ich feststellen, dass die neueren Eclipse > Versionen ab 2018 scheinbar Probleme mit dem AVR-Plugin haben. Erst mit > Eclipse Mars lief ein C++ Testprogramm inkl. brennen problemlos. Ich benutze das AVR-Plugin aktuell mit der Eclipse-Version "2019 12" und habe damit keine Probleme, außer: - ich benutze eine eigene Eclipse (CDT) Installation für AVR, weil sich manche Plattformspezifische Plugins nicht wirklich vertragen - neu angelegte Projekte bekommen nicht mehr "AVR-Nature" zugewiesen, das muß ich dann (einmalig und trotz Warnungen) von Hand machen. Eventuell ist das bei dir auch das Problem. Leicht erkennbar an dem fehlenden AVR-Knoten in den Properties des Projekts. Der Vorteil neuerer CDT-Versionen: sie verstehen auch C++17, z.B. auch "user defined literals", was ich gerne für Zeiten/Frequenzen nutze.
1 | static constexpr auto TIMER0_INTERVAL = 1_mSec; |
2 | static constexpr auto TIMER0_FREQUENCE = 125_kHz; |
Da erkennt man gleich, worum es geht.
ja korrekt! Der AVR Knoten fehlt, unter anderem ... Es wurden auch mal beim Erstellen des Projektes µC und Frequenz abgefragt, aber einfach nicht übernommen, bei einer anderen Version wurde die Toolchain nicht gefunden. Alles unbefriedigend, da für mich nicht erkennbar ist, was noch alles nicht mehr korrekt zusammen arbeitet. Bei Fehlern schiebt man die Ursachen dann schnell auf die vermurkste Installation, obwohl ggf. woanders hingeschaut werden müsste. Sowas muss ich nicht haben.
Nimm einfach die aktuelle Version von Qt Creator.
jens m. schrieb: > ja korrekt! Der AVR Knoten fehlt, unter anderem ... > Es wurden auch mal beim Erstellen des Projektes µC und Frequenz > abgefragt, aber einfach nicht übernommen Das liegt am fehlenden AVR-Nature. Das kann man bei den Projekt-Properties nachpflegen und muß dann unter den nun vorhandenen AVR-Knoten Chip/Frequenz nachpflegen. > Alles unbefriedigend, da für mich nicht erkennbar ist, was noch alles > nicht mehr korrekt zusammen arbeitet. Als ich das das erste mal hatte, war ich auch leicht gefrustet, zumal alten Projekte weiter funktionierten. Inzwischen hab ich mich dran gewöhnt und wie gesagt, der Fehler ist einzig die Projekt-Neuanlage. > Bei Fehlern schiebt man die Ursachen dann schnell auf die vermurkste > Installation, obwohl ggf. woanders hingeschaut werden müsste. Sowas muss > ich nicht haben. Das Schöne ist, daß man mehrere Eclipse parallel installieren kann. Schnelles Internet vorausgesetzt kann man so schnell verifizieren. In Summe arbeite ich aber zu 99,n% mit und nicht an Eclipse ;-)
Also wenn du das jetzt neu anfängst und dir die Plattform egal ist: nimm einen STM32 und zwar aus folgenden Gründen: 1.) Du sparst dir das gefummel mit dem V-USB, das macht nur immer wieder Probleme, STM32 boards machen das nativ. 2.) Du kannst direkt dass PPM als HID an den PC weiterreichen -> kein zusätzlicher Treiber oder anderer Müll. Beim VUSB musst du noch einen Treiber für den PC schreiben, der das dann umsetzt und letztendlich das dann in geigneter Form als Input device zur Verfügung stellt. Nicht unbedingt jedermanns Sache und das würde ich nicht machen, wenn es auch einfacher geht. Der STM mit entsprechendem USB HID meldet sich am System gleich als Joystick an. Ein paar Beispiele, wie andere das gemacht haben bzw. wo man spicken kann: https://www.artekit.eu/stm32-usb-gamepad-interface/ Da ist eine russische Seite, wo jemand genau das gemacht hat, was du vor hast: http://translate.google.com/translate?u=https://habr.com/ru/post/384813/
Carl D. schrieb: > Das Schöne ist, daß man mehrere Eclipse parallel installieren kann. > Schnelles Internet vorausgesetzt kann man so schnell verifizieren. > In Summe arbeite ich aber zu 99,n% mit und nicht an Eclipse ;-) ok, da ist was dran. Danke für deinen Hinweis! Es ist bestimmt nicht mein Ziel gewesen an Eclipse zu arbeiten. Ich werde es nochmal mit deinen Ratschlägen und einer aktuellen Eclipse-CDT 2019-12 nur für AVR probieren. Zuvor war diese Version bei mir auch mit einem ESP32 Plugin (Arduino) belegt. Mal sehen, ob ich zurecht komme ...
Sven S. schrieb: > Also wenn du das jetzt neu anfängst und dir die Plattform egal ist: nimm > einen STM32 und zwar ... Hallo Sven, das macht auf jeden Fall neugierig und USB implementiert macht bestimmt wenig Probleme. Allerdings habe ich schon ein fertig aufgebautes VUSB für einen HID Joystick. Soll problemlos von Windows als solcher erkannt werden (wird sich zeigen) Vor Gefrickel und sonstigen Problemchen habe ich keine Bedenken, des wegen mache ich es ja, um meinen Kopf fit zu halten :-) Was ich vorhabe umzusetzen, bekommt man vermutlich an irgendeinem chinesischen Ladentisch schon fertig, aber ich möchte es gerne selbst umsetzen.
>nach längerer µC Programmier Abstinenz (~7 Jahre) wollte ich ein kleines >Projekt zur Programmierung eines PPM2USB Converters aufsetzen, um meine >MX-20 mit Heli-X zu bedienen. So was?: https://www.instructables.com/id/RC-Transmitter-to-USB-Gamepad-Using-Arduino/
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.