Испоьзую IAR Kickstart. Задача следующая. На контроллере есть АЦП. Соответственно на него надо подавать аналоговый сигнал

, но источника этого сигнала нет. Поэтому с помощью макросов захотелось сэмулировать работу АЦП следующим образом:
заранее в файл например из матлаба записывает в двоичном виде оцифрованный сигнал, который хотели бы подать на АЦП. В ИАРе в проге делаем обработчик прерывания для АЦП, а само прерывание инициируется тайером А с частотой 512 раз в секунду. По идее надо в обработчике сделать что то типа
Код
Datain = ADC12MEM0
но так как сигнал то не подается поэтому ADC12MEM0 пустует. Поэтому ставим брейкпоинт, в котором выполняется макрос LoadData(). В этом макросе переменной Datain присваивается значение как бы заране мной оцифрованное

. Значение эт берется из файла, последовательно байт за байтом (Естественно файл заранее открывается ) с помощью макрофункции __readFileByte. В справке написано что возвращает эта функция считанный байт в формате uchar, а если конец файла или ошибка, то -1. Так вот, сам файл, который я заранее создал и заполнил с помощью матлаба соделжит порядка 800 байт и если считывать тем же матлабом то все они и считываются. Однако если читать файл с помощью указанной макрофункции, то считывается только 43 байта. А при считывании следующего байта функция возвращает -1.
Почему?
И еще 2 вопроса. Что делает функция __readFile()? Ест ли возможность использовать массивы в макросах. ТО есть считать сразу весь файл в массив а потом с этим массивом работать?
Спасибо.