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