Вот пишу прогу для ATMega128 на IAR C v2.28a. Хочу сравнить строку в ОЗУ со строкой в ПЗУ. Хочу для этого использовать функцию memcmp_P (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Беня 30 сентября 2003 г. 13:59

Не хочет компилировать.
Вот текст проги :

#include "iom128.h" // в оригинале здесь другие кавычки
#include "pgmspace.h"

int j ;
__flash char my_str[] = "Hello, World!" ;
char just_string[ 80] ;
void main( void) {
j = 0 ;
if( memcmp_P( just_string, my_str, 5)) {
j ++ ;
}
}

То ли не для всех процессоров есть эта функция ? Вроде как в пакете имеется два файла "pgmspace.h". В одном из них есть описание memcmp_P, а в другом нет. По умолчанию инклюдится тот файл, в котором нет этого описания. Если я добавляю в файл описание этой функции из другого файла, то все равно ругается на объявление. Может, кто-то сталкивался с такими заморочками ?
Можно, конечно, скопировать строку из ПЗУ в ОЗУ и применить функцию memcmp(), но это как-то несолидно :-)))

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru