Serjik писал(а): ↑22.09.2019{, 08:41}
именно что за время. Способ хорош, но еще раз повторю, забить скетчем память и все это будет безбожно врать. Я же хочу подсчет по импульсам. Нам же известно колличество импульсов за отрезок пройденного расстояния! 14 импульсов на метр!
Я так понимаю, Вы предпочитаете непонятные споры тому, чтобы просто попробовать? Чем там забъется память? Что врать будет? Вы насчитали 14 импульсом на метр и желаете точности с запятыми? Чтобы уменьшить бесполезные посты в теме, ниже небольшой ликбез по работе датчиков скорости и спидометров.
Помимо общепринятых норм и правил среди автопроизводителей есть еще тахография. Тахограф устаналивается на транспортные средства, программируется и далее обслуживается аккредитованными масетсркими. Калибровка тахографа включает в себя вычисление коэффициента (количество импульсов на один км). Для этого замеряется рулеткой участок длиной от 30 до 50 метров или используется специальный стенд, на котором крутятся колеса транспортного средства. На этой дистанции вычисляется количество импульсов с датчика скорости и рассчитывается их количество на 1 км. Этот коэффициент есть в паспортных данных спидометров. Есть спидометры с программируемым коэффициентом.
Если посмотрите паспортные данные спидометров, то увидите там допустимую погрешность скорости от 1 до 8% в зависимости от производителя и исполнения. Странно было бы увидеть спидометр, показывающий десятые или сотые доли км/ч.
Теперь по поводу подсчета. Я не знаю, как Вы понимаете то, что Вам пишут, но и мой вариант, и то, что Вам советовали ранее - это подсчет количества импульсов за единицу времени. По сути, то, что выдает датчик скорости за одну секунду - это частота в герцах, значение которой равно количеству тех самых импульсов за секунду. Это физика средней школы. Зная коэффициент, который представляет собой количество импульсов на километр, не сложно вычислить как скорость, так и пройденный путь. Это алгебра средней школы.
Попробуйте сделать то, что на схеме, и будет Вам счастье.
Serjik писал(а): ↑22.09.2019{, 08:41}
вот тут ведро дегтя. При делении получаем данные с запятой, а это уже Float. Далее мы на выходе деления уже должны получать данные во Float, далее мы опять же берем Int и множим на Float.
А может так и оставить Float? Как гласит FAQ : float 4байта -2 147 483 648.0 / 2 147 483 647.0, а это мне кажется более чем достаточно! Единственное что смущает кучу блоков конвертации. Сначало Float-Intejer, затем Intejer-String. Не будет ли тут задержек?
Еще раз: если дружите с математикой, то никакого дегтя не будет. Рассчитайте минимально и максимально допустимую скорость и получающиеся значения при Вашем коэффициенте (примерно 14000 имп/км), и увидите все возможные интервалы ОТ и ДО. Если у Вас при делении получается дробное число, то оно далее просто округлится до целого, на значении получившейся скорости оно особо не скажется.
Если с математикой не дружите, то тем более стоит просто повторить схему и убедиться в ее работоспособности.