sidy
Свой-
Постов
376 -
Зарегистрирован
-
Посещение
-
Artery USART перестали работать
sidy ответил fpga_student тема в ARM
Проверьте тактирование USART модуля -
Т.е. из всего вышесказанного получается: чтобы получить число в требуемом десятичном виде мы мантиссу умножаем на 10 и полученное делим на порядок. Интересное свойство.
-
Т.е. мы берем экспоненту в явном виде: data >> 23 & 0хFF и отнимаем ее от 150 (?) и сдвигаем на это значение мантиссу & исходное число... Осталось понять что есть 150
-
Спасибо! Думаю это просто отличное решение. Только не совсем понятно: что означает (откуда берется) число 150?
-
Это все понятно и даже используется. Просто есть один старый проект в который потребовалось добавить функционал.
-
Да действительно, соптимизировал: 3,4 мкс занимает такое преобразование.
-
Не могу сказать точно. Время выполнение данного участка кода я измеряю с помощь установки 1 и сброса в 0 ножки МК. В данном случае там всегда ноль, т.е. в 1 установиться не успевает. Можно сделать вывод что преобразование происходит очень быстро)
-
Применение такого выражение позволило снизить время выполнения с 6 мкс до 5,2 мкс.
-
Да, это покупное устройство.
-
Если в десятичном виде, то уложиться (от - 80 до 200) или если умножить на 10 (чтобы иметь 1 знак после запятой) от -800 до 2000.
-
PIC24HJ128GP506
-
Добрый день есть устройство, которое передает в микроконтроллер значения в виде float_32 IEEE 754 Например -12.5 это будет 0xC148 0000 Мне в микроконтроллере данное число нужно как -125; Пробовал преобразовать как: int32_t a; float *b; b=(float*) &a return *b * 10; Все нормально получаю -125. Но в микроконтроллере нет аппаратной поддержки float, и всё это преобразование занимает 6 мкс. Хотелось бы конечно быстрее. В связи с этим возник вопрос можно ли это преобразования сделать как-то по другому? Желательно с помощью сдвигов и циклов целочисленных. Я попробовал получить отдельно: знак, мантиссу и экспоненту – все правильно, но как все это склеить в число не совсем понятно: sign = (1-2*(number>>31)); printf("%d\n", sign); exponenta = ((number<<1)>>24)-127; printf("%d\n", exponenta); mantissa = (number<<9)>>9; printf("%d\n", mantissa); Может есть возможность перехода от числа с плавающей точкой к числу с фиксированной точкой?
-
Протокол МЭК 60870-5-101 с чего начать изучение?
sidy опубликовал тема в В помощь начинающему
Добрый день! Появилась необходимость использования протокола МЭК 60870-5-101. Раньше никогда не использовал и хотелось бы получше с ним разобраться. По мимо самого ГОСТа может кто подсказать хорошую и понятную литературу (статьи) по данному стандарту? -
Программ для эмуляции CAN
sidy опубликовал тема в Controller Area Network (CAN)
Добрый день! У меня есть устройство с CAN на борту и есть преобразователь USB - CAN для ПК. Хотелось бы узнать, есть ли какие-нибудь программы для ПК, чтобы пообщаться с CAN-устройством? -