Это домашнее задание в универе. СИльно не пинайте пожалуйста, т.к. пока не шибко в этом разбираюсь.
Я написал КИХ фильтр для компьютера на обычном Си. Проверил, все работает. Но в CCS не хочет.
Я сразу подумал, что дело в типах данных. Оказалось, что sizeof(int) у CCS равен 1, sizeof(long int)=2, sizeof(long long int) = 4
Я создал свои типы
typedef long int myINT16;
typedef long long int myINT32;
Создал бинарный файл, куда записал 0x01 0x02 0x03 0x04
Делаю чтение
Код
fread(&inValue, sizeof(myINT16), 1, fp);
Переменная inValue становится равной 65538, что 10002 в HEX.
На копьютере был бы результат 0201.... а тут не пойми что..
Собственно вопрос- как всетаки сделать нормально, чтобы получать ожидаемые данные. Вообще эти процессоры BigEndian или LiteEndian или какие вообще?
Заранее спасибо.
Сделал файл 0x12 0x34, в переменную считалось 0x120034 откуда 00 по середине взялся?