Виртуальная машина и байт код
Автор DI HALT
Опубликовано 19 Фев 2010
Рубрики: Робототехника
Метки: Алгоритм, Программирование, Робот
Часто требуется делать большие последовательности сложных операций — например полетное задание для робота. Да, можно запихать все это дело в основную программу, но вдруг что то пойдет не так как надо и алгоритм надо будет переделать — придется переделывать всю программу.
Тут на помощь придет виртуальная машина. Суть в чем — в памяти контроллера, в основную программу, занесены основные процедуры управления устройством. Если это робот, то это могут быть такие простые команды как “вперед”, “назад”, “повернуть” и так далее.
Дальше мы увязываем это все в таблицу переходов, где у каждой команды будет номер-смещение.
Потом нам нужен обработчик скриптов, который бы брал откуда нибудь, нашу последовательность действий — скрипт и преобразовывал это в вызовы реальных кусков кода -микрооперации.
Обработчик скриптов может быть той же самой задачей диспетчера, запущенной фоном. А откуда он будет брать данные неважно. Их вполне можно засасывать по usart или тащить из EEPROM памяти. А можно загнать на IIC память и получится сменный картридж :)
Читать полностью
AVR. Учебный Курс. Работа на прерываниях
Автор DI HALT
Опубликовано 19 Фев 2010
Рубрики: AVR. Учебный курс
Метки: UART, USART, Прерывания, Язык Си
Одним из серьезных достоинств контроллеров AVR является дикое количество прерываний. Фактически, каждое периферийное устройство имеет по вектору, а то и не по одному. Так что на прерываних можно замутить кучу параллельных процессов. Работа на прерываниях является одним из способов сделать псевдо многозадачную среду.
Идеально для передачи данных и обработки длительных процессов.
Для примера покажу буфферизированный вывод данных по USART на прерываниях.
В прошлых примерах был такой код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // Отправка строки void SendStr(char *string) { while (*string!='\0') { SendByte(*string); string++; } } // Отправка одного символа void SendByte(char byte) { while(!(UCSRA & (1<<UDRE))); UDR=byte; } |
Данный метод, очевидно, совершенно неэффективен. Дело в том, что у нас тут есть тупейшее ожидание события — поднятие флага готовности USART. А это зависит, в первую очередь, от скорости передачи данных. Например, на скорости 600 бод передача каких то 600 знаков будет длиться 9 секунд, блокируя работу всей программы, что ни в какие ворота не лезет.
Как быть?
Читать полностью
Датчик Холла
Автор DI HALT
Опубликовано 14 Фев 2010
Рубрики: Начинающим
Метки: AVR, PinBoard, Датчик, Магнетизм
Есть такой интересный эффект — если через квадратную проводящую пластину гнать постоянный ток, а саму пластину пронизать магнитным полем, чтобы линии индукции проходили через ее сечение, то летящие по пластине электроны отклоняются силой Лоуренса.
А раз так, то с одного края электронов будет больше чем с другой. Возникает разность потенциалов, то есть напряжение. И чем больше ток и сильней поле, тем большая разность будет. Это и есть эффект Холла.
Дальше дело за малым — берем источник стабильного тока, чем стабильней тем лучше, ведь от стабильности зависит точность показаний. Прогоняем постоянный ток по пластине, ловим да усиливаем разность потенциалов до осязаемых величин. В результате получаем отличную вещь — датчик магнитного поля, он же датчик Холла.
Читать полностью
Эндрю Таненбаум “Операционные системы. Разработка и реализация”
Автор DI HALT
Опубликовано 07 Фев 2010
Рубрики: Книги
![]() | Автор: | Эндрю Таненбаум |
| Название: | Операционные системы. Разработка и реализация | |
| Издательство: | Питер | |
| Описание: | ||
| Давненько я не выкладывал полезных книжек. Надо исправляться. Итак, раз уж начал задвигать на тему программирования, то нельзя забыть такого автора как Эндрю Таненбаум. Программисты про него и так знают — как никак это один из классических авторов, а его труды детально расписывают принципы построения операционных систем. Причем описывается это все буквально на пальцах, на упрощенных аналогиях. Впрочем, примеров на Си тоже хватает. Местами занудновато и многое к нашей области не применимо, но для общего развития совершенно не помешает. Книжка из серии обязательных к прочтению. Скачать! |
Монтаж плат с SMD компонентами с помощью паяльной пасты и фена.
Автор vvzvlad
Опубликовано 03 Фев 2010
Рубрики: Радиолюбительские Технологии
Метки: smd, Пайка, Фен
![]() |
Когда в единственный нормальный магазин в городе, чуть ли не на заказ, привезли паяльную пасту, я был за ней первый в очереди :)
Давно уже хотел полностью перейти на SMD, как наиболее ленивую технологию — дырки сверлить лень и была паяльная станция LINKO 850, китайский клон незнаю чего (Ну, судя по стилю написания логотипа, косят они все под HAKKO =) Своего рода Adibas =) прим. DI HALT), пока использовавшаяся только для демонтажа. Мосфеты ей с материнок выковыривать — милое дело. Паста у меня была BAKU BK-30G (У меня такая же грязюка есть. Мерзкая вещь, но паять ей прикольно. прим. DI HALT) Читать полностью






