Forum: Mikrocontroller und Digitale Elektronik Problem C-Compiler mit PIC16F628 und MPLAP


von Jupp (Gast)


Lesenswert?

Ich bin am verzweifeln.

Ich habe ein kleines Programm in C für einen PIC16F628 geschrieben und
will jetzt ein HEX File daraus machen.

Als erstes habe ich es mit dem CC5x Compiler probiert und habe immer
folgendes Problem dabei gehabt:

Wenn ich auf Build klicke meckert er mir immer an der Header-Datei
rum. Die dürfte doch normalerweise stimmen oder etwa nicht?

Genaue Fehlermeldung:

.......... 16f628.h 2 : Duplicate chip definition
 (Multiple chip definitions detected (option -p<chip> and #include
<header.h>).The #include statement should be removed)

Wenn ich in der Header Datei die oben gennante Zeile auskommentiere
kommt eine Fehlermeldung, dass einige Konstanten in der Headerdatei zu
lang wären, was eigentlich auch nicht sein kann.

6F628.h 48 : Constant out of range
 (The constant is too large)
#pragma char PCON    @ 0x8E
6F628.h 48 : Constant out of range
#pragma char EECON1  @ 0x9C
#pragma char EECON2  @ 0x9D
                          ^------
Naja es gibt ja noch mehr C-Compiler für MPLAP also habe ich die
Testversion von IAR installiert! Wenn ich jetzt ein Build mache kommt
erst ein Fenster mit folgendem Inhalt:

The environment variable QPICINFO must be set to the EWPIC config
directory, ending with a"\'.

und nachdem OK geklickt wurde.

Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Programme\IAR
Systems\ew23\picmicro\bin\iccpic.exe" -D__PIC16F628__ "main.c"
-o"main.r39" -r -e -z9

   IAR PICmicro C Compiler V2.21C/W32
   Copyright 1998-2004 IAR Systems. All rights reserved.
   Time limited license: 29 days left

Fatal error[Pic005]: Target Error: No setup file for given derivative
Fatal error detected, aborting.
Halting build on first failure as requested.
BUILD FAILED: Wed May 10 16:18:53 2006

Kann mir einer sagen, wo ich die QPICINFO finde und was ich dort
einstellen muss?

Ich bin am Verzweifeln ich will doch nur dieses kleine dumme C-Programm
auf einen PIC brennen. Das kann doch nicht so schwer sein oder?

Vielen Dank für Eure Hilfe

Jupp

von Rainer S. (Gast)


Lesenswert?

Hallo Jupp!

Du hast Dir also den CC5x angeschaut. Gute Entscheidung.

Nun zu Deinem Problem. Soweit ich weiß, gibt es mehrere Möglichkeiten
dem Compiler zu sagen, für welchen PIC das Programm erzeugt werden
soll.

a) Über die Angabe eines #PRAGMA CHIP 16F628 am Anfang des
C-Programmes.
b) Über ein Argument beim Starten des Compilers (siehe SAMPLE2.C im
Verzeichnis des Compilers)
c) Über die richtige Auswahl des Chips in MPLAB unter Configure->Select
Device.

Was Du hierbei auch noch beachten musst, sind die zwei Varianten des
16F628 bzw. 16F628A. Möglicherweise kommt die Unstimmigkeit daher.

Gruß,
Rainer

P.S. Kannst Du vielleicht noch das Programm anhängen?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.