Просмотр полной версии : Секундомер на основе блока BLINK
a_gricaj
04.02.2016, 23:11
В общем сделал функциональный блок -секундомер, на фото один из вариантов
22329
но он не точно считает, а именно, на одной минуте имеет запаздывание 4-5сек.
Подскажите пожалуйста в чем может быть проблема?
krollcbas
05.02.2016, 00:30
Ну это очевидно смотря на Ваш код.
Погрешность в положительную сторону и будет накапливаться,
так как решение о том, что прошла секунда наступает на следующем цикле.
Вам так нравится BLINK, он у меня в некоторых проектах вообще врал жутко.
Надо гуглить, как извлечь секунду из системного времени.
Знаю как сделать в версии v2.3
a_gricaj
05.02.2016, 10:06
Да, наверное придется иметь дело с системным временем, а так не хотелось......
Не помню кто но кто на этой ветке выкладовал, поищу если найду у себя то покажу, а BLINK безбожно на 4 часа до минут 20 получаться
a_gricaj
05.02.2016, 14:20
Не помню кто но кто на этой ветке выкладовал, поищу если найду у себя то покажу, а BLINK безбожно на 4 часа до минут 20 получаться
Буду очень признателен......
Миллисекундами
uptime := uptime + (TIME() - TIME_prev) * BOOL_TO_DWORD(on);
TIME_prev := TIME();
Секундами
tickTock_RTRIG(clk := TIME_TO_DWORD(TIME()) MOD 1000 > 500);
uptimeSec := uptimeSec + BOOL_TO_DWORD(tickTock_RTRIG.Q);
... минутами
tickTock_RTRIG(clk := TIME_TO_DWORD(TIME()) MOD 60000 > 30000);
вот нашел цитату вырезал себе на память
a_gricaj
24.02.2016, 10:56
СПС, попробую
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot