[an error occurred while processing this directive]
|
Вопрос к знатокам ИАРа… void main(void) //Print_Menu_LCD(0x40,Main_Menu.second_line_LCD); // ###### Main Loop ###### // ”header.c” //”menu.h” /* [0] "GLABNOE MENU" */ Тепер сам вопрос – проект естественно состоит из нескольких проектов – так вот когда я вызываю функцию «Print_Menu_LCD(0x40,Main_Menu.second_line_LCD);» из любого другого файла проекта (кроме main) мне выдает ошибку Error[Pe070]:incomplete type is not allowed, extern struct LCD_MENU Main_Menu;
E-mail:
info@telesys.ru
// Main file
#include
#include
#include
#include
#include
#include "menu.h"
#include "header.c"
{ Set_up_LCD();
Main_Menu.first_line_LCD=Mes0; //присваиваем адрес первого элемента строки во флаши-//элементу структуры – все проходит без ошибок (в памяти ОЗУ четко виден FLASH адрес //первого элемента строки)
Main_Menu.second_line_LCD=Mes1;
Main_Menu.third_line_LCD=Mes2;
Main_Menu.forth_line_LCD=Mes3;
/*Печатает строку «second_line_LCD» из структуры «Main_Menu» в файле «main» без проблем
но когда эту же процедуру вызываю из других файлов проекта – компилятор начинает ругаться – говорит, что «second_line_LCD» */
while (1){
}
}
void Print_Menu_LCD(const unsigned char pos,const char __flash *t);//Print full screen menu on LCD
struct LCD_MENU {
char __flash *first_line_LCD; //pointer on string in FLASH
char __flash *second_line_LCD;//pointer on string in FLASH
char __flash *third_line_LCD; //pointer on string in FLASH
char __flash *forth_line_LCD; //pointer on string in FLASH
};
struct LCD_MENU Main_Menu;
__flash char Mes0[]={161,167,65,66,72,79,69,32,77,69,72,176,0};
В то время как из main файла все проходит на ура, когда заменяю на вызыв функцию «Print_Menu_LCD(0x40,Mes1);» - компилятор сразу понимает строку из флешки и компилит правельно. Во внешнем файле структуру и строку объявляю так
extern __flash char Mes1[];
Может компилятор не видит элементов структуры – кто просветит ?????
ВСЕМ БОЛЬШОЕ СПАСИ
Ответы