|
Синхронизируем таймеры. Идеи. |
|
|
|
Mar 22 2016, 09:42
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 19-01-16
Пользователь №: 90 105

|
Всем доброго времени суток. Никак не могу додумать алгоритм синхронизации с резервированием. Подкиньте идеек по реализации) Как сделал я: есть два таймера, тикающие с частотами 4кГц и 12.8кГц... На ногу мк получаю импульс раз в секунду в качестве внешней синхронизации... От этого импульса тактирую третий таймер, он генерит триггер и сбрасывает два вышеуказанных таймера что обеспечивает их одновременный старт... Грубо говоря, действия начинаются в момент прихода синхросигнала(в нулевой момент времени) => последний тик таймеров 4 и 12.8кГц должен быть (n-1)'й, где n - 4к и 12.8к соответственно... А при отсутствии синхронизации n'й тик этих таймеров является нулевым для следующей секунды и т.д. А теперь о проблемах: Сделал то что выше указал, но из-за того что синхросигнал внешний, кварцы разные, таймеры 4 и 12.8кГц могут успеть добежать до n'го тика раньше чем придет синхросигнал и их сбросит. Можно сделать остановку таймеров после (n-1)'го тика, а синхросигналом их запускать, но тогда система будет зависть очень сильно от синхросигнала, а нужно чтобы и с синхросигналом работало и без него... Подкиньте идеек, как все это провернуть и можно ли вообще ?
п.с. надеюсь смог объяснить хоть как-то, извиняюсь, начинающий... мк: stm32f4vgt6....
|
|
|
|
|
 |
Ответов
|
Mar 22 2016, 10:43
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 19-01-16
Пользователь №: 90 105

|
Цитата(scifi @ Mar 22 2016, 10:09)  Я правильно понял, что нужно "умножить" внешнюю частоту 1 Гц до 4 кГц и 12,8 кГц? Привязка по фазе нужна? Или фазе можно плыть? В каких пределах может плыть фаза (или частота)? Я бы измерял третьим таймером период синхроимпульсов и вычислял бы, на сколько надо скорректировать период таймеров 4 и 12,8 кГц. Если это делать аккуратно, можно и фазу держать. Можно и так сказать, но при потере синхроимпульсов система должна продолжать работать... Фаза +- 1мкС может плавать... А если синхросигнал придет на 1 такт позже, то получу лишнее срабатывание ведь ?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|