This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

L104 and L16

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

Parents
  • CODE FOR LCD.c:-(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);
            }
    

    CODE FOR HEADER.h:-(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
    

Reply
  • CODE FOR LCD.c:-(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);
            }
    

    CODE FOR HEADER.h:-(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
    

Children