| 
	
	|  |  |  
	
		| View previous topic :: View next topic |  
		| Author | Message |  
		| ghamblin 
 
 
 Joined: 02 Aug 2015
 Posts: 38
 Location: Tucson
 
 
			    
 
 | 
			
				| Am I missing something? |  
				|  Posted: Sat Nov 21, 2015 12:34 pm |   |  
				| 
 |  
				| I'm getting the error "Expecting function name  ::" at each line that contains a printf() statement. Here is a code snippet: 
 
  	  | Code: |  	  | if(!input(PIN_A0))
 {
 x=9;
 while(!input(PIN_A0) && x)
 {
 printf(lcd_putc,"Pending\nReset");
 lcd_gotoxy(8,2);
 printf(lcd_putc,"%d",x--);
 delay_ms(1000);
 }
 if(!x)
 {
 WRITE_LONG_EEPROM(0, (int32)0);
 lcd_putc('\f');
 printf(lcd_putc,"Reset\n PWR OFF");
 while(1);
 }
 }
 
 | 
 
 If I comment out the printf() lines it compiles without error. I figure I must be missing something here, and perhaps another set of eyes will see it?
 
 Thanks,
 Glenn
 _________________
 -Glenn
 |  |  
		|  |  
		| dyeatman 
 
 
 Joined: 06 Sep 2003
 Posts: 1968
 Location: Norman, OK
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Nov 21, 2015 1:00 pm |   |  
				| 
 |  
				| With no more than you have given us I randomly picked a short section of test code I had and dropped yours into it.  It compiled it under 5.051 with no
 problems.   It may be something further upstream.
 
 What chip?
 What compiler version?
 _________________
 Google and Forum Search are some of your best tools!!!!
 |  |  
		|  |  
		| ghamblin 
 
 
 Joined: 02 Aug 2015
 Posts: 38
 Location: Tucson
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Nov 21, 2015 1:13 pm |   |  
				| 
 |  
				| PCM Compiler  Version 5.051 (Linux command line version) 
 Here's the .err file content:
 *** Error 53 "CashMeterMX.c" Line 57(29,30): Expecting function name  ::
 *** Error 53 "CashMeterMX.c" Line 77(121,125): Expecting function name  ::
 2 Errors,  0 Warnings.
 Build Failed.
 
 Here's the whole program:
 
  	  | Code: |  	  | /*
 * File:   CashMeterMX.c
 * Author: Glenn Hamblin
 * Mexico Version of CashMeter
 * Created on February 15, 2014, 7:18 PM
 */
 
 #include <16F1823.h>
 #device WRITE_EEPROM = NOINT
 #fuses PUT,NOWDT,INTRC_IO,NOMCLR,NOCLKOUT,NOIESO,NOLVP,NOPROTECT,NODEBUG
 #USE STANDARD_IO(a)
 #USE STANDARD_IO(c)
 
 #use delay(clock=8M)
 
 #include <stdio.h>
 #include <stdlib.h>
 #include <CashMeterMX.h>
 #include <gh_lcd.c>
 
 
 
 int main(void)
 {
 int8 nickels=0,x;
 
 CASH=0;
 TICKS=TICKS_PER_SECOND;
 set_rtcc(0);
 
 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256|RTCC_8_BIT);/*increments every 128us
 //and overflows every 32.7ms*/
 setup_oscillator(OSC_8MHZ | OSC_NORMAL | OSC_PLL_OFF);
 setup_timer_1(T1_EXTERNAL|T1_DIV_BY_1);
 setup_adc_ports(NO_ANALOGS);
 setup_adc(ADC_OFF);
 setup_comparator(NC_NC_NC_NC);
 setup_ccp1(CCP_OFF);
 
 set_timer1(0);
 
 enable_interrupts(INT_TIMER0);
 enable_interrupts(GLOBAL);
 port_a_pullups(3);
 delay_ms(50);
 
 
 lcd_init();
 delay_ms(50);
 lcd_putc('\f');
 
 if(!input(PIN_A0))
 {
 x=9;
 while(!input(PIN_A0) && x)
 {
 printf(lcd_putc,"Pending\nReset");
 lcd_gotoxy(8,2);
 printf(lcd_putc,"%d",x--);
 delay_ms(1000);
 }
 if(!x)
 {
 WRITE_LONG_EEPROM(0, (int32)0);
 lcd_putc('\f');
 printf(lcd_putc,"Reset\n PWR OFF");
 while(1);
 }
 }
 
 lcd_putc('\f');
 
 delay_ms(10);
 CASH=READ_LONG_EEPROM(0);
 LASTCASH=CASH;
 
 printf(lcd_putc,"CASH MX \n%8.1w",CASH);
 
 set_timer1(0);
 
 while(1)
 {
 update_time();
 
 if(!input(PIN_A5))
 {
 delay_ms(2);
 while(!input(PIN_A5));
 delay_ms(2);
 nickels=get_timer1();
 set_timer1(0);
 }
 if(nickels >0)
 {
 CASH=CASH+(nickels*5);
 nickels=0;
 
 }
 if(LASTCASH != CASH)
 {
 LASTCASH=CASH;
 if(CASH > (int32)9999999)
 {
 lcd_gotoxy(8,1);
 lcd_putc('#');
 CASH=0;
 }
 lcd_gotoxy(1,2);
 printf(lcd_putc,"%8.1w",CASH);
 MINUTES=0;
 SECONDS=0;
 }
 
 if(MINUTES > 4)
 {
 MINUTES=0;
 SECONDS=0;
 if(READ_LONG_EEPROM(0) != CASH)
 {
 WRITE_LONG_EEPROM(0,CASH);
 lcd_gotoxy(5,1);
 lcd_putc(' ');
 }
 }
 if(READ_LONG_EEPROM(0) != CASH)
 {
 lcd_gotoxy(5,1);
 lcd_putc('*');
 }
 }
 return (0);
 }
 
 
 | 
 _________________
 -Glenn
 |  |  
		|  |  
		| drolleman 
 
 
 Joined: 03 Feb 2011
 Posts: 116
 
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Nov 21, 2015 1:19 pm |   |  
				| 
 |  
				| lcd_putc needs to go somewhere 
 lcd_putc(char buffer)
 {
 
 // put charter somewhere
 
 }
 
 if you have something like this, you may be missing the prototype for this funtion
 |  |  
		|  |  
		| ghamblin 
 
 
 Joined: 02 Aug 2015
 Posts: 38
 Location: Tucson
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Nov 21, 2015 1:48 pm |   |  
				| 
 |  
				| I have lcd_putc() defined in gh_lcd.c. It's just a modification of the original CCS file lcd.c that I've been using for years. 
 As a test, I built this little program:
 
  	  | Code: |  	  | /*
 * File:   newmain.c
 * Author: glenn
 *
 * Created on November 21, 2015, 12:21 PM
 */
 
 #include <16F1823.h>
 #device WRITE_EEPROM = NOINT
 #fuses PUT,NOWDT,INTRC_IO,NOMCLR,NOCLKOUT,NOIESO,NOLVP,NOPROTECT,NODEBUG
 #USE STANDARD_IO(a)
 #USE STANDARD_IO(c)
 
 #use delay(clock=8M)
 
 #include <stdio.h>
 #include <stdlib.h>
 
 #include <lcd.c>
 
 
 
 int main(void)
 {
 
 printf(lcd_putc,"Hello") ;
 while(1);
 }
 
 | 
 And it generated these errors:
 
 *** Error 28 "/opt/picc/drivers/lcd.c" Line 163(4,5): Expecting an identifier  Bad SFR name
 *** Error 12 "/opt/picc/drivers/lcd.c" Line 163(5,9): Undefined identifier
 *** Error 48 "/opt/picc/drivers/lcd.c" Line 163(10,16): Expecting a (
 *** Error 28 "/opt/picc/drivers/lcd.c" Line 164(4,5): Expecting an identifier  Bad SFR name
 *** Error 48 "/opt/picc/drivers/lcd.c" Line 164(5,9): Expecting a (
 *** Error 48 "/opt/picc/drivers/lcd.c" Line 164(10,17): Expecting a (
 *** Error 28 "/opt/picc/drivers/lcd.c" Line 164(33,34): Expecting an identifier  Bad SFR name
 *** Error 48 "/opt/picc/drivers/lcd.c" Line 164(33,34): Expecting a (
 *** Error 43 "/opt/picc/drivers/lcd.c" Line 164(34,38): Expecting a declaration
 9 Errors,  0 Warnings.
 Build Failed.
 
 
 So something is amiss. Can you compile this little program?
 _________________
 -Glenn
 |  |  
		|  |  
		| dyeatman 
 
 
 Joined: 06 Sep 2003
 Posts: 1968
 Location: Norman, OK
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Nov 21, 2015 1:51 pm |   |  
				| 
 |  
				| You are missing some defines that must be before lcd.c Look at the comments in the lcd.c file for info.
 
  	  | Quote: |  	  | ////  To use port access, #define LCD_DATA_PORT to the SFR location of     //// ////  of the GPIO port that holds the interface, -AND- edit LCD_PIN_MAP    ////
 ////  of this file to configure the pin order.  If you are using a         ////
 ////  baseline PIC (PCB), then LCD_OUTPUT_MAP and LCD_INPUT_MAP also must  ////
 ////  be defined.
 | 
 _________________
 Google and Forum Search are some of your best tools!!!!
 |  |  
		|  |  
		| ghamblin 
 
 
 Joined: 02 Aug 2015
 Posts: 38
 Location: Tucson
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Nov 21, 2015 2:02 pm |   |  
				| 
 |  
				| Ah, yes. That info is in my header file. I forgot to put it in my simple program. 
 I added this, and it still fails, same errors. I don't understand why it used to compile OK, but now gives this weird error.
 
 
  	  | Code: |  	  | /*
 * File:   newmain.c
 * Author: glenn
 *
 * Created on November 21, 2015, 12:21 PM
 */
 
 #include <16F1823.h>
 #device WRITE_EEPROM = NOINT
 #fuses PUT,NOWDT,INTRC_IO,NOMCLR,NOCLKOUT,NOIESO,NOLVP,NOPROTECT,NODEBUG
 #USE STANDARD_IO(a)
 #USE STANDARD_IO(c)
 
 #use delay(clock=8M)
 
 #include <stdio.h>
 #include <stdlib.h>
 
 #include <lcd.c>
 
 #define LCD_DATA_PORT      getenv("SFR:PORTC")
 #define LCD_ENABLE_PIN  PIN_A2
 #define LCD_RS_PIN      PIN_C4
 #define LCD_RW_PIN      PIN_C5
 #define LCD_DATA4       PIN_C0
 #define LCD_DATA5       PIN_C1
 #define LCD_DATA6       PIN_C2
 #define LCD_DATA7       PIN_C3
 #define LCD_LINE_LENGTH 8
 
 int main(void)
 {
 
 printf(lcd_putc,"Hello") ;
 while(1);
 }
 [quote]
 
 [/quote]
 | 
 _________________
 -Glenn
 |  |  
		|  |  
		| dyeatman 
 
 
 Joined: 06 Sep 2003
 Posts: 1968
 Location: Norman, OK
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Nov 21, 2015 2:03 pm |   |  
				| 
 |  
				| The defines must be BEFORE LCD.C... _________________
 Google and Forum Search are some of your best tools!!!!
 |  |  
		|  |  
		| ghamblin 
 
 
 Joined: 02 Aug 2015
 Posts: 38
 Location: Tucson
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Nov 21, 2015 2:11 pm |   |  
				| 
 |  
				| Duh! Thanks. 
 OK, That compiles fine. So I'm back to my original problem.
 _________________
 -Glenn
 |  |  
		|  |  
		| dyeatman 
 
 
 Joined: 06 Sep 2003
 Posts: 1968
 Location: Norman, OK
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Nov 21, 2015 2:13 pm |   |  
				| 
 |  
				| I would first go back and add the defines prior to your gh_lcd.c include... _________________
 Google and Forum Search are some of your best tools!!!!
 |  |  
		|  |  
		| ghamblin 
 
 
 Joined: 02 Aug 2015
 Posts: 38
 Location: Tucson
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Nov 21, 2015 2:14 pm |   |  
				| 
 |  
				| Strike that. I just reopened my original file, and it compiled error free. 
 So that was a time sink I guess.
 
 
 Thank you for looking, I appreciate it.
 
 Glenn
 _________________
 -Glenn
 |  |  
		|  |  
		|  |  
  
	| 
 
 | You cannot post new topics in this forum You cannot reply to topics in this forum
 You cannot edit your posts in this forum
 You cannot delete your posts in this forum
 You cannot vote in polls in this forum
 
 |  
 Powered by phpBB © 2001, 2005 phpBB Group
 
 |