PDA

Просмотр полной версии : Секундомер на основе блока 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
Да, наверное придется иметь дело с системным временем, а так не хотелось......

жекон
05.02.2016, 12:27
Не помню кто но кто на этой ветке выкладовал, поищу если найду у себя то покажу, а BLINK безбожно на 4 часа до минут 20 получаться

a_gricaj
05.02.2016, 14:20
Не помню кто но кто на этой ветке выкладовал, поищу если найду у себя то покажу, а BLINK безбожно на 4 часа до минут 20 получаться

Буду очень признателен......

жекон
10.02.2016, 17:57
Миллисекундами
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
СПС, попробую