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 16116.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 28116.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=202116.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=202116.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