Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по С
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Bogdan
Здравствуйте, если кто поможет, заранее спасибо.
Вопрос можжет и тривиален, но...
Для поднятия оодного сенсора (сенсор мышки лазерной ADNS9500) использую TMS320 серию MCU и делаю это через SPI.
В описании процедуры загрузки SROM для работы сенсора указано использовать данные с файла в котором код.

Точнее будет так:
----------------
SROM Download
This function is used to load the Avago supplied fi rmware
fi le contents into the ADNS-9500 after sensor power up
sequence. The firmware file is an ASCII text file.
----------------
В файле данные вот такого формата: 03 a0 62 06....... всего 3К

Я в Code composer studio с помощбю C хотел загрузить данные как массив, чтобы работать, и сделал так:

char SROM [3070]={0x03,0xa0,0x62,0x06,..........

но ничего не получилось.
Может в чем другом ошибка, но правильно ли я использовал данные из файла, уверенности нет ???
В приложении фалы, если я непонятно написал.
Буду благодарен за замечания...
sigmaN
Да вроде правильно Вы мыслите..должно работать. Я таким образом wav файлы в сишные исходники закидывал.
Tiro
Цитата(Bogdan @ Dec 6 2011, 22:05) *
Здравствуйте, если кто поможет, заранее спасибо.

----------------
SROM Download
This function is used to load the Avago supplied fi rmware
fi le contents into the ADNS-9500 after sensor power up
sequence. The firmware file is an ASCII text file.
----------------
В файле данные вот такого формата: 03 a0 62 06....... всего 3К

Я в Code composer studio с помощбю C хотел загрузить данные как массив, чтобы работать, и сделал так:

char SROM [3070]={0x03,0xa0,0x62,0x06,..........

но ничего не получилось.


Вообще-то это не верно. Вы видите в текстовом файле текстовые строки, а пытаетесь загрузить двоичный массив. В текстовом виде код цифры "0" это 0x30 и т.д.

Вам в массив нужно ввести данные, как в файле:
={
'0','3',\r,\n,
'a','0',\r,\n,
и так далее. Проще написать утилитку на Си, чтобы она сама коды ASCII в описание массива на Си из текста переводила и втыкать в исходник по #include.

Или выводите свой массив через печать двоичных данных в шастнадцатеричные аски rolleyes.gif

aaarrr
Цитата(Tiro @ Dec 7 2011, 00:52) *
Вообще-то это не верно. Вы видите в текстовом файле текстовые строки, а пытаетесь загрузить двоичный массив. В текстовом виде код цифры "0" это 0x30 и т.д.

Хоть бы даташит посмотрели ради интереса. Все правильно топикстартер делает.
Tiro
Цитата(aaarrr @ Dec 7 2011, 00:28) *
Хоть бы даташит посмотрели ради интереса. Все правильно топикстартер делает.


Случаем не на язык Си даташит посмотреть? biggrin.gif
Вы бы хоть в файл приложенный глянули ради интереса.
sigmaN
Я думаю вы "перемудрили".
Хотя-бы потому, что фирмварь врят-ли будет состоять из сплошных \r\n
Tiro
Цитата(sigmaN @ Dec 7 2011, 00:39) *
Я думаю вы "перемудрили".
Хотя-бы потому, что фирмварь врят-ли будет состоять из сплошных \r\n


Ребят, вы задрали. У него фирмварь занимает 11,99 КБ, имеет 3070 строчек. Ну скачайте, блин, приложенный файл-то. Там он и состоит из сплошных CR LF.
aaarrr
Цитата(Tiro @ Dec 7 2011, 01:36) *
Вы бы хоть в файл приложенный глянули ради интереса.

Мне достаточно взглянуть на его размер - 12кБайт. Сенсор ждет 3кБайта данных.

Цитата(Tiro @ Dec 7 2011, 01:43) *
Ребят, вы задрали. У него фирмварь занимает 11,99 КБ, имеет 3070 строчек. Ну скачайте, блин, приложенный файл-то. Там он и состоит из сплошных CR LF.

Нажмите для просмотра прикрепленного файла
Теперь, надеюсь, все понятно?
Tiro
Цитата(aaarrr @ Dec 7 2011, 00:43) *
Мне достаточно взглянуть на его размер - 12кБайт. Сенсор ждет 3кБайта данных.


SROM Download
This function is used to load the Avago supplied fi rmware
fi le contents into the ADNS-9500 after sensor power up
sequence. The firmware file is an ASCII text file.

Как переведете фразу? Впрочем, мне уже не интересно и свое мнение изложил.
aaarrr
Цитата(Tiro @ Dec 7 2011, 01:50) *
Как переведете фразу? Впрочем, мне уже не интересно и свое мнение изложил.

Они могли бы и в виде zip-файла SROM приложить, так что, пихали бы zip не распаковывая? Неправильное ваше мнение, увы.
Tiro
Цитата(aaarrr @ Dec 7 2011, 00:54) *
Они могли бы и в виде zip-файла SROM приложить, так что, пихали бы zip не распаковывая? Неправильное ваше мнение, увы.


Не сомневаюсь, что есть еще много способов нетривиального теста функции SROM Download biggrin.gif
_pv
Цитата(Tiro @ Dec 7 2011, 04:50) *
The firmware file is an ASCII text file.
Как переведете фразу?

то что файл который с прошивкой который лежит на их сайте он ascii, а не бинарный и не надо его прямо так пихать в сенсор. тем более что как уже заметили выше, прямо так не влезет, размер прошивки должен быть 1,5 или 3 кБ
ReAl
Цитата(Tiro @ Dec 6 2011, 23:50) *
The firmware file is an ASCII text file.
Как переведете фразу? Впрочем, мне уже не интересно и свое мнение изложил.
Intel HEX, Motorola S-record, атмеловский формат — все они "ASCII text file", что не означает, что прошивку для ATmega48 в свой производственный программатор на ATmega64 я должен ложить в виде
Код
uint8_t firmware[] PROGMEM = {
  ':', '0', '0' // и так далее
};
и в таком же виде заливать в микроконтроллер.
Впрочем, если Вам неинтересно, можете пробовать прошивать в микроконтроллеры Intel HEX «как есть», не переводя в двоичную форму.
Tiro
Пришлось все же лезть в дейташит, сенсор действительно требует двоичный дамп. Вы все были правы, приношу извинения.

Получается, что вопрос не совсем по Си.
Bogdan
Всем спасибо за ответы.
Я просто еще несколько боков нашел в своем творении.
Сейчас пробую разные варианты. Вообще, человек который это уже делал сказал, что он просто добавил перед каждым елементом файла "0x", чтоб была возможность прочитать массив данных в формате HEX.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.