====== Programming my XMC easily and modernly ====== This tutorial is for readers who already have knowledge of any programming language and are also familiar with the object-oriented programming of [[http://www.infineon.com/cms/en/product/microcontrollers/32-bit-industrial-microcontrollers-based-on-arm-registered-cortex-tm/channel.html?channel=db3a30433c1a8752013c3e221b9d004f| Infineon's XMC microcontrollers]]. It is not a C ++, UML or ARM programming tutorial in the strict sense and therefore does not claim to be complete or general in these areas. Here, especially with selected aspects for the ** easy entry into the object-oriented programming of XMC microcontrollers ** is to be dealt with. Selected sections of this tutorial are specifically designed for holders of a current SiSy license. The user has personal access data for this area after purchasing the product. The data for the first steps are universal and accessible to everyone in the public section. In cooperation with the free [[http://www.sisy.de | SiSy DEMO]] they should be a good start-up aid and a taster course for more knowledge for all those interested. The tutorial will also be further developed. So it pays to keep looking in and out. // Have fun with this little tutorial! // >>>>><html><iframe width="640" height="480" src="https://www.youtube.com/embed/a03CJn98Qyg" frameborder="0" allowfullscreen></iframe></html> ====== Introduction ====== [[http://www.infineon.com/cms/en/product/index.html|Infineon]] combines its many years of experience in the XMC microcontroller family with the benefits of the ARM Cortex-M. At the same time, Infineon is working intensively on the challenges faced by developers due to increasing software complexity. One direction of development is [[https://www.infineon.com/cms/en/search.html#!term=DAVE&view=all|DAVE]]. // DAVE // is an embedded // Eclipse // code generator designed to help developers build application-specific applications and libraries from low-level drivers and middleware. A second development direction to master the increasing software complexity is the object-oriented approach and the UML. So we are already in the content of this tutorial. The object orientation was originally set to make programming easier. In practice, however, object-oriented languages ​​are more a hurdle, not a relief, to many. That does not have to be that way. Assembler and C are not really simpler than C ++. Make yourself opinion on the following code snippets yourself. >>><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> I think this little example clearly shows that an object-oriented approach and programming can lead to much more understandable source code. You could also say that you have reached the goal of object orientation if the program code can be read as clear text. We do not want to be deterred by concerns and inner hurdles to work object-oriented. First, it is necessary to create the conditions for the work. >>> ** "Every new language is like an open window, \\      that opens up a new view of the world \\      and the concept of life widens. "** \\ <sup>Frank Harris (1856-1931), American writer</sup> ====== A few theoretical basics ====== Before you dive into the practical side of the tutorial, you should (but do not have to) study the following theoretical basics and internalize as far as possible: * [[Basic concepts]] * [[object-oriented programming languages]] * [[Graphic Programming with the UML]] ====== Requirements for practical work ====== Working through this tutorial works best with the appropriate one    * [[Hardware]] and    * [[Development environment]] as well as a small one    * [[Shopping List]]. ====== 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]]

en/start.txt · Zuletzt geändert: 2025/03/10 23:53 (Externe Bearbeitung)