Временное отключение таймера Атмега
Добавлено: Вт ноя 19, 2013 00:42:30
Есть атмега 324, на ней заведен таймер 1 (16 битный) на 1 мегагерце, fast pwm icr top.
считаю до 10000.
задействован один аппаратный выход - OCR1B как неинвертированный.
на нем висит сервопривод в которого нужно посылать импульсы 900-2200 наносекунд...но сервопривод крутит кран и он сопротивляется вращению только в момент передвижения... а если серву долбить постоянно одинаковыми импульсами - она рыскает дергается и греет мотор, кушает энергию и т.д.
потому обновляю я положение раз в десять секунд - ставлю TCCR1A = 0x22 и ШИМ пошел на выход, модифицирую требуемое положение OCR1B и жду секунду....потом хочу заглушить генерацию! Глушу TCCR1A = 0x02? регистр сравнения не трогаю.
Но получаю иногда глитчи с странными периодами в 2000 3000 наносек и серва рвется в край до упору...мощная сильно
уже три часа ловлю эти глюки...надоело...как правильно этот самый ШИМ глушить....надо бы дождаться конца цикла...и по идее регистры и обновляются в конце цикла чтоб глюков не допустить....но...дергается...обидно...
считаю до 10000.
задействован один аппаратный выход - OCR1B как неинвертированный.
на нем висит сервопривод в которого нужно посылать импульсы 900-2200 наносекунд...но сервопривод крутит кран и он сопротивляется вращению только в момент передвижения... а если серву долбить постоянно одинаковыми импульсами - она рыскает дергается и греет мотор, кушает энергию и т.д.
потому обновляю я положение раз в десять секунд - ставлю TCCR1A = 0x22 и ШИМ пошел на выход, модифицирую требуемое положение OCR1B и жду секунду....потом хочу заглушить генерацию! Глушу TCCR1A = 0x02? регистр сравнения не трогаю.
Но получаю иногда глитчи с странными периодами в 2000 3000 наносек и серва рвется в край до упору...мощная сильно
уже три часа ловлю эти глюки...надоело...как правильно этот самый ШИМ глушить....надо бы дождаться конца цикла...и по идее регистры и обновляются в конце цикла чтоб глюков не допустить....но...дергается...обидно...