Error Compiling ADC component with 16F722 - 16F727

Moderator: Benj

Post Reply
medelec35
Matrix Staff
Posts: 9520
Joined: Sat May 05, 2007 2:27 pm
Location: Northamptonshire, UK
Has thanked: 2585 times
Been thanked: 3815 times
Contact:

Error Compiling ADC component with 16F722 - 16F727

Post by medelec35 »

There is an issue with Flowcode V4.3.7.63 for pic when compiling if using ADC component with 16F722 - 16F727:

Code: Select all

File name:     D:\16f723 test.c

Generated by:  Flowcode v4.3.7.63

Date:          Friday, March 18, 2011 16:26:49

Licence:       Professional

Registered to: Martin 





http://www.matrixmultimedia.com





Launching the compiler...

C:\Program Files\Matrix Multimedia\Flowcode V4\BoostC\boostc.pic16.flowcode.exe -v -t PIC16F722 "16f723 test.c"

BoostC Optimizing C Compiler Version 6.95 (for PIC16 architecture)

http://www.sourceboost.com

Copyright(C) 2004-2009 Pavel Baranov

Copyright(C) 2004-2009 David Hobday



Licensed to FlowCode User under Single user Pro License for 1 node(s)

Limitations: PIC12,PIC16 max code size:Unlimited, max RAM banks:Unlimited





16f723 test.c

Starting preprocessor: C:\PROGRA~1\MATRIX~1\FLOWCO~2\BoostC\pp.exe "D:\16f723 test.c" -i C:\PROGRA~1\MATRIX~1\FLOWCO~2\BoostC\include -d _PIC16F722 -la -c2 -o "D:\16f723 test.pp" -v -d _BOOSTC -d _PIC16 





.........



D:\16f723 test.c(263:13): error: unknown identifier 'adresh'

D:\16f723 test.c(263:13): error: invalid operand 'adresh'

D:\16f723 test.c(263:20): error: failed to generate expression

D:\16f723 test.c(263:20): error: invalid operand '<<'

D:\16f723 test.c(263:10): error: failed to generate expression

D:\16f723 test.c(264:23): error: unknown identifier 'adresl'

D:\16f723 test.c(264:23): error: invalid operand 'adresl'

D:\16f723 test.c(264:30): error: failed to generate expression

D:\16f723 test.c(264:30): error: invalid operand '>>'

D:\16f723 test.c(264:20): error: failed to generate expression

D:\16f723 test.c(264:20): error: invalid operand '| '

D:\16f723 test.c(264:10): error: failed to generate expression

16f723 test.c success



failure



Return code = 1



Flowcode was unable to compile the flowchart's C code due to the following errors:





If your flowchart contains C code, please review this carefully. If your flowchart contains no C-code or you have thoroughly reviewed the code, contact Technical Support.



FINISHED
I have traced cause of problem to PIC_ADC_18.c

Instead of:

Code: Select all

/*Macro_SampleADC_End*/
}




char ReadAsByte(void)
{
/*Macro_ReadAsByte_Start*/

	SampleADC();

	#ifdef _BOOSTC
		#ifdef ADRES
			return ADRES;
		#else
			return ADRESH;
		#endif
	#endif

	#ifdef HI_TECH_C
		#ifdef adres
			return adres;
		#else
			return adresh;
		#endif
	#endif

/*Macro_ReadAsByte_End*/
}



short ReadAsInt(void)
{
/*Macro_ReadAsInt_Start*/

	short iRetVal;

	SampleADC();

	#ifdef adres
		iRetVal = (adres << 2);
	#else
		iRetVal = (adresh << 2);
		iRetVal = iRetVal | (adresl >> 6);
	#endif

	return (iRetVal);

/*Macro_ReadAsInt_End*/
}
Should be:

Code: Select all

/*Macro_SampleADC_End*/
}




char ReadAsByte(void)
{
/*Macro_ReadAsByte_Start*/

	SampleADC();

	#ifdef _BOOSTC
		#ifdef ADRES
			return adres;
		#else
			return adresh;
		#endif
	#endif

	#ifdef HI_TECH_C
		#ifdef adres
			return ADRES;
		#else
			return ADRESH;
		#endif
	#endif

/*Macro_ReadAsByte_End*/
}



short ReadAsInt(void)
{
/*Macro_ReadAsInt_Start*/

	short iRetVal;

	SampleADC();

	#ifdef _BOOSTC
		#ifdef ADRES
			iRetVal = (adres << 2);
		#else
			iRetVal = (adresh << 2);
			iRetVal = iRetVal | (adresl >> 6);
		#endif
	#endif

	#ifdef HI_TECH_C
		#ifdef adres
			iRetVal = (ADRES << 2);
		#else
			iRetVal = (ADRESH << 2);
			iRetVal = iRetVal | (ADRESL >> 6);
		#endif
	#endif

	return (iRetVal);

/*Macro_ReadAsInt_End*/
}
Attached is correct version.
Attachments
16f723 test.fcf
(4.5 KiB) Downloaded 346 times
PIC_ADC_18.c
(9.39 KiB) Downloaded 366 times
Martin

Post Reply