Архив метки: Алгоритм

Управление множеством сервомашинок

При построении разных роботов порой приходится использовать несколько сервоприводов. А если это какой-нибудь шестиногий паук, то приводов там этих просто тьма. Как ими управлять? На форуме кое кто даже сокрушался, что ему бы для этих целей плисину применить. Хотя на … Читать далее

Рубрика: AVR. Учебный курс, Робототехника | Метки: , , , | Комментарии (99)

Организация древовидного меню

Почти для всех проектов на микроконтроллере с экранчиком требуется система меню. Для каких-то проектов одноуровневое, для других — многоуровневое древовидное. Памяти, как обычно, мало, поэтому хочется запихнуть все во флэш. Попутно, из проекта в проект, развивалась своя псевдоОС — таймеры, … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , | Комментарии (86)

Обработка множества инкрементальных энкодеров одновременно

Про инкрементальный энкодер и про обработку его сигналов с помощью МК уже была статья. Вроде-бы ничего сложного — два бита текущего состояния, два бита предыдущего — автомат с 16 состояниями. Рассмотрим эту задачу ещё раз с позиции максимально эффективной (по … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , | Комментарии (17)

AVR. Учебный Курс. Инкрементальный энкодер.

Энкодер это всего лишь цифровой датчик угла поворота, не более того. Энкодеры бывают абсолютные — сразу выдающие двоичный код угла и инкрементальные, дающие лишь указание на направление и частоту вращения, а контроллер, посчитав импульсы и зная число импульсов на оборот, … Читать далее

Рубрика: AVR. Учебный курс | Метки: , | Комментарии (90)

AVR. Учебный Курс. Кусочно-линейная аппроксимация

Часто бывает так, что приходится обрабатывать жутко нелинейные величины, задаваемые каким-нибудь извращенным законом. Простейший пример — датчики расстояния SHARP GP2D12. Только поглядите на его характеристику: Сам черт ногу сломит, а ведь нам бы неплохо иметь выход в человеческих величинах, ну … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , , , | Комментарии (48)

Виртуальная машина и байт код

Часто требуется делать большие последовательности сложных операций — например полетное задание для робота. Да, можно запихать все это дело в основную программу, но вдруг что то пойдет не так как надо и алгоритм надо будет переделать — придется переделывать всю … Читать далее

Рубрика: AVR. Учебный курс, Робототехника | Метки: , , | Комментарии (85)

AVR. Учебный курс. Конечный автомат

Каждый кто пытался разбираться с конечными автоматами наверняка натыкался на всякие замудреные графы, какие то графики. Многие посчитав это слишком сложным плюнули и забили. А Зря! С простейшим конечным автоматом каждый из нас сталкивался с самого детства — это механическая … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , | Комментарии (64)

AVR. Учебный курс. Архитектура Программ. Часть 3

Приоритетный диспетчер. Одной из проблем простого диспетчера является то, что все задачи имеют равный приоритет. С одной стороны, это просто и удобно. С другой — какое-либо важное событие можно прошляпить, пока там конвейер перещёлкает все задачи… Проблему решает введение приоритетов. … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , | Комментарии (58)

AVR. Учебный Курс. Архитектура Программ Часть 2

Диспетчер Данная организация программы требует чуть большего количества кода чем флаговый автомат (Хотя это еще как посмотреть. С увеличением числа задач служебный код динамического диспетчра не увеличивается, а вот флаговый автомат разрастается за счет большего числа флагов и проверок этих … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , | Комментарии (56)

AVR. Учебный Курс. Архитектура Программ

Все учебные курсы по микроконтроллерам которые я встречал (в том числе, к сожалению, и мой ассемблерный, но я надеюсь это постепенно поправить) страдают одной и той же проблемой. В курсе бросаются строить дом не заложив фундамент. Только показав на примере … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , | Комментарии (111)

М. Дамке «Операционные системы микроЭВМ»

Автор: М. Дамке Название: Операционные системы микроЭВМ Издательство: Финансы и статистика Старожил сайта и один из самых активных и толковых комментаторов, камрад SWG сделал замечательную вещь— отсканировал и пожал в DejaVu книгу по написанию операционных систем под микро-ЭВМ. Я пока … Читать далее

Рубрика: Книги | Метки: , , | Комментарии (23)

Ревич «Практическое программирование Микроконтроллеров AVR на языке ассемблера»

Автор: Юрий Ревич Название: Практическое программирование Микроконтроллеров AVR на языке ассемблера Издательство: Bhv Отличная книга. Из серии настольных. Автор очень доступно, подробно, без занудства и заумностей рассказывает как использовать все то богатство, что разработчики из Atmel напихали в свой контроллер, … Читать далее

Рубрика: Книги | Метки: , , | Комментарии (53)

AVR. Учебный курс. Подключение к AVR LCD дисплея HD44780

Сегодня разменял четверть века! Так случилось, что прикупил я тут себе поприколу LCD дисплейчик две строки по восемь символов. Валялся он в ящике валялся, да чегото поперло меня и решил я его заюзать, попутно вкурив в его работу. О том … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , , | Комментарии (220)

AVR. Учебный курс. Процедура сканирования клавиатуры

Итак, клавиатуру я сделал и написал процедуру сканирующую клавиатурную матрицу 4х4 кнопки. Пора бы рассказать как организовать опрос такой клавы. Напомню, что клава представляет из себя строки, висящие на портах и столбцы, которые сканируются другим портом. Код написан для контроллера … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , , , | Комментарии (48)

Работа с АЦП. Программные средства повышения точности

Вообще, сграбив сигнал в цифровую форму мы мы можем извращаться с ним как угодно. Методик цифровых фильтраций существует масса и все они основаны на сборе избыточной информации с последующим выделением сигнала. Я приведу для примера лишь один простейший способ — … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , , , | Комментарии (49)

Матричная клавиатура

Допустим нам надо подавать команды нашему девайсу. Проще всего это делать посредством обычных кнопок, повешенных на порт. Но одно дело когда кнопок две три, и другое когда их штук двадцать. Не убивать же ради этого двадцать выводов контроллера. Решение проблемы … Читать далее

Рубрика: Начинающим | Метки: , , , , | Комментарии (68)

AVR. Учебный курс. Работа с портами ввода-вывода. Практика

Вот ты читаешь сейчас это и думаешь — память, регистры, стек и прочее это хорошо. Но ведь это не пощупать, не увидеть. Разве что в симуляторе, но я и на дельфи с тем же условием могу накодить. Где мясо!!! В … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , , , | Комментарии (44)

AVR. Учебный Курс. Управляемый вектор прерывания

Бывает такая ситуация, когда надо на один периферийный девайс повесить много разных задач, а он всего один и что то надо с этим делать. Простой пример — таймер и его прерывание по переполнению. Мы можем задавать выдержку и по прерыванию … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , , | Комментарии (39)

AVR. Учебный курс. Операционная система. Таймерная служба

Третья часть марлезонского балета описалова самопальной операционной системы для AVR. Итак, у нас есть очередь задач и общая логика работы системы. Но одной очереди задач с диспетчером мало. Нужно распределять задачи по времени, задавать интервалы, запускать отложенные задачи. Всем этим … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , , , | Комментарии (13)