может не правильно экраны редактируете, флоат верно отображается?
может не правильно экраны редактируете, флоат верно отображается?
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
флоат был на нуле. всегда.
я щас вот выдохнул немного, обновил на бету109, попробовал так и этак снова, с флоатом только не делал,
вобщем если вводить данные с панели в минутах, потом умножать на 60000 МУЛом - на выходе нормальный результат, больше чем 16 бит. вроде отрабатывает корректно. это справедливо только для переменных целочисленных отредактированных с панели. при умножении двух обычных констант - ограничение на результат не выше 65536 или лови фигню.
придется видимо мне вводить задержки по минутам. это то еще веселье - задержку в несколько дней минутами набирать.
ну хоть так, чем никак. а вообще ребята, это дизастер. полный. умножение это базовая операция, а вы совсем не тем занимаетесь, в новой бете глянул - вы уже и возведение в степень мутите....
грустно и смешно.
выкладываю последний репорт о своих муках, покуда доблестные рыцари нуля и единицы пишут еще одну бету
с дичайшими костылями мне все же удалось совокупиться с этим чудом враждебной техники
вобщем дела такие:
заводимый на MUL операнд - целая переменная или константа, неважно с панели или нет заводится - не может быть больше 65536. результат умножения может быть больше 65536, только если одна из 2 переменных связана с панелькой.
сначала я создал еще один левый экран, на который завел число 3600000 и вводил все в часах с другого экрана. результат - та же пурга что и раньше.
сделал так: на левом экране панельки завел переменную равную 60000. затем переменную rotation с панельки MUL на 60. и результаты MUL друг на друга.
и вроде бы получается как надо. на всякий случай еще результат вывожу на экран. для 24 часов значение равно 86400000 мс - правильно. вроде бы пишется в блоки нормально.
возможно, кому-то поможет сей чудный опыт
ну и я считаю, это все нужно в багрепорт - и быстро, решительно исправить
Последний раз редактировалось mza; 07.11.2015 в 14:19.
в симуляторе корректно
Выявили причину. Баг выявлен в модулях умножения, деления, деления с отстатком в программах ПР200 и ПР114. Проблему решили, также в OL будет предупреждение о возможных проблемах при умножении.
Суть проблемы что при умножении 2-х 4-байтовых чисел возникала ошибка, поэтому корректно отрабатываются только числа до 65535.
В следующих версиях встроенного ПО будет исправленно (1,07).
Вопрос еще один по флоуту, преобразование во флоут и использование FMUL с последующим преобразованием в INT также работает не корректно??? У нас не получилось выявить там ошибку. Можете прислать проект где это наблюдается?
Также для решения частной проблемы и корректной работы умножения можем вам предоставить прошивку для прибора 1.06 модифицированную, если укажите полную версию прибора и почту.
прибор уже на объекте, я вышел из положения с описанным мной выше костылем. мы через месяц планируем снова подобный объект, я так понял уже выйдет новая прошивка 1 07?
по флоату сейчас ничем не помогу, я этот проект с нестабильными результатами промежуточно не сохранял, и на руках ни прибора, ни ноута где все было
Гарантии дать не могу что через месяц выйдет 1.07 но это весьма вероятно. В случае чего пишите в личку.