|
Вопросы о программировании Вопросы, касающиеся программирования на FBD |
|
Опции темы | Поиск в этой теме |
23.11.2017, 10:44 | #1 |
Senior Member
Регистрация: Jun 2015
Сообщения: 566
Благодарил(а): 25 раз(а)
Поблагодарили:
9 раз(а) в 9 сообщениях
|
Time to Tick
переводит секунды в тики. а если надо часы перевести?
Если просто умножить на 10 при тике 100мс - точность отсчета по времени не пострадает? (счетчик CNTR 32, переменная long соответственно) |
23.11.2017, 11:16 | #2 |
Уволен из Сегнетикс
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Time to Tick
Если нужно перевести часы - соберите преобразователь "часы-секунды" и секунды подавайте на Time To Tick.
__________________ В сегнетиксе не работаю с самого начала 2019 года. |
23.11.2017, 11:45 | #3 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 131
Благодарил(а): 15 раз(а)
Поблагодарили:
664 раз(а) в 606 сообщениях
|
Ответ: Time to Tick
Умножьте часы на 60, получите минуты. Умножьте минуты на 60, получите секунды. Секунды переведите в тики.
Можно короче. Умножьте часы на 3600, получите секунды. Секунды переведите в тики. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
23.11.2017, 12:42 | #4 | |
Senior Member
Регистрация: Jun 2015
Сообщения: 566
Благодарил(а): 25 раз(а)
Поблагодарили:
9 раз(а) в 9 сообщениях
|
Ответ: Time to Tick
Цитата:
блок Time to Tick - на выходе дает число int что я получу, если ему на вход подам 21 000 секунду? потому и спрашиваю про математику используя переменные long |
|
23.11.2017, 13:02 | #5 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 131
Благодарил(а): 15 раз(а)
Поблагодарили:
664 раз(а) в 606 сообщениях
|
Ответ: Time to Tick
Цитата:
2) Ну математика же, расчёты не сложнее тех, что я вам привёл выше... Класс 5 школы по сложности. Умножаете секунды на 1000, получая миллисекунды, затем делите на величину тика, получая количество тиков. Вот и всё волшебство __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
23.11.2017, 14:48 | #6 | |
Senior Member
Регистрация: Jun 2015
Сообщения: 566
Благодарил(а): 25 раз(а)
Поблагодарили:
9 раз(а) в 9 сообщениях
|
Ответ: Time to Tick
Цитата:
я и спрашивал, можно ли простой математикой заменить блок Time to Tick или есть какие либо "подводные" камни при пересчете - может реальный тик отличается от заданного. |
|
23.11.2017, 15:43 | #7 |
Уволен из Сегнетикс
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Time to Tick
Реальный тик может быть ниже или выше заданного.
Если реальный тик ниже заданного - это штатный режим работы системы. Например, SetTick=100, RealTick=20. Таким образом, из 100мс цикла, процессор занимается выполнением программы 20мс, остальные 80 - ничего не делает. Если реальный тик выше заданного - возникнет рассинхронизация процессов, связанных с исчислением реального времени. Таким образом, тик будет длиться дольше, чем запланировано. Это очень негативно скажется на выполнении алгоритма. Поэтому таких ситуаций допускать нельзя. __________________ В сегнетиксе не работаю с самого начала 2019 года. |
23.11.2017, 16:07 | #8 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 131
Благодарил(а): 15 раз(а)
Поблагодарили:
664 раз(а) в 606 сообщениях
|
Ответ: Time to Tick
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|