Может это тут и обсуждалось уже, лично я конкретного решения моё пробелмы не нашел.
Конфигурация железа -
ATmega1280 и китайския серва. Из под Ардуины прекрасно работающая.
И я пытаюсь её поднять на чистом Си
Пытаюсь управлять сервой от ШИМа OC2B - порт PB4.
8 бит, перескейлер выставлен на 256
врубаю программку, постепенно увеличуващую значение, записывающиеся в OC2B, от 0 до 255 и смотрю как при этом себя ведет серва. Дергаясь из стороны в сторону, серва, медленно, но уверенно, движется от примерно 30го градуса до 160го. Что за фигня?
Я эту проблему объясняю тем, что регистр ШИМа, вместе с длинной импульсов меняет и период.
Соотвественно не у всех временных интервалов он 20 мс, и серва на это реагирует неадекватьно.
Кто нибудь сталкивался с этой проблемой?
Как заставить ШИМ правильно работать?
Его можно на 16 бит перевести. Только непонятно как это поможет.