Sie sind auf Seite 1von 5
116.2015 XC Compiler | PIC-Projekte PIC-Projekte Elektretecrrik und mehr XC Compiler Inhaltsverzeichnis (Anzeigen] Hier gibt es das Handbuch zum XC8 Compiler: Klick Und hier kénnt ihr euch noch ein paar Beispiele anschauen (Englisch) Klick Verf Online Voordelig 5 ‘Alle merken. Laagste Prisgarante Mircochip hat eine neue Serie von Compilern veréffentlicht. Dabei handelt es sich um drei verschiedene, wobei es sich in diesem Artikel um den relevanten fiir den Hobbybereich drehen wird: XC8. + XCB_ -> Unterstitzung flr: PICI@, 12, 16 und 18 + XC16 -> Unterstiitzung flr: PIC24 und dsPIC + XC32 -> Unterstiitzung fur: PIC32 Hier ist die Zahl im Namen des Compilers XC# ausschlaggebend dafiir, fiir welchen PIC Typen der Compiler gedacht ist. Und zwar beziehen sich die Zahlen auf die Datenbreite der Controller. + 8 Bit Datenbreite --> PICI®, 12, 16 und 18 + 16 Bit Datenbreite --> PIC24 und dsPIC + 32 Bit Datenbreite --> PIC32 Neu ist hier, dass es nun einen Compiler gibt, der die gesamten PIC Typen mit einer 8 Bit Datenbreite bedient. Zuvor gab es lediglich den MCC18 Compiler, welcher lediglich fir PIC18 Typen war und diverse Third Party Compiler. Nun gibt es alles aus eigenem Hause. tof projet detverdpressy9p=202 16 116.2015 XC Compiler | PIC-Projekte Anderungen Die wesentlichen Anderungen, welche ich auf die schnelle entdecken konnte sind. Bibliothek des PIC Anders als noch zu C18 Zeiten, werden die Bibliotheken der PIC Mikrocontroller nicht gesondert geladen, sondern es wird nur eine einzige Bibliothek fiir alle PIC Typen verwendet (siehe hierzu auch Seite 25 im XC8 User Guide). Bitte beachtet, dass ihr die xc.h immer einbinden mist. #include // So war es im MCC18 Compiler #include #include #include #include "p3@f6014.h" // Und so ist es nun beim XC8 Compiler #include Konfigurationswort Nachfolgend einmal dargestellt wie die Konfiguration eingestellt werden kann: #pragma config WDT=ON, WDTPS = @x1A Interrupt service Routine Hier habe ich mal ein wenig in der Bedienungsanleitung des XC8 nachgelesen und konnte folgenden Beispielcode fiir eine ISR finden: int tick_count; void interrupt tc_int(void) { if (TMROIE && TMROIF) { TMROLF=0; ++tick_count; return; + 7/ process other interrupt sources here, if required } /* Beziehungsweise ein Interrupt mit niedriger Prioritat */ void interrupt low_priority te_clr(void) " (TMRLIE && TMRIIF) TMRLIF=0; to fie projet detwerdpressz7p=202 28 116.2015 XC Compiler | PIC-Projekte tick_count = 0; return; } 7/ process any other low priority sources here Compiler Libraries Natiirlich hat man auch mit dem XC8 Compiler die Méglichkeit die mitgelieferten Libraries zu nutzen um Beispielsweise die 12 Funktionen des PIC komfortabel nutzen zu kénnen. Nur sei hier erwahnt, dass es nun ein kleines bisschen anders geht: Zuerst wird die Headerdatei eingebunden: #include Ein Blick in diese Headerdatei zeigt, dass diese Headerdatei alle Peripherie Headerdateien einbindet. Nun muss man noch deutlich machen, welche man davon nutzen muss, dass macht man logischerweise mit einem Makro. Also Schritt fiir Schritt 1. Die Headerdatei plib.h einbinden 2. Diese Headerdatei dffnen (in MPLABX Str gedriickt halten und auf den Namen der Datei klicken) 3. Die gewiinschte Pe (z.8.: i2c.h) 4. Die in dieser Datei eingebundene Headerdatei pconfig.h dffnen 5. In der Datei pconfig.h mit Textsuche nach dem verwendeten PIC suchen (Verwendet: PICI8F232¢ suchen nach: 18F2320) 6. Nun das notwendige Makro suchen und CopyaPaste machen 7. Nicht vergessen das Makro muss vor dem Einbinden der plib.h Datei stattfinden pherie Headerdatei éffnen Hier ein Beispiel um bei einem PIC18F2320 die i2c.h Datei einzubinden: #define I2C_v1 // Erst das Makro setzten, .. #include // ..dann die Headerdatei einbinen! Fehlermeldung: Can’t open include file ,adc.h“: No such file or directory Bitte wie folgt vorgehen: 1, Rechtsklick auf Euer Projekt und Properties auswahlen 2, Im Fenster Categories unter den Einstellungen fir den XC8 auf XCB tof projet detverdpressy9p=202 116.2015 XG Compile | PC: Peete Compiler klicken 3, Nun im Fenster rechts auf den kleinen Button bei Include directories klicken 4, Hier nun einen neuen Pfad anlegen. Dieser sollte alnlich wie dieser aussehen: \..\..\..\Program Files (x86)\Microchip\xc8\v1.2@\include\plib Der Compiler sollte nun wissen, wo er nach den entsprechenden Headerfiles zu suchen hat und folglich keine Fehlermeldung mehr ausgeben. Interrupts Hier ein eines Beispiel zum Verwalten von Interrupts: ADIE = 1; // A/D interrupts will be used PEIE = 1; // all peripheral interrupts are enabled ei(); // enable all interrupts Mv di(); // disable all interrupts Note: Never re-enable interrupts inside the interrupt function itself. Interrupts are automatically re-enabled by hardware on execution of the RETFIE instruction. Re-enabling interrupts inside an interrupt function may result in code failure. Warteschleifen Selbstverstindlich sind auch weiterhin fertig eingebaute Warteschleifen vorhanden. Diese werden nun etwas komfortabler genutzt. Wie das von statten geht, méchte ich euch hier kurz zeigen; Zundchst miisst ihr (wie immer) die xe.h Datei in eurer Projekt eingebunden haben. Im Anschluss misst ihr noch mitteilen, mit welche Frequenz der PIC getaktet wird. Ist dies getan, kénnen die Warteschleifen generiert werden. Siehe hierzu auch Seite 232 im XC8 User Guide a tc4423cpa microchip technology ine Hier ein entsprechendes Codebeispiel: #include #define _XTAL_FREQ 400000 /*Clock frequency in Hz*/ to fle projet detwerdpressy7p=202 116.2015 XG Gomer | PIC-Projete Meee __delay_ms(x); // request a delay in milliseconds Tdelay_us(x); // request a delay in microseconds Te 19 20.Juli 2012 & Nico tw XC Compiler # C, Compiler, MPLAB, MPLABX, PIC, XCB Nach oben. Stolz prdsentiert von WordPress tp fe projet debwerdpressz7p=202

Das könnte Ihnen auch gefallen