Пульт для симуляторов
руки ломать этими стиками…
летайте на своем пульте, руки привыкают под пульт.
руки привыкают под пульт.
Вот именно! Поэтому когда передатчики разные, рукам становится уже без разницы, чём и на чём - мозг мгновенно адаптируется.
Саша, ну посмотри на это изделие… у меня слезы текут. какой симулятор?
В руках этот пультик мне показался очень удобным, потому его и купил по дешёвке. Летаю на Оптике, для симулятора использую Ескай 0404, эту Киошо хочу использовать на работе. А заодно и вспомнить электронно - программную молодость. Пока изучаю КодеВизион АВР. Но идёт туговато.
Саша, ну посмотри на это изделие… у меня слезы те…
Какая разница? Главное, чтобы четыре потенциометра былы в джойстиках и чтобы сами ручки не люфтили. Этого достаточно.
ладно уговорили. атини13 это жестоко.
опросить последовательно 4 АЦП, пока идет РРМ пауза. заполнить 4ре переменные длительностями 1000-2000 мс из отсчетов АЦП. по прерыванию таймера формировать импульсы. не забывая про 300мс паузы =)
Общая стратегия понятна, а вот как бы побыстрее практические инструменты освоить…
ADCSRA|=(1<<ADIF)
CLKPR=(0<<CLKPCE) | (1<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0);
Как понять такие заклинания в CodeVisionAVR?
В скачанных с сайта разработчика Getting Started и User Manual нет описания, может кто даст толковую ссылку.
Это не заклинания. Нужно смотреть даташит на конкретный контроллер.
Слева от вертикальной черты идет название регистра микроконтроллера.
Справа - названия битов и состояние, в которое их нужно установить.
Лучше сразу настроиться на то, что быстро разобраться не получится.
Заклинаниями я в шутку называю строки в программах.
А чтобы разобраться нужно иметь описание применяемой в CodeVisionAVR разновидности С.
Пока найти не могу…
Открываете даташит на контроллер, например - Attiny13a, находите раздел Register Summary. Там есть таблица с названиями регистров, их привязка к адресам и разбивка по битам с указанием имени каждого бита.
Соde Vision, Си или Assembler используют именно эти названия.
Как понять такие заклинания в CodeVisionAVR?
Качаем ПДФ-ку на контроллер.
Распечатываем оттуда две с половиной вещи:
- Список регистров и карту памяти
- Список ассэмблерных команд
Потом все это выкидываем в мусорку, берем arduino nano и делаём всё на ней 😃
ps:
вообще, это логические операции и побитовые сдвиги с использованием содержимого регистров. Это иногда имеет смысл, если надо сделать быстрый как понос код, но обсуждаемая задача не требует от контроллера максимального быстродействия. Можно все в человекопонятных переменных решать, даже с плавающей точкой.
Потом все это выкидываем в мусорку, берем arduino nano и делаём всё на ней
Золотые слова. Даже думать не надо, просто повторить. Так например ianjohnston.com/…/55-project-019-rc-joystick-tx-v2, или так ianjohnston.com/…/54-project-018-rc-ppm-trainer-po… .Сам так сделал 😃
Как понять такие заклинания в CodeVisionAVR?
Это не особенности CVR, обычный C.
ADCSRA|=(1<<ADIF)
В регистре ADCSRA (по сути, это обычная переменная с фиксированным адресом) устанавливается бит с порядковым номером ADIF. Остальные биты не меняются.
CLKPR=(0<<CLKPCE) | (1<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0);
В регистре CLKPR устанавливается бит CLKPS3, остальные сбрасываются.
Замечу, что вычисление значения делает прекомпилятор и в итоговой программе будет уже готовая константа.
Такая форма записи нужна исключительно для удобства программиста, более наглядна, чем просто число.
Берём ардуину-нано, впихиваем в неё вот это, подтыкаем к компу и радуемся.
Цена вопроса триста рублёв.
Вот еще вариант для любителей STM32: хабр.
За пол часа напильником выпиливается анализ PPM и запускается ADC на 4 канала. В системе контроллер определяется как джойстик. Все работает.
Ардуины я купил для других целей. А Тину-13 хочу победить. Столкнулся с такой неприятностью: при входном напряжении меньше примерно 1/3 напряжения питания АЦП выдаёт нули во всех разрядах, потом работает “по теории”. Проверил три экземпляра. Может ли кто-нибудь сталкивался с похожими задачами?
Победил!