Не компилируется пример из AppNote

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
kolshik
Открыл глаза
Сообщения: 69
Зарегистрирован: Вт фев 02, 2010 22:43:05

Не компилируется пример из AppNote

Сообщение kolshik »

Здравствуйте. Пытаюсь скомпиллировать проект, взятый из appnote AN643 microchip. Это ADPCM кодер/декодер, там есть такой код:
в adpcm.c

Код: Выделить всё

	/* Restore previous values of predicted sample and quantizer step
	   size index
	*/
	predsample = state.prevsample;
	index = state.previndex;
	step = StepSizeTable[index];
в adpcm.h

Код: Выделить всё

struct ADPCMState {
    signed long prevsample;        /* Predicted sample */
    int         previndex;         /* Index into step size table */
};
компиллятор XC16 выдает следующий отчет

Код: Выделить всё

Adpcm.c: In function 'ADPCMEncoder':
Adpcm.c:56:15: error: 'state' undeclared (first use in this function)
Adpcm.c:56:15: note: each undeclared identifier is reported only once for each function it appears in
Adpcm.c: In function 'ADPCMDecoder':
Adpcm.c:151:15: error: 'state' undeclared (first use in this function)
Я так понимаю, что это изъятие прошлых значений преобразований. До этого писал на asm, сейчас пытаюсь освоить С. Что делать не совсем понятно
Реклама
Pnjom-Penb
Мучитель микросхем
Сообщения: 469
Зарегистрирован: Вс авг 30, 2015 03:52:59

Re: Не компилируется пример из AppNote

Сообщение Pnjom-Penb »

А не было ругани по поводу "Не найден adpcm.h"? Возможно, в проекте не прописаны пути к каталогам, в которых, в частности, лежит этот самый adpcm.h.
Есть еще вариант - переменная "state" объявлена и не в ADPCM.c, и не в ADPCM.h и этот файл не включен в состав проекта. Тогда ищите, где объявлена переменная "state".
Реклама
kolshik
Открыл глаза
Сообщения: 69
Зарегистрирован: Вт фев 02, 2010 22:43:05

Re: Не компилируется пример из AppNote

Сообщение kolshik »

adpcm.h прописан дважды, в майне и adpcm.с
State нигде не объявлен. Пробовал прописать adpcm.с:
ADPCMState state;
не помогло. Как ее объявить?
Pnjom-Penb
Мучитель микросхем
Сообщения: 469
Зарегистрирован: Вс авг 30, 2015 03:52:59

Re: Не компилируется пример из AppNote

Сообщение Pnjom-Penb »

kolshik писал(а):adpcm.h прописан дважды, в майне и adpcm.с
И как это меняет ситуацию?!
kolshik писал(а):Пробовал прописать adpcm.с: ADPCMState state; не помогло. Как ее объявить?
Так, чтобы компилятор не ругался. Хотя, в исходном коде она же была объявлена... куда запропастилась? :dont_know:
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Siarzhuk
Потрогал лапой паяльник
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Re: Не компилируется пример из AppNote

Сообщение Siarzhuk »

kolshik писал(а):Пробовал прописать adpcm.с:
ADPCMState state;
не помогло. Как ее объявить?
Сю́ха-же, придётся полностью имя типа писать при объявлении:

Код: Выделить всё

struct ADPCMState state; 
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
Реклама
Ответить

Вернуться в «PIC»