[an error occurred while processing this directive]
|
Из недавних постов на конференции сделал такой масив строк:
__flash u08 _OK[] = "OK\r";
__flash u08 _PAS[] = "+CPAS: 0\r";
__flash u08 _PIN[] = "+CPIN: READY\r";
__flash u08 _RING[] = "RING\r\0";
__flash u08 _NO_CAR[] = "NO CARRIER\r";
__flash u08 __flash *answer[] = {
_OK,
_PAS,
_PIN,
_RING,
_NO_CAR};
const uint answers_num = sizeof(answer)/sizeof(__flash u08 *);
Эту конструкцию компилятор проглотил.
Но вот когда я ее подключаю в код:
u08 search_answer(char *str_buf_Modem)
{
uint i;
for (i = 0; i < answers_num; i ++)
if (strstr (str_buf_Modem, answer[i])) return i + 1;
return ERROR;
}
Компилятор выдает ошибку:
project\Mobil\Programmer\-=cod=-\main.c (70) : Error[Pe167]: argument of type "unsigned char
__flash *" is incompatible with parameter of
type "char const *"
ругается на strstr (str_buf_Modem, answer[i]) в теле
функции search_answer strstr - стандартная функци С
поиска строки.
Когда я обьявляю масив символов так :
const __flash char *answer[] = {
"OK\r",
"C35i\r",
"+CPAS: 0\r",
"+CPIN: READY\r",
"RING\r\0",
"NO CARRIER\r"};
const uint answers_num = sizeof(answer)/sizeof(__flash char *);
ТО все ок!! Но так собака отжирает хороший кусок ОЗУ. А у меня
MEGA8515.
Это один из масивов строк, и к сожелению самый маленький.
Из за этой проблемы никак не могу нормально влесть в 512байт,
приходится постоянно чета удалять модифицыровать и тд.
Если не трудно, дате свое мнение об этом, я щас буду копаться, но время
просто жмет сильно, к утру прогу нужно закончить :)))
Пасибо.
Жду ответа.
E-mail: info@telesys.ru