Добрый день!
Многофайловый проект, чёрт по.....
Подскажите, как обойти ошибку, извиняюсь что может быть повторяюсь.
Просто переопределения нигде не вижу, понимаю что чтото с включением файлов, пытался экстернить
но не помогло. Прикреплю проджект на всякий случай. Спросил на телесисах, но там молчок
Error[e27]: Entry "EN" in module driver_lcd ( C:\Program Files\IAR Systems\test\testlsd\Debug\Obj\driver_lcd.r90 )
redefined in module main ( C:\Program Files\IAR Systems\test\testlsd\Debug\Obj\main.r90 )
ИАР версия 4.хх.
имею след код
файл bitdef.h
Код
#ifndef BITDEF_H
#define BITDEF_H
#ifndef BOOL_t
#define BOOL_t
typedef uint8_t bool_t;
#endif // BOOL_t
#ifndef BitStr_t
#define BitStr_t
typedef volatile uint8_t * port_t;
typedef struct{
port_t Port;
bool_t Bit;
}Port_Bit;
#endif // BitStr_t
#pragma inline=forced
void SETDDR(const Port_Bit * pb){
*(pb->Port-1) |= 1 << pb->Bit;
}
#endif //BITDEF_H
файл driver_lcd.c
Код
#ifndef driver_lcd_C
#define driver_lcd_C
#include "driver_lcd.h"
#include "delay.h"
// Команда на настройку выводов управления линиями управления ЖКИ на выход
void lcd_CMND_port_out(void) {
SETDDR(RW);\
SETDDR(EN);\
SETDDR(RS);\
};
#endif //driver_lcd_C
файл driver_lcd.h
Код
#ifndef driver_lcd_H
#define driver_lcd_H
#include "bitdef.h"
// "E" Clock
Port_Bit dEN={&PORTB, 3};
const Port_Bit * EN = &dEN;
void lcd_CMND_port_out(void);
#endif //driver_lcd_H
Сообщение отредактировал sKWO - Apr 13 2008, 10:58