Problem med C i MPLAB

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
SeniorLemuren
Inlägg: 8440
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Problem med C i MPLAB

Inlägg av SeniorLemuren »

Tänkte ge mig på att testa C i MPLAB. Har istallerat Lite-versionen och försöker kompilera ett demoprogram. Jag får följande felmeddelande:

Kod: Markera allt

Clean: Deleting intermediary and output files.
Clean Warning: File "C:\Program\HI-TECH Software\PICC\9.81\samples\A2Demo\a2demo.o" doesn't exist.
Clean: Done.
Executing: "C:\Program\HI-TECH Software\PICC\lite\9.60\bin\picc.exe" +FM "C:\Program\HI-TECH Software\PICC\9.81\samples\A2Demo\a2demo.c" +DF +LN +T +A +M +Z +Y=9 +EA
HI-TECH PICC-Lite COMPILER (Microchip PICmicro) V9.60
Copyright (C) 1984-2006 HI-TECH SOFTWARE
(902) no chip name specified; use "PICC --CHIPINFO" to see available chip names
BUILD FAILED: Tue Mar 15 03:37:57 2011
I projektmappen ligger Headerfilen pic16f877a.h och jag har skrivit:

Kod: Markera allt

#include <pic16f877a.h>
Först i demoprogrammet. Vad gör jag för fel?
Vart hittar man PICC --CHIPINFO som det hänvisas till i felmed?
janno
Inlägg: 434
Blev medlem: 11 oktober 2009, 07:34:45
Ort: Västerås

Re: Problem med C i MPLAB

Inlägg av janno »

Så här ser en normal main fil ut som jag har som projekt template.
htc.h includerar alltid rätt .h fil för din processor, tror den väljer enligt mplabs huvudinställning
sen behövs lite CONFIG och det normala main() sen bör ju main aldrig avslutas.

Kod: Markera allt

#include <htc.h>

__CONFIG (INTIO & WDTDIS & MCLRDIS & UNPROTECT );


void main()
{
	while(1);

}
bos
Inlägg: 2314
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

Re: Problem med C i MPLAB

Inlägg av bos »

Om du inkluderat pic16f877a.h direkt borde du ha fått ett varningsmeddelande, för rad 2 i den filen ser ut såhär:

Kod: Markera allt

#warning Header file pic16f877a.h included directly. Use #include <htc.h> instead.
När man använder Hi-Tech behöver man bara inkludera <htc.h>, sen sköter sig resten själv. Att du får det fel du får beror på att du i MPLAB inte ställt in någon målprocessor att kompilera till. Du ställer in detta genom att gå till Configure-menyn och välja "Select device" och sen PIC16F877A från den lista som kommer upp. Längst ner i MPLAB (statusraden) i ruta 3 från vänster kommer du att se namnet på den processor du vält. Troligtvis är den rutan tom för dig i detta skede.
Användarvisningsbild
SeniorLemuren
Inlägg: 8440
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Problem med C i MPLAB

Inlägg av SeniorLemuren »

Select device hade jag redan gjort. Ändrad includefilen till htc.c och lade in den imappen headerfiles. Får exakt samma felmeddelande?
bos
Inlägg: 2314
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

Re: Problem med C i MPLAB

Inlägg av bos »

Jag antar du menar htc.h. Varför lade du den i mappen headerfiles, och var ligger mappen headerfiles?

När du installerat Hi-Tech från scratch ska du aldrig röra filerna i installationskatalogen. Du behöver inte kopiera dem till dina projekt eller liknande, allt som behövs är att ha raden #include <htc.h> i din kod.
Användarvisningsbild
SeniorLemuren
Inlägg: 8440
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Problem med C i MPLAB

Inlägg av SeniorLemuren »

Skapade ett helt nytt projekt med hjälp av Project Wizard. Ser ut så här:
c_proj_led.jpg
och felmeddelandet:

Kod: Markera allt

Clean: Deleting intermediary and output files.
Clean: Deleted file "N:\PIC-projekt\myProj\C\MyCproj.mcs".
Clean: Done.
Executing: "C:\Program\HI-TECH Software\PICC\lite\9.60\bin\picc.exe" +FM "led.c" +DF +LN +T +A +M +Z +Y=9 +EA
HI-TECH PICC-Lite COMPILER (Microchip PICmicro) V9.60
Copyright (C) 1984-2006 HI-TECH SOFTWARE
(902) no chip name specified; use "PICC --CHIPINFO" to see available chip names
BUILD FAILED: Tue Mar 15 13:20:34 2011
Tror jag håller mig till Assembler. Då vet jag vad jag håller på med. Det här verkar rörigt värre. Testat, googlat testat igen, googlat...8 timmar nu. Jag brukar aldrig ge upp, men nu vete f....n.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
pbgp
Inlägg: 1450
Blev medlem: 11 november 2010, 09:09:22
Ort: Uppsala

Re: Problem med C i MPLAB

Inlägg av pbgp »

Kan du köra:

Kod: Markera allt

C:\Program\HI-TECH Software\PICC\lite\9.60\bin\picc.exe --CHIPINFO
Och se vad som sägs.

Jag kan inget om det här, men det är ju vad felmeddelandet föreslår att du gör.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med C i MPLAB

Inlägg av sodjan »

I min MPLAB installation heter det
C:\Program Files (x86)\HI-TECH Software\PICC\9.80\bin>
så det beror på vilken Windows och vilken MPLAB/PICC version man har.

Hur som helst, 16F877A finns med, och det där kommandon ger sannolikt
ingenting. Deet är något annat som är felinställt.

Jag körde just wizarden och skapade ett PICC projekt i
mappen "a2demo" i "samples" i 9.80 katalogen.
Build fungerade direkt utan problem...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med C i MPLAB

Inlägg av sodjan »

Varför har du PICC 9.60 förresten ?
Vilken MPLAB version kör du ?
Användarvisningsbild
pbgp
Inlägg: 1450
Blev medlem: 11 november 2010, 09:09:22
Ort: Uppsala

Re: Problem med C i MPLAB

Inlägg av pbgp »

I första posten kan man läsa ut 9.81 och 9.60 i output. Kanske är problemet två installerade versioner?

Edit:
sodjan skrev:I min MPLAB installation heter det
C:\Program Files (x86)\HI-TECH Software\PICC\9.80\bin>
så det beror på vilken Windows och vilken MPLAB/PICC version man har.
Notera att jag läste ut pathen från hans felmeddelande. Så den borde finnas där på hans dator.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med C i MPLAB

Inlägg av sodjan »

Ja, det ser lite märkligt ut., jag får samma "9.xx" i alla rader.
Kan vara en gammal HiTech som inte är avinstallerad...
Användarvisningsbild
swesysmgr
Inlägg: 14961
Blev medlem: 28 mars 2009, 06:56:43
Ort: Göteborg

Re: Problem med C i MPLAB

Inlägg av swesysmgr »

Kör kompilatorn separat utanför mplab från kommandoprompten och sätt --chip flaggan manuellt för att se om den fungerar och felet då ligger i mplab?

SLå på Verbose output under project->build options->compiler för att se mer i detalj vad som blir fel?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med C i MPLAB

Inlägg av sodjan »

KISS.

Börja med att kolla med "utforskaren" hur det ser
ut under "C:\Program\HI-TECH Software\PICC\..."
Finns det flera PICC versioner ?
I så fall, fixa det !
Användarvisningsbild
SeniorLemuren
Inlägg: 8440
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Problem med C i MPLAB

Inlägg av SeniorLemuren »

Aha, nu funkar det. Som sodjan nämnde, :tumupp: det fanns flera versioner. Jag hade valt HI-Tech PCCToolSuite, När jag ändrade till HT-...UniversalToolSuite så funkade det. :)

Kod: Markera allt

Build N:\PIC-projekt\myProj\C\MyCproj for device 16F877A
Using driver C:\Program\HI-TECH Software\PICC\9.81\bin\picc.exe

Make: The target "N:\PIC-projekt\myProj\C\led.p1" is up to date.
Executing: "C:\Program\HI-TECH Software\PICC\9.81\bin\picc.exe" -oMyCproj.cof -mMyCproj.map --summary=default --output=default led.p1 --chip=16F877A -P --runtime=default --opt=default -D__DEBUG=1 -g --asmlist "--errformat=Error   [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s" 
HI-TECH C Compiler for PIC10/12/16 MCUs (Lite Mode)  V9.81
Copyright (C) 2010 Microchip Technology Inc.
(1273) Omniscient Code Generation not available in Lite mode (warning)

Memory Summary:
    Program space        used    3Bh (    59) of  2000h words   (  0.7%)
    Data space           used     5h (     5) of   170h bytes   (  1.4%)
    EEPROM space         used     0h (     0) of   100h bytes   (  0.0%)
    Configuration bits   used     0h (     0) of     1h word    (  0.0%)
    ID Location space    used     0h (     0) of     4h bytes   (  0.0%)


Running this compiler in PRO mode, with Omniscient Code Generation enabled,
produces code which is typically 40% smaller than in Lite mode.
See http://microchip.htsoft.com/portal/pic_pro for more information.

Loaded N:\PIC-projekt\myProj\C\MyCproj.cof.

********** Build successful! **********
Användarvisningsbild
SeniorLemuren
Inlägg: 8440
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Problem med C i MPLAB

Inlägg av SeniorLemuren »

Ok. Nästa steg, koppla upp PIC16F877A och testa programmet. När jag tittar på programmet så står det:

Kod: Markera allt

/*
 *	Demo program
 *
 *	Flashes LEDs on Port B, responds to switch press
 *	on RA1. Usable on PICDEM board.
 *
 *	Copyright (C)1997 HI-TECH Software.
 *	Freely distributable.
 */

Kod: Markera allt

#define BUTTON	RC1	//bit 1 of PORTC

main(void)
{
	unsigned char	i, j;

	TRISB = 0;		/* all bits output */
	j = 0;
	for(;;) {
		PORTB = 0x00;		/* turn all on */
		for(i = 100 ; --i ;)
			continue;
		PORTB = ~j;		/* output value of j */
		for(i = 100 ; --i ;)
			continue;
		if(BUTTON == 0)		/* if switch pressed, increment */
			j++;
	}
}
Borde inte första raden vara

Kod: Markera allt

#define BUTTON   RA1   //bit 1 of PORTA
Eller har jag fattat helt fel?
Skriv svar