ZEbr 0 10 мая, 2011 Опубликовано 10 мая, 2011 · Жалоба Помогите пожалуйста мозги уже "замылились". Есть массив из символов в формате char приходящий с RS485 (например: a[0]='1',a[1]='2',a[2]='.',a[3]='4').Нужно его преобразовать в десятичное число формата float (Например 12.4). Программирую на VisualDSP++ 4.5 процессор BlackFin 537. Я пробовал собрать все в строку и использовать функцию atof. Но потом мне сказали что данный тип процессора не поддерживает работу со строками. Уже не знаю что делать помогите пожалуйста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 11 мая, 2011 Опубликовано 11 мая, 2011 · Жалоба По 485 интерфейсу приходят коды символов ASCII. Как вариант для перевода в float можно создать массив где по определенному индексу(принятому по RS485 символу) будет находиться соответствующее число. Например a[0]=b[31], где 31 принятый символ '1', а b[31]=1. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gyga 0 11 мая, 2011 Опубликовано 11 мая, 2011 · Жалоба функция atof Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 11 мая, 2011 Опубликовано 11 мая, 2011 · Жалоба функция atof Человек же написал что данная функция не работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vik0 0 11 мая, 2011 Опубликовано 11 мая, 2011 · Жалоба Но потом мне сказали что данный тип процессора не поддерживает работу со строками. Извините, но это полнейший бред. Используйте atof (или sscanf) и не заморачивайтесь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ZEbr 0 11 мая, 2011 Опубликовано 11 мая, 2011 (изменено) · Жалоба Спасибо за помощь! Я решил всё в лоб: 1)Перевел char в short 2)Склеил в число 3)И разделил на порядок Огромно спасибо за помощь! Изменено 11 мая, 2011 пользователем ZEbr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться