lasal
Joined: 25 Jan 2012 Posts: 13
|
Compiling multiple source files |
Posted: Tue Apr 03, 2012 11:34 pm |
|
|
I need to split my source code in to pieces in order to maintain the simplicity but when compiling it gives number of errors.
Please somebody help me.
Code: |
// main source file
#include <gps_main.h>
#include <Clock_functions.c>
#define Satalite_icon 0
#define Signal_level1 1
#define Signal_level2 2
#define Signal_level3 3
#define Signal_level4 4
#define Signal_level5 5
#define Hammer_icon 6
#define Clock_icon 7
#define RTC_SCLK PIN_A0
#define RTC_IO PIN_A1
#define RTC_RST PIN_A2
#include <DS1302.C>
#define LCD_DB4 PIN_C1
#define LCD_DB5 PIN_C2
#define LCD_DB6 PIN_C3
#define LCD_DB7 PIN_D0
#define LCD_RS PIN_A7
#define LCD_RW PIN_A6
#define LCD_E PIN_C0
#include <flex_lcd.c>
//function decleration
void lcd_load_custom_chars(void);
void display_time();
void display_date();
void set_time();
//void set_date_year();
//void set_date_mth();
//void set_date_day();
//void set_date_dow();
//void clr_line2();
//void clr_line1();
//variable decleration
unsigned int state=0,loop=0;
unsigned int hr,min,sec;
volatile unsigned int set_hr,set_min;
unsigned int day,mth,year,dow,hour;
volatile unsigned int set_day,set_mth,set_year,set_dow;
const int c=0x20;
unsigned int backlit=0;
const int8 lcd_custom_chars[] =
{
// Char Number 0 -- Satalite_icon
0x07,0x15,0x0A,0x07,0x07,0x0A,0x15,0x07
// Char Number 1 -- Signal_level1
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10
// Char Number 2 -- Signal_level2
0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x18
// Char Number 3 -- Signal_level3
0x00,0x00,0x00,0x00,0x00,0x04,0x0C,0x1C
// Char Number 4 -- Signal_level4
0x00,0x00,0x00,0x00,0x02,0x06,0x0E,0x1E
// Char Number 5 -- Signal_level5
0x00,0x00,0x01,0x01,0x03,0x07,0x0F,0x1F
// Char Number 6 -- Hammer_icon
0x1C,0x1E,0x05,0x04,0x04,0x04,0x04,0x04
// Char Number 7 -- Clock_icon
0x00,0x0E,0x15,0x15,0x17,0x11,0x0E,0x00
};
//INT0 external interrupt
#int_EXT
void EXT_isr(void)
{
}
//transmit buffer empty
#int_TBE
void TBE_isr(void)
{
}
//recieve data awailable
#int_RDA
void RDA_isr(void)
{
}
#int_TIMER1
void TIMER1_isr(void)
{
}
#int_TIMER2
void TIMER2_isr(void)
{
}
#int_TIMER0
void TIMER0_isr(void)
{
}
void main()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256|RTCC_8_bit); //32.7 ms overflow
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); //262 ms overflow
setup_timer_2(T2_DIV_BY_16,255,16); //2.0 ms overflow, 32.7 ms interrupt
setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
enable_interrupts(INT_EXT);
enable_interrupts(INT_TBE);
enable_interrupts(INT_RDA);
enable_interrupts(INT_TIMER1);
enable_interrupts(INT_TIMER2);
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
setup_oscillator(OSC_8MHZ);
rtc_init();
lcd_init();
delay_ms(500);
while(true){
display_time();
display_date();
}
}//main loop ends
void display_time(){
lcd_load_custom_chars();
rtc_get_time(hr,min,sec) ;
lcd_gotoxy(0,1);
printf(lcd_putc,"TIME%02d:%02d:%02d"hr,min,sec);
printf(lcd_putc, "\f \000F \n");
//printf(lcd_putc,"\000");
lcd_gotoxy(0,15);
lcd_putc(Satalite_icon);
}
void display_date(){
rtc_get_date(day,mth,year,dow);
lcd_gotoxy(1,2);
if(dow==1)printf(lcd_putc," %02d-%02d-%02d SUN" day,mth,year);
if(dow==2)printf(lcd_putc," %02d-%02d-%02d MON" day,mth,year);
if(dow==3)printf(lcd_putc," %02d-%02d-%02d TUE" day,mth,year);
if(dow==4)printf(lcd_putc," %02d-%02d-%02d WED" day,mth,year);
if(dow==5)printf(lcd_putc," %02d-%02d-%02d THU" day,mth,year);
if(dow==6)printf(lcd_putc," %02d-%02d-%02d FRI" day,mth,year);
if(dow==7)printf(lcd_putc," %02d-%02d-%02d SAT" day,mth,year);
//delay_ms(200);
}
void lcd_load_custom_chars(void)
{
int8 i;
// Set address counter pointing to CGRAM address 0.
lcd_send_byte(0, 0x40);
// Load custom lcd character data into CGRAM.
// It can only hold a maximum of 8 custom characters.
for(i = 0; i < sizeof(lcd_custom_chars); i++)
{
lcd_send_byte(1, lcd_custom_chars[i]);
}
// Set address counter pointing back to the DDRAM.
lcd_send_byte(0, 0x80);
}
//clock functions file
#include <gps_main.h>
void set_time(){
delay_ms(1);
rtc_get_time(hr,min,sec);
lcd_gotoxy(0,1);
printf(lcd_putc,"SET TIME %02d:%02dn"hr,min);
lcd_gotoxy(1,0);
printf(lcd_putc," %15c" c);
delay_ms(200);
if(input_state(PIN_C6)==0){
//beep();
set_hr=hr;
set_hr++;
if(set_hr>23)set_hr=0;
hour=set_hr;
rtc_set_datetime(day,mth,year,dow,hour,min);
backlit =0;
}
if(input_state(PIN_C7)==0){
//beep();
set_min = min;
set_min++;
if(set_min>59)set_min=0;
min=set_min;
rtc_set_datetime(day,mth,year,dow,hour,min);
backlit =0;
}
if(input_state(PIN_D4)==0){
//beep_twice();
set_min = 0;
min = set_min;
set_hr = 0;
hour = set_hr;
rtc_set_datetime(day,mth,year,dow,hour,min);
backlit =0;
}
backlit++;
if(backlit==400){output_low(PIN_D6);}
loop++;
if(loop==2000)state = 0;
if(input_state(PIN_D5)==0){
delay_ms(20);
//beep_twice();
backlit =0;
loop = 0;
}
}
|
// error messages
Code: |
Clean: Deleting intermediary and output files.
Clean: Deleted file "gps_main.ESYM".
Clean Warning: File "F:\GPS_software\gps_main.o" doesn't exist.
Clean: Deleted file "gps_main.ERR".
Clean: Done.
Executing: "E:\PICC\Ccsc.exe" +FM "gps_main.c" +EXPORT +DF +LN +T +A +M +Z +Y=9 +EA
*** Error 23 "E:\PICC\devices\16F887.h" Line 2(8,9): Can not change device type this far into the code
*** Error 48 "E:\PICC\devices\16F887.h" Line 204(2,6): Expecting a (
*** Error 48 "E:\PICC\devices\16F887.h" Line 204(21,26): Expecting a (
*** Error 43 "E:\PICC\devices\16F887.h" Line 204(0,1): Expecting a declaration
*** Error 23 "F:\GPS_software\gps_main.h" Line 2(8,9): Can not change device type this far into the code
*** Error 48 "F:\GPS_software\gps_main.h" Line 2(9,12): Expecting a (
*** Error 43 "F:\GPS_software\gps_main.h" Line 2(0,1): Expecting a declaration
*** Error 23 "F:\GPS_software\gps_main.h" Line 3(8,9): Can not change device type this far into the code
*** Error 48 "F:\GPS_software\gps_main.h" Line 3(9,12): Expecting a (
*** Error 43 "F:\GPS_software\gps_main.h" Line 3(13,15): Expecting a declaration
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 6(28,29): Undefined identifier -- rtc_get_time
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 7(14,15): Undefined identifier -- lcd_gotoxy
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 8(23,31): Undefined identifier lcd_putc
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 9(14,15): Undefined identifier -- lcd_gotoxy
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 10(11,19): Undefined identifier lcd_putc
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 15(16,22): Undefined identifier set_hr
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 16(16,22): Undefined identifier set_hr
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 17(19,25): Undefined identifier set_hr
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 18(16,20): Undefined identifier hour
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 19(32,33): Undefined identifier -- rtc_set_datetime
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 20(12,19): Undefined identifier backlit
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 25(25,32): Undefined identifier set_min
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 26(17,24): Undefined identifier set_min
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 27(20,27): Undefined identifier set_min
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 28(17,20): Undefined identifier min
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 29(33,34): Undefined identifier -- rtc_set_datetime
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 30(9,16): Undefined identifier backlit
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 35(25,32): Undefined identifier set_min
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 36(5,8): Undefined identifier min
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 37(24,30): Undefined identifier set_hr
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 38(6,10): Undefined identifier hour
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 39(17,18): Undefined identifier -- rtc_set_datetime
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 40(9,16): Undefined identifier backlit
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 42(13,20): Undefined identifier backlit
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 43(4,11): Undefined identifier backlit
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 44(13,17): Undefined identifier loop
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 45(16,20): Undefined identifier loop
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 50(9,16): Undefined identifier backlit
*** Error 12 "F:\GPS_software\Clock_functions.c" Line 51(18,22): Undefined identifier loop
F:\GPS_software\gps_main.o ===> 39 Errors, 0 Warnings.
Halting build on first failure as requested.
BUILD FAILED: Wed Apr 04 11:01:37 2012
|
Please help to split the code. |
|