**Dies ist eine alte Version des Dokuments!** ----

A PCRE internal error occured. This might be caused by a faulty plugin

{{ :transparent_logo_sisy.png?nolink&150|}} ====== Aktuelle Hinweise ====== * Die neue SiSy Version ist da. [[https://shop.mymcu.de/index.php?sp=artlist_suche.sp.php&artSearch=Update|>>> Jetzt auf die Version 3.8x updaten!]] * Online-Seminare [[https://shop.myavr.de/index.php?sp=schulungen.sp.php&page=4|>>> Jetzt anmelden!]] * noch im Aufbau aber hier schon mal der Wegweiser: [[http://www.embedded-low-code.de/]] <html> <iframe width="560" height="315" src="https://www.youtube.com/embed/hntgpJcLcyU?si=gl6nNbTOp4BpU37M" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> </html> ====== Meinen XMC einfach und modern programmieren ====== Dieses Tutorial wendet sich an Leser, die bereits über Kenntnisse einer beliebigen Programmiersprache verfügen und sich auch mit der objektorientierten Programmierung von [[http://www.infineon.com/cms/en/product/microcontrollers/32-bit-industrial-microcontrollers-based-on-arm-registered-cortex-tm/channel.html?channel=db3a30433c1a8752013c3e221b9d004f|XMC Mikrocontrollern von Infineon]] beschäftigen möchten. Es ist kein C++, UML oder ARM-Programmier-Tutorial im engeren Sinne und erhebt daher keinen Anspruch auf Vollständigkeit oder Allgemeingültigkeit in diesen Bereichen. Hier soll sich speziell mit ausgewählten Aspekten für den **einfachen Einstieg in die objektorientierte Programmierung von XMC-Mikrocontrollern** auseinandergesetzt werden. Ausgewählte Bereiche dieses Tutorials sind speziell für Inhaber einer aktuellen SiSy Lizenz konzipiert. Dem Anwender stehen nach Erwerb des Produktes persönliche Zugangsdaten für diesen Bereich zur Verfügung. Die Daten für die ersten Schritte sind allgemeingültig und im öffentlichen Teil für jeden erreichbar. Im Zusammenwirken mit der kostenlosen [[http://www.sisy.de|SiSy]] DEMO sollten sie für alle Interessierten eine gute Starthilfe und ein Schnupperkurs für mehr Wissen sein. Das Tutorial wird auch weiterentwickelt. Es lohnt sich also, immer wieder rein zu schauen. //Viel Spaß mit diesem kleinen Tutorial!// ====== Einleitung ====== [[http://www.infineon.com/cms/de/product/index.html|Infineon]] kombiniert in der XMC-Mikrocontroller-Familie seine langjährige Erfahrung mit den Vorteilen des ARM Cortex-M. Dabei arbeitet Infineon intensiv an den Herausforderungen, die durch die zunehmende Softwarekomplexität auf die Entwickler zukommen. Eine Entwicklungsrichtung ist [[https://www.infineon.com/cms/en/search.html#!term=DAVE&view=all|DAVE]]. //DAVE// ist ein in //Eclipse// eingebetteter Codegenerator, der es dem Entwickler erleichtern soll, anwendungsfallspezifische Applikationen und Bibliotheken aus Low-Level-Drivern und Middleware zu generieren. Eine zweite Entwicklungsrichtung zur Beherrschung der zunehmenden Softwarekomplexität ist der objektorientierte Ansatz und die UML. Damit sind wir auch schon beim Inhalt dieses Tutorials. Die Objektorientierung ist ursprünglich angetreten, das Programmieren einfacher zu machen. Praktisch erscheinen jedoch objektorientierte Sprachen für viele eher als Hürde, nicht als Erleichterung. Das muss aber nicht so sein. Assembler und C sind nicht wirklich einfacher als C++. Bilden Sie sich zu folgenden Codeausschnitten selbst Ihre Meinung. >>><code c> // "klassische" Schreibweise /////////////////////////////////////// PORT0->IOCR4 &= ~0x0000f800UL; PORT0->IOCR4 |= 0xC0U << 8; PORT0->OMR = 0x00200020UL; </code> >>><code cpp> // objektorientierte Schreibweise ///////////////////////////////// Led led; led.config(PORT0,5); led.on(); </code> Ich glaube dieses kleine Beispiel zeigt deutlich, dass eine objektorientierte Vorgehensweise und Programmierung zu wesentlich verständlicherem Quellcode führen kann. Man könnte auch sagen, dass man das Ziel der Objektorientierung erreicht hat, wenn sich der Programmcode wie Klartext lesen lässt. Wir wollen uns von Bedenken und inneren Hürden nicht abhalten lassen, objektorientiert zu arbeiten. Zuerst gilt es, die Voraussetzungen für die Arbeit zu schaffen. >>> **„Jede neue Sprache ist wie ein offenes Fenster,\\ das einen neuen Ausblick auf die Welt eröffnet\\ und die Lebensauffassung weitet.“**\\ <sup>Frank Harris (1856-1931), amerikanischer Schriftsteller</sup> ====== Ein paar theoretische Grundlagen ====== Bevor Sie in die praktische Seite des Tutorials abtauchen, sollten Sie (müssen aber nicht) folgende theoretischen Grundlagen studieren und möglichst verinnerlichen: * [[Basiskonzepte]] * [[objektorientierte Programmiersprachen]] * [[Grafische Programmierung mit der UML]] ====== Voraussetzungen zur praktischen Arbeit====== Das Durcharbeiten dieses Tutorials funktioniert am besten mit der geeigneten * [[Hardware]] und * [[Entwicklungsumgebung]] sowie einer kleinen * [[Einkaufsliste]]. ====== Erste Schritte im klassischen C ====== Die Programmierung im klassischen C kann man sich ruhig einmal antun. Um so mehr wird man die Klassen aus dem XMC++ Framework schätzen lernen. Des Weiteren finden sich im Netz auch jede Menge Beispiele in klassischem C. Die folgenden Abschnitte befähigen Sie, sich diese zugänglich zu machen. Falls Sie lieber gleich objektorientiert in C++ und UML anfangen möchten, dann überspringen Sie diesen Abschnitt einfach. * [[Grundstruktur|Grundstruktur einer einfachen XMC Anwendung]] * [[Hallo C|Hallo XMC]] * [[Einfache Ein- und Ausgaben mit dem XMC]] * [[SystemTickC|Der SystemTick in C]] * [[XMC Interrupts in C]] * //[[weiterführende Programmierung des XMC in C]] <sub>(in Arbeit, SiSy Lizenz ab Version 3.6 )</sub>// ====== Erste Schritte in C++ und der UML ====== So, jetzt schalten wir ein paar Gänge höher. Zum einen arbeiten wir in den nächsten Abschnitten objektorientiert und benutzen als Entwicklungsumgebung keinen herkömmlichen Zeileneditor, sondern das UML-Klassendiagramm. * [[Grafische Programmierung mit der UML|spätestens jetzt in die UML reinschauen]] * [[Grundstruktur mit UML|Grundstruktur einer objektorientierten XMC Anwendung]] * [[Hallo UML|Hallo XMC++]] * [[Button und LED|Mit den Klassen Button und LED weiter arbeiten]] * [[SystemTickUML|Der SystemTick in C++]] <sub>(SiSy Lizenz ab Version 3.6)</sub> * [[Tempos|die Template-Library für den XMC anwenden ]] <sub>(SiSy Lizenz ab Version 3.6)</sub> ====== Anwendungsbeispiele mit der UML programmieren====== * [[UASRT|Kommunikation mit dem PC]] <sub>(SiSy Lizenz ab Version 3.6)</sub> * [[ADC|Analogdaten erfassen]] <sub>(SiSy Lizenz ab Version 3.6)</sub> * [[LED dimmen|Eine LED dimmen]] <sub>(SiSy Lizenz ab Version 3.6)</sub> * [[Externe Interrupts mit der UML|einen externen Interrupt programmieren]] <sub>(SiSy Lizenz ab Version 3.6)</sub> * [[einen benutzerdefinierten Timer anlegen|einen beliebigen Timer des XMC nutzen]] <sub>(SiSy Lizenz ab Version 3.6)</sub> ====== Weiterführendes ====== * [[ein kleines Projekt]] <sub>(SiSy Lizenz ab Version 3.6)</sub> * [[den XMC debuggen]] <sub>(SiSy Lizenz ab Version 3.6)</sub> * [[myXMC Ethernet Solutions]] <sub>(SiSy Lizenz ab Version 3.6)</sub> * [[Programmierung anderer Controller]] * [[Das XMC1100 BootKit]] * [[Das XMC1200 BootKit]] * [[Das XMC1300 BootKit]] * [[Das XMC 2Go]] * [[Mit dem Zustandsdiagramm programmieren]]<sub>(SiSy Lizenz ab Version 3.6)</sub> * //[[das µGL Framework auf dem XMC]] <sub>(in Arbeit)</sub>// * [[http://shop.myavr.de/?sp=schulungen.sp.php|Seminarangebote]] \\ >>>>//Wir unterstützen das [[http://mdse-manifest.org/|"Manifest - Modeling of Embedded Systems"]] mit unseren Unterschriften. [[http://mdse-manifest.org/sign/|Machen Sie mit!]]//

start.1702385497.txt.gz · Zuletzt geändert: 2025/03/10 18:26 (Externe Bearbeitung)