По мотивам этой статьи https://bascom.at.ua/publ/1-1-0-8 решил сделать реобас, но с управлением энкодером.
Железки: МК Atmega328 (Arduino Uno) 16 МГц+LCD 20x4+экодер
Софт надергал отсюда, в итоге: 4 канала Fast PWM (62500 Гц), работа с энкодером и вывод на LCD из исследований Sasha_1973,
по отдельности все замечательно работает но если все объединить то происходит затык работы энкодера.
Затык снимается только делением частоты (TCCRnB) но при этом появляется свист куллера.
собственно сам вопрос возможна ли работа всего вышеперечисленного в исходном варианте, если да подскажите куда копать?
4-х канальный ШИМ (Fast PWM)+энкодер
Сообщений 1 страница 6 из 6
Поделиться12020-09-08 22:22:33
Поделиться22020-09-09 08:47:26
Непонятно чем энкодер обрабатываете, а так если воспользоваться поиском, то есть разные варианты:
- https://cxem.net/mc/mc195.php
- Команда Encoder в Баскоме-вопрос
Поделиться32020-09-09 10:40:07
Энкодер + кнопка на валу (короткое + длинное нажатия), использовано прерывание PCINT0 + TIMER2, так как Timer2 задействован для генерации ШИМ "переписал" код от Александра под Timer1, для чистоты эксперимента перешёл на Atmega644 там задействовал Taimer2 как в исходнике. Результат тот же. По дисплею, сначала задействовал графический на ssd1306 с библиотекой с немецкого форума но почему то вывод переодически "сыпался", перешёл на 20x4 исп. скоростной вывод от Александра
Поделиться42020-09-09 12:30:23
Затык снимается только делением частоты (TCCRnB) но при этом появляется свист куллера.
Делайте фильтр и будет нормально, без свиста.
Поделиться52020-09-09 21:55:27
странно сейчас стандартными средствами bascom сконфигурировал timer0=pwm, все заработало и энкодер и дисплей по i2c, частота шим 31372 Гц (при тактовой 16 МГц) остановлюсь пожалуй на этом.
Поделиться62020-09-10 08:53:18
Самому разобраться - это не в чужом коде копаться! 