|
Как правильно создать многофайловый проект, Ошибка при линковке |
|
|
|
 |
Ответов
|
Apr 13 2008, 10:55
|

Местный
  
Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530

|
Добрый день! Многофайловый проект, чёрт по..... Подскажите, как обойти ошибку, извиняюсь что может быть повторяюсь. Просто переопределения нигде не вижу, понимаю что чтото с включением файлов, пытался экстернить но не помогло. Прикреплю проджект на всякий случай. Спросил на телесисах, но там молчок 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
--------------------
нельзя недооценивать предсказуемость глупости
|
|
|
|
|
Apr 14 2008, 04:44
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(sKWO @ Apr 13 2008, 14:55)  Код typedef uint8_t bool_t; ... typedef struct{ port_t Port; bool_t Bit; }Port_Bit; ... Port_Bit dEN={&PORTB, 3}; Странно как то - eсли вы объявили тип bool_t, то зачем туда запихивать 3???? И вообще, ИМХО, очень уж у вас сложный способ устанавливать биты в порту  Может быть, конечно, ваш компилятор все это соптимизирует... И еще вопросик - зачем вам такие конструкции: Цитата Код #ifndef BOOL_t #define BOOL_t typedef uint8_t bool_t; #endif // BOOL_t У вас bool_t что, в разных h-файлах объявляется? Объявляйте только в одном, и затем включайте везде, куда надо. Код сильно упростится...
|
|
|
|
|
Apr 14 2008, 06:33
|
Знающий
   
Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447

|
Цитата(Непомнящий Евгений @ Apr 14 2008, 07:44)  И вообще, ИМХО, очень уж у вас сложный способ устанавливать биты в порту  Присоединяюсь. Код #ifndef BOOL_t #define BOOL_t typedef uint8_t bool_t; #endif // BOOL_t Подключите stdbool.h, и пользуйтесь bool как полноценным типом.
|
|
|
|
Сообщений в этой теме
alux Как правильно создать многофайловый проект May 6 2007, 14:07 jorikdima хидеры то подключены, а в опциях проекта пути к ни... May 6 2007, 14:20 alux Цитата(jorikdima @ May 6 2007, 17:20) хид... May 6 2007, 14:46  rezident Цитата(alux @ May 6 2007, 20:46) Все файл... May 6 2007, 18:25 andrej2005 Цитата(jorikdima @ May 6 2007, 18:20) хид... Apr 20 2008, 10:34 zltigo Цитата(alux @ May 6 2007, 17:07) void bat... May 6 2007, 14:24 SasaVitebsk Простите, решил сюда добавить, чтобы темы не плоди... Dec 9 2007, 19:06 singlskv Цитата(SasaVitebsk @ Dec 9 2007, 22:06) С... Dec 9 2007, 20:22 Сергей Борщ Цитата(SasaVitebsk @ Dec 9 2007, 21:06) п... Dec 9 2007, 21:56  alexander55 Цитата(Сергей Борщ @ Dec 10 2007, 00:56) ... Dec 11 2007, 06:17   Сергей Борщ Цитата(alexander55 @ Dec 11 2007, 08:17) ... Dec 11 2007, 09:51    alexander55 Цитата(Сергей Борщ @ Dec 11 2007, 12:51) ... Dec 11 2007, 10:29     Сергей Борщ Цитата(alexander55 @ Dec 11 2007, 12:29) ... Dec 11 2007, 13:07      alexander55 Цитата(Сергей Борщ @ Dec 11 2007, 16:07) ... Dec 11 2007, 13:39       Сергей Борщ Цитата(alexander55 @ Dec 11 2007, 15:39) ... Dec 11 2007, 15:20 Непомнящий Евгений Просветите плиз - что такое "п/п"? Dec 10 2007, 06:26 Николай Z Цитата(Непомнящий Евгений @ Dec 10 2007, 09... Dec 10 2007, 07:21 Непомнящий Евгений Что такое подпрограмма - я в курсе Просто не сооб... Dec 10 2007, 07:34 SasaVitebsk Я, собственно так и работаю. И думал так все. В с... Dec 11 2007, 10:58 Panych Подниму тему, чтоб не плодить...
Объявляю внешнюю ... Apr 7 2008, 13:32 gotty Цитата(Panych @ Apr 7 2008, 16:32) Подним... Apr 7 2008, 13:45  alux Цитата(gotty @ Apr 7 2008, 16:45) И ещё с... Apr 8 2008, 12:04 Panych gotty
спасибо, сделал функцию внешней, IAR ругнулс... Apr 7 2008, 14:15 MrYuran Цитата(Panych @ Apr 7 2008, 17:15) gotty
... Apr 8 2008, 12:11 ivainc1789 Тема о многостраничных файлах, задам и свой махонь... Apr 9 2008, 15:09 Непомнящий Евгений Цитата(ivainc1789 @ Apr 9 2008, 19:09) Те... Apr 9 2008, 15:51 rezident Цитата(ivainc1789 @ Apr 9 2008, 21:09) Те... Apr 9 2008, 21:55 alux Цитата(sKWO @ Apr 13 2008, 13:55) файл dr... Apr 13 2008, 14:08  sKWO Цитата(alux @ Apr 13 2008, 17:08) У вас в... Apr 13 2008, 18:14
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|