We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I am getting error like this...program is running fine,when all file made to one main file..bt problem while creating different file....can some one suggest,how to clear this. linking... *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: LCD_INIT MODULE: lcd.obj (LCD) *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _LCD_STR MODULE: lcd.obj (LCD) *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _LCD_CMD MODULE: lcd.obj (LCD) *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _LCD_DATA MODULE: lcd.obj (LCD) *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _DELAY MODULE: lcd.obj (LCD) *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_LCD_STR?LCD *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?LCD_INIT?LCD Program Size: data=15.0 xdata=0 code=652
This is my complete code:- suggest me plz...i thought i am good enough in c...bt still i am lagging in that....i will be thankful to u sir
MAIN.C:- #include <REGX51.H> #include"SERIAL.c" #include"LCD.c"
sbit rf=P2^0; sbit motor=P0^0;
unsigned char asc,ok[2],r[4],a,i,oxoa, a,m[20],j,temp[10],temp1[10];
\*prototypes*/ void cmdwrt_lcd(unsigned char cmd); void serial_transmit(unsigned char *srstr); void command(unsigned char d[]); void serial_tx(unsigned char srda); void delay1();
void gsm_send() { command("AT"); delay1(); command("AT+CMGF=1"); delay(65000); delay(65000); serial_transmit("AT+CMGS="); serial_tx('"'); serial_transmit("9710362655"); serial_tx('"'); serial_tx(0x0d); serial_tx(0x0a); delay(65000); delay(65000); delay(65000); delay(65000); serial_transmit("Vehicle Thefted "); serial_tx(0x0a); serial_transmit("Send Stop message to stop the vehicle"); serial_tx(0x0a); delay(650); serial_tx(0x1A); delay(65000); delay(65000); delay(65000); delay(65000); } void gsm_send1() { command("AT"); delay1(); command("AT+CMGF=1"); delay(65000); delay(65000); serial_transmit("AT+CMGS="); serial_tx('"'); serial_transmit("9710362655"); serial_tx('"'); serial_tx(0x0d); serial_tx(0x0a); delay(65000); delay(65000); delay(65000); delay(65000); serial_transmit("Your Vehicle has been stopped"); serial_tx(0x0a); delay(650); serial_tx(0x1A); delay(65000); delay(65000); delay(65000); delay(65000); }
void wait_0x0a() { do { a=serial_rx(); }while(a!=0x0a); } void rec_msg() { //recevingmessage unsigned char i=0; do
{ while(RI==0); temp[i]=SBUF; i++; RI=0; } while(temp[i-1]!=0x0A); } void check_ok() { unsigned char i; for(i=0;i<=3;i++) //receving OK// { while(RI==0); temp1[i]=SBUF; RI=0; } } void command(unsigned char d[]) { serial_transmit(&d[0]); cmdwrt_lcd(0x80); //display_lcd(&d[0]); serial_tx(0x0d); wait_0x0a(); check_ok(); temp1[2]='\0'; delay(65000); delay(65000); cmdwrt_lcd(0xc0); } void delay1() { delay(65000);delay(65000);delay(65000); } void gsm_read() { command("AT"); delay1(); command("AT+CMGF=1"); delay1(); command("AT+CGSMS=1"); delay1(); command("AT+CMGD=1"); delay1(); cmdwrt_lcd(0x01); cmdwrt_lcd(0x80); display_lcd("Waiting for Msg"); for(j=0;j<=15;j++) { while(RI==0); //recevingmessage m[j]=SBUF; RI=0; } delay1(); cmdwrt_lcd(0xC0); display_lcd(&m[0]); delay1(); cmdwrt_lcd(0x01); cmdwrt_lcd(0x80); serial_transmit("AT+CMGR=1"); display_lcd("AT+CMGR=1"); serial_tx(0x0d); wait_0x0a(); wait_0x0a(); wait_0x0a(); rec_msg(); delay1(); temp[4]='\0'; cmdwrt_lcd(0xc0); display_lcd(&temp[0]); delay1(); delay1(); if(temp[0]=='S'&& temp[1]=='t'&&temp[2]=='o'&&temp[3]=='p') { motor=0; cmdwrt_lcd(0x01); cmdwrt_lcd(0x80); display_lcd("Vehicle Stopped"); gsm_send1();
}
} void main() { serial_init(); lcd_init(); P0=0x00; display_lcd("VEHI.THEFT ALERT"); cmdwrt_lcd(0xC0); display_lcd("SYSTEM USING GSM"); motor=1; delay(65000); delay(65000); delay(65000); delay(65000); while(1) { if(rf==0) { cmdwrt_lcd(0x01); display_lcd(" VEHICLE THEFTED"); gsm_send(); gsm_read(); while(rf==0); } } }
lcd.c:-
include <REGX51.H>
sbit rs = P3^5; sbit rw = P3^6; sbit en = P3^7;
void delay(unsigned int dela) { unsigned int i; for(i=0;i<dela;i++); }
void cmdwrt_lcd(unsigned char cmd) { P1 = cmd; rs = 0; rw = 0; en = 1; delay(15); en = 0; delay(150); }
void datawrt_lcd(unsigned char datas) { P1 = datas; rs = 1; rw = 0; en = 1; delay(15); en = 0; delay(150); }
void display_lcd(unsigned char *lcdstr) { while (*lcdstr !='\0') { datawrt_lcd(*lcdstr); lcdstr++; } }
void lcd_init() { cmdwrt_lcd(0x38); cmdwrt_lcd(0x0C); cmdwrt_lcd(0x01); cmdwrt_lcd(0x80); }
SERAIL.c:-
#include <REGX51.H>
#include"header.h" //void datawrt_lcd(unsigned char datas);
void serial_init() { TMOD = 0x20; TH1 = 0xFD; SCON = 0x50; TR1 = 1; }
void serial_tx(unsigned char srda) { SBUF = srda; while(TI == 0); TI = 0; }
void serial_transmit(unsigned char *srstr) { while(*srstr != '\0') { serial_tx(*srstr); //datawrt_lcd(*srstr); srstr++; } }
unsigned char serial_rx() { unsigned char rbuf; while(RI == 0); RI = 0; rbuf = SBUF; return rbuf; }
HEADER.h:-
#ifndef HEADER_H #define HEADER_H
extern void serial_tx(unsigned char); extern void serial_transmit(unsigned char *); extern unsigned char serial_rx(); extern void serial_init(); extern void lcd_init(); extern void display_lcd(unsigned char *); extern void datawrt_lcd(unsigned char); extern void cmdwrt_lcd(unsigned char); extern void delay(unsigned int);
#endif
getting error as linking... *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: SERIAL_RX MODULE: SERIAL.obj (SERIAL) *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _SERIAL_TRANSMIT MODULE: SERIAL.obj (SERIAL) *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _SERIAL_TX MODULE: SERIAL.obj (SERIAL) *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: SERIAL_INIT MODULE: SERIAL.obj (SERIAL) *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: LCD_INIT MODULE: LCD.obj (LCD) *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _DISPLAY_LCD MODULE: LCD.obj (LCD) *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _DATAWRT_LCD MODULE: LCD.obj (LCD) *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _CMDWRT_LCD MODULE: LCD.obj (LCD) *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _DELAY MODULE: LCD.obj (LCD) *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?SERIAL_INIT?SERIAL *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_SERIAL_TRANSMIT?SERIAL *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?SERIAL_RX?SERIAL *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_DISPLAY_LCD?LCD *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?LCD_INIT?LCD Program Size: data=60.0 xdata=0 code=1087