Доброго времени суток! Вопрос мучает уже третий день, не могу понять что не так. У меня есть atmega16, сервомашинка HX12K, использую восьмибитный таймер(0), внешний кварц на 12Мгц. В CVAVR выбрал свой контроллер, выставил частоту вн. кварца, выбрал таймер 0, делитель - 1(12 000 кГц), по переполнению. Итого выходит 1/12*256 = 21.33333333333333 мкс (частота 1 прерывания таймера) Чтобы управлять серво нужно ждать 20 мс и затем от 0.8 до 2.3 можно давать импульс 0.0213333333333333 мс = 21.33333333333333 мкс 20 мс / 0.0213333333333333 мс = 937.5000000000015 (это число прерываний таймера отсчитывающее 20 мс) К примеру я хочу подождать 1.55 мс и поставить серво по центру. 1.55 мс / = 0.0213333333333333 мс = 72.65625000000011
В итоге, если серво машинка отключена до запуска МК, то после ее подключение к работающему МК она дергается в одну из сторон и замолкает. Если же МК запускается уже с подключенной серво то никакой реакции у сервы нет. Подскажите, что я не так считаю?
avr123.nm.ru, cпасибо! Запитал серву от другого источника, теперь: Уже удерживают своё положение, но серво машинка S-101 уходит в одно из крайних положений, а HX12K дергается постоянно
Не знаю что делать. Подскажите, управляться должно каким образом? а) 20мс ждем, импульс 0.8-2.3 б) импульс 0.8-2.3 и ждем (20-(0.8-2.3))мс - т.е. заполняем после едениц нулями до 20 мс?
Может у кого есть исходный код таймера на С где можно будет понять как управляется вс это дело?
попробуйте перейти на arduino, и не тратить время на простые вещи. Удовольствий массу получите, это я вам из личного опыта говорю! Я сам прошел через простые микроконтроллеры, и этот вечный гимор с таймерами, с интерфейсами, тратит кучу времени и отбивает желание что-либо делать дальше.
Если преследуете цель изучить микроконтроллер, то просто внимательно читайте мануалы. А если хотите что-либо изобретать и двигаться дальше, то см. выше.
true писал(а):попробуйте перейти на arduino, и не тратить время на простые вещи. Удовольствий массу получите, это я вам из личного опыта говорю! Я сам прошел через простые микроконтроллеры, и этот вечный гимор с таймерами, с интерфейсами, тратит кучу времени и отбивает желание что-либо делать дальше.
Если преследуете цель изучить микроконтроллер, то просто внимательно читайте мануалы. А если хотите что-либо изобретать и двигаться дальше, то см. выше.
Мне нужна плата которая управляет 20 сервами. Знаю про всякие готовые, но уже взялся сам, а бросать не хочу. А больш от этой платы мне ничего не нужно, дальше в ARM полезу.
=DeaD= писал(а):Повторю свой вопрос - от чего питаете серву?
От адаптра на 12V 2.08А 25W MAX, понижаю это дело до 5V и на серву.