Jump to content

    
Sign in to follow this  
ZEbr

Помогите с преобразованием типов

Recommended Posts

Помогите пожалуйста мозги уже "замылились".

 

Есть массив из символов в формате char приходящий с RS485 (например: a[0]='1',a[1]='2',a[2]='.',a[3]='4').Нужно его преобразовать в десятичное число формата float (Например 12.4).

 

Программирую на VisualDSP++ 4.5 процессор BlackFin 537. Я пробовал собрать все в строку и использовать функцию atof. Но потом мне сказали что данный тип процессора не поддерживает работу со строками. Уже не знаю что делать помогите пожалуйста.

 

 

Share this post


Link to post
Share on other sites

По 485 интерфейсу приходят коды символов ASCII. Как вариант для перевода в float можно создать массив где по определенному индексу(принятому по RS485 символу) будет находиться соответствующее число. Например a[0]=b[31], где 31 принятый символ '1', а b[31]=1.

Share this post


Link to post
Share on other sites
Но потом мне сказали что данный тип процессора не поддерживает работу со строками.

Извините, но это полнейший бред.

 

Используйте atof (или sscanf) и не заморачивайтесь

Share this post


Link to post
Share on other sites

Спасибо за помощь! Я решил всё в лоб:

1)Перевел char в short

2)Склеил в число

3)И разделил на порядок

 

Огромно спасибо за помощь!

Edited by ZEbr

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this