PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PIC16F1827 C-Code compilieren?



RXTX
07.01.2016, 20:27
Hallo PIC Gemeinde,

ich habe einen Quellcode in C den ich gerne compilieren möchte. MPLAB kennt leider diesen PIC nicht und somit kann ich mit dem Wizard kein Projekt erstellen. Nun habe ich noch Micro C for PIC. Dort gibt es den PIC aber, wie sollte es sein, erkennt der Compiler im C-Code einige Einträge nicht....

Dem Compiler gefällt die __CONFIG zb. nicht un er kennt den Eintrag #include <htc.h> nicht. Auch sei() ; // Enable Interrupts will er nicht.......Vielleicht gibt es einen netten User der das compilieren kann und mir das .hex File zur Verfügung stellt....(oh....kann den Quellcode so nicht schicken er ist zu lang)

witkatz
07.01.2016, 20:47
MPLAB kennt leider diesen PIC nicht
Das wäre traurig, natürlich kennt MPLAB den PIC16F1827, und zwar seit es den gibt.
31095

RXTX
07.01.2016, 21:13
.....oh, da habe ich wohl eine falsche Version .....hmmm
Danke für den Hinweis......

witkatz
07.01.2016, 21:20
(oh....kann den Quellcode so nicht schicken er ist zu lang)
Den Quellcode kannst du im Erweiterten Modus als C-Datei Anhang an den Post anhängen. Da gilt die Grenze von 99,6kB.
->Beim Editieren der Antwort auf Erweitert klicken und runterscrollen zu "Anhänge verwalten"

RXTX
10.01.2016, 15:56
....welche Version von MPLAB ist für den PIC16F1827 zu empfehlen und welcher C-Compiler passt dafür? (CC18 ??)

Klebwax
10.01.2016, 19:40
....welche Version von MPLAB ist für den PIC16F1827 zu empfehlen und welcher C-Compiler passt dafür? (CC18 ??)
Es ist immer empfehlenswert, eine "lebende" Version einer Software zu benutzen, insbesondere wenn man neu anfängt. Das ist bei Microchip MPLABX. Die aktuellen Compiler heißen XC8, XC16 und XC32 für die 8-, 16-, und 32 Bitter. Dabei werden alle Microchip-Prozessoren, auch alle zukünftigen unterstützt. Ich verwende MPLABX zusammen mit dem PICKIT3 als auch einem preiswerteren Clone. Zusammengefasst: MPLABX und XC8, jeweils neueste Version.

MfG Klebwax

RXTX
10.01.2016, 20:44
Danke, dann suche ich mal die beiden Sachen und installiere das......

RXTX
11.01.2016, 21:53
....so, nun habe ich alles installiert und wollte den C-Code compilieren aber schon mault das Programm und kennt die CONFIG nicht.....


#include <htc.h>
#include <stdlib.h>


__CONFIG (0x09E4) ; // Binary : 00 1001 1110 0100
// 0 : FCMEM=0 -> Fail Safe Clock Monitor Disabled
// 0 : IESO=0 -> Internal/External Switchover Disabled
// 1 : CLKOUTEN#=1 -> CLOCKOUT Function disabled
// 00 : BOREN=00 -> Brownout Detect Disabled
// 1 : CPD#=1 -> Data memory code protection disabled
// 1 : CP#=1 -> Program memory code protection disabled
// 1 : MCLRE=1 -> MCLR#/Vpp acts as MCLR#
// 1 : PWRTE#=1 -> Power-up Timer disabled
// 0 0 : WDTE=00 -> Watchdog timer disabled
// 100 : FOSC=100 -> INTOSC Oscillator (31KHz / 500 KHz / 16 MHz)

__CONFIG (0x38EF) ; // Binary : 11 1000 1110 1111 = 0x38EF
// 1 : LVP=1 -> Low-Voltage Programming enabled
// 1 : DEBUG#=1 -> In-CircuitDebugger disabled
// 1 : reserved
// 0 : BORV=0 -> Brown-Out voltage set to 2.5V
// 0 : STVREN=0 -> Stack Overflow will not cause a reset
// 0 : PLLEN=0 -> x4 PLL Disabled
// 1110 11 : reserved
// 11 : WRT=11 -> Flash write protection off



.....was könnte falsch sein???

Klebwax
11.01.2016, 23:34
....so, nun habe ich alles installiert und wollte den C-Code compilieren ....

Da fehlt noch ein Schritt vor dem Compilieren: das Lesen des: MPLAB® XC8 C Compiler User’s Guide

MfG Klebwax

RXTX
12.01.2016, 18:55
.....o.K......habe es über die IDE eingestellt und compiliert - hat funktioniert. Kann ich (außer dem .hex File das ist ja nun da) auch aus der main.c ein .asm File erstellen lassen?

witkatz
12.01.2016, 22:49
aus der main.c ein .asm File erstellen lassen?Nö, der XC8 macht keinen Umweg über .asm und es wird keine übersetzbare .asm Datei erzeugt. Es kann zur Überprüfung ein (mehr oder weniger ;-) ) lesbares ASM Listing mit der Erweiterung .lst im selben Ausgabeverzeichnis wie die .hex Datei erzeugt werden - wenn die Option 'Generate the ASM Listing File' in den Compilereinstellungen eingeschaltet ist.