Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
28.10.2010, 19:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
|
Re: Си - это сложно и непонятно или нет?
Сообщение от OneTech
|
Неужто меряется и важна сотая доля градуса?
|
Перед продажей устр-во калибруют. Подключает прецизионный резистор равный 0 градусов. Чем лучше откалибруешь тем лучше будет работать поэтому важна сотая градуса. Не охота оправдываться перед заказчиками почему у них два прибора выдают разную мощность при одинаковой температуре.
|
|
|
|
28.10.2010, 19:51
|
|
Вид на жительство
Регистрация: 09.10.2009
Сообщений: 356
Сказал спасибо: 21
Сказали Спасибо 64 раз(а) в 46 сообщении(ях)
|
Re: Си - это сложно и непонятно или нет?
Конечно круто с плавающей точкой, но применяю фиксированную.
К примеру нужно отобразить 36,6 грд.:
Нужно отобразить 3,66:
Без проблем, только нужно иметь 5 знаков (вместе с точкой) вместо 4 в Вашем случае.
Сообщение от Gnider
|
По модбасу надо выдавать значение умноженное на 10,то есть 366
|
Выше Вы упоминали что это число умножаете на 10 перед отправкой по RS-485. 3,66 * 10 = 36,6 Простите, как у Вас передаётся знак после запятой?
__________________
Делая дело нужно в него верить на все 100%, иначе неизбежно будут возникать ошибки подпитывающие подсознательное сомнение.
Последний раз редактировалось OneTech; 28.10.2010 в 20:20.
|
|
|
|
28.10.2010, 23:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
|
Re: Си - это сложно и непонятно или нет?
Сообщение от OneTech
|
Конечно круто с плавающей точкой, но применяю фиксированную.
К примеру нужно отобразить 36,6 грд.:
Нужно отобразить 3,66:
Без проблем, только нужно иметь 5 знаков (вместе с точкой) вместо 4 в Вашем случае.
Выше Вы упоминали что это число умножаете на 10 перед отправкой по RS-485. 3,66 * 10 = 36,6 Простите, как у Вас передаётся знак после запятой?
|
В том то и смысл что надо убрать незначащие нули с обеих сторон. Это плохой стиль. Полный список допустимых вариантов:
99.9
9.99
0.99
0.09
-0.9
-9.9
-99
Вот такие варианты. Требование ТЗ. На атмеге получается очень долго.
А по модбасу передаеться 3.66 передаеться как 36. Там точность меньше 0.1 не нужна.
|
|
|
|
29.10.2010, 00:57
|
|
Вид на жительство
Регистрация: 09.10.2009
Сообщений: 356
Сказал спасибо: 21
Сказали Спасибо 64 раз(а) в 46 сообщении(ях)
|
Re: Си - это сложно и непонятно или нет?
Сообщение от Gnider
|
А по модбасу передаеться 3.66 передаеться как 36. Там точность меньше 0.1 не нужна.
|
Сообщение от Gnider
|
Перед продажей устр-во калибруют. Подключает прецизионный резистор равный 0 градусов. Чем лучше откалибруешь тем лучше будет работать поэтому важна сотая градуса. Не охота оправдываться перед заказчиками почему у них два прибора выдают разную мощность при одинаковой температуре.
|
Выдают то они отображая это число? А как можно лопухнуться перед заказчиками если пролетая через RS-485 число уже округлилось?
Сообщение от Gnider
|
Полный список допустимых вариантов:
99.9
9.99
0.99
0.09
|
Как вы отобразите допустимый вариант 0.09 если 0.09 * 10 = 0.9 В канале же целое число летит? - верно? тут только 2 варианта, отбросить после запятой или округлить вверх, значит дисплей покажет 0 или 0,1 но никак не 0.09. Другое дело если через канал прогнать 32-х разрядный float, тогда и округлять не нужно и отобразить можно как по ТЗ.
__________________
Делая дело нужно в него верить на все 100%, иначе неизбежно будут возникать ошибки подпитывающие подсознательное сомнение.
Последний раз редактировалось OneTech; 29.10.2010 в 01:02.
|
|
|
|
29.10.2010, 01:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
|
Re: Си - это сложно и непонятно или нет?
Сообщение от OneTech
|
Выдают то они отображая это число? А как можно лопухнуться перед заказчиками если пролетая через RS-485 число уже округлилось?
Как вы отобразите допустимый вариант 0.09 если 0.09 * 10 = 0.9 В канале же целое число летит? - верно? тут только 2 варианта, отбросить после запятой или округлить вверх, значит дисплей покажет 0 или 0,1 но никак не 0.09. Другое дело если через канал прогнать 32-х разрядный float, тогда и округлять не нужно и отобразить можно как по ТЗ.
|
Я привел допустимые варианты для 3-значного семисегментника.
По модбасу просто округляеться до до десятых. то есть если темперература
0.09 то на экране будет 0.09 а по модбасу придет 1 что означает 0.1 градуса
|
|
|
|
29.10.2010, 01:10
|
|
Вид на жительство
Регистрация: 09.10.2009
Сообщений: 356
Сказал спасибо: 21
Сказали Спасибо 64 раз(а) в 46 сообщении(ях)
|
Re: Си - это сложно и непонятно или нет?
Вот, о округлении я и говорю, и о том что на этом этапе сотая точность улетает в никуда.
__________________
Делая дело нужно в него верить на все 100%, иначе неизбежно будут возникать ошибки подпитывающие подсознательное сомнение.
|
|
|
|
29.10.2010, 01:17
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
|
Re: Си - это сложно и непонятно или нет?
Сообщение от OneTech
|
Вот, о округлении я и говорю, и о том что на этом этапе сотая точность улетает в никуда.
|
Но на экране то она нужна. Кроме того точность нужна для работы ПИД-регулятора. Поэтому вопрос для атмеги остаеться открытым.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:32.
|
|