Работа в Eagle Cad. Часть 2
Автор DI HALT
Опубликовано 01 Сен 2010
Рубрики: Софт
Метки: Описание, Печатная плата, Софт
Помнится в первой части закончили мы на том, что забодяжили плату, залили все полигоном и раскидали шелкографию, чтобы не налезало.
Теперь возьмемся за редактор компонентов. Т.к. библиотеки хоть и обширные, но нельзя обьять необьятное. Так что рано или поздно попадется тебе такая деталька которой нет в библиотеках. Либо библиотечная не понравится. И придется рисовать свою. Что до меня, так я постоянно то готовые правлю, то новые создаю.
Создание своего компонента в Eagle cad
Когда я впервые сел за орла, мне это покзалось очень запутанным и сложным, но на деле, если отбросить мишуру, все будет очень и очень просто. Давайте-ка создадим, для примера, что нибудь несложное. Например линейный стабилизатор LM-1117-3.3 в разных корпусах. Его я не нашел в библиотеках.
Итак, вначале даташит на LM1117
![]() |
Задача ясна, будем творить. Открывай главное окно Орла и в меню выбирай File–New–Library
Читать полностью
Работа в Eagle Cad Часть 1.
Автор DI HALT
Опубликовано 30 Авг 2010
Рубрики: Софт
Метки: Печатная плата, Софт
![]() |
В гнезде орла
На 90% мои нужды по разводке печатных плат удовлетворял Sprint Layout. Развожу я обычно вручную, без исходной схемы и все вполне умещается в голове. Но прогресс не стоит на месте и меня давно уже зовут ретроградом :) И решил я переползти на другую систему. Главная причина — поддержка принципиальных схем и подсветка связей в схемотехническом редакторе, чего мне сильно не хватало порой в Sprint Layout. Перед этим я перепробовал несколько разных и остановился на Eаgle cad.
Почему Орел?
В выборе я руководствовался следующими параметрами в порядке важности:
- Редактор с поддержкой принципиальной схемы и подсветкой связей.
- Удобство работы в трассировщике. У Eagle тут есть ряд специфичных моментов из-за которых разработчиков хочется убить лопатой (особенно после Sprint Layout), но в целом все очень неплохо.
- Интерактивная связь схемы и платы (Forward annotate, вроде так зовется). Т.е. добавил ты на схему элемент, а он тут же появился на печатной плате и его остается только развести. Это позволяет разводить схему по кусочкам, в ручном режиме. По одному добавляя компоненты на принципиальную схему и прописывая соединения. По этой причине отсеялся Dip Trace — там это делается только через повторное открытие файла с разводкой. Неудобно.
- Удобное создание и работа с библиотеками. Тут тоже Eagle мне сильно понравился. Особенно тем как там делается компонент и то что можно выборочно подключать библиотеки, обновляя их на лету.
- Кроссплатформенность. Я многое делаю не только для себя, но и для вас. Много народу сидит на линухах/маках и терять их как целевую аудиторию я не хочу. Игл есть на этих платформах в родном виде. Без шаманства. Есть еще KiKad… Выглядит неплохо, но (как и многий опенсорц продукт, гыгыг) не юзабелен. Там, например, в редакторе PCB я не нашел Undo, а ловить соединения в схематике? Тот еще гемор. Лет через пять-десять может допилят до вменяемого состояния, если не забьют :)
- Относительная бесплатность. Жутко ломает ковыряться с патчами-кряками, а орел имеет вполне функциональный деморежим. Позволяет разводить по двум слоям, на площади 100х80мм. Для дома вполне нормально. Кому мало всегда можно
спиздитьнайти лекарство от жадности. Игл популярен и найти кряк совсем не проблема. Вот только хочу предупредить — у игла хитрая защита и она любит палить контору и шифровать проекты сделанные в крякнутой программе. По крайней мере про такую засаду я слышал. Так что бэкапьте проекты дабы они внезапно не оказались недоступными. Ну и рекомедую юзать в этом случае четвертую версию Орла. Для нее был нормальный кряк. Мне же хватает деморежима почти всегда. Может потом и куплю его =)))) - Наличие автороутера и возможность срыгнуть нетлист в другую систему трассировки. Вон, например, Шура Люберецкий, трейсил Топором. Получалось очень торчково. Особенно вставляло тех, кто не привык к теплым ламповым схемам с плавной кривизной дорожек :)
- Легковесность. В отличии от всяких монстров вроде Mentor Pads или Altuium Designer Орел не тупит даже на моем древнем ноуте, не говоря уже о атомном нетбуке на котором я пишу этот текст.
- Простота использования. Читать сто тыщь мануалов по тому как сделать то или это в мои планы не входило. Игл оказался очень простым.
Плюс у Eagle есть мощный скриптовый язык, позволяющий творить много вуду :) Я туда пока еще не лез, но судя по тому, что творят всякие ulp скрипты, может он очень многое.
Читать полностью
Источники энергии. Потенциал и падение напряжения
Автор DI HALT
Опубликовано 14 Авг 2010
Рубрики: Начинающим
Метки: Основы, Питание
Еще один пост из серии основы основ. Заметил я, что многие совершенно не въезжают в концепцию падения напряжения, разности потенциалов и типов источников питания. Поэтому запилю ка я ликбез по этой теме. С самого начала. Потом заброшу его в начало рубрики “Начинающим”. Пойдет как замена цикла статей канализационной электроники. Т.к. тот цикл писался для “Хакера” и особой подробностью не отличался ввиду ограничений на размер полосы.
Начало начал. Ноль.
Итак, начну с самого начала. Со дна. То есть с земли. Точки нулевого потенциала. Эта точка совершенно произвольная. Просто нам так удобно, что мы приняли ее за ноль. Надо же с чего то начинать. В однополярном питании это, обычно, минус питания. В двуполярном — нечто посредине, впрочем от конструкции зависит.
Читать полностью
Пример виртуальной машины
Автор DI HALT
Опубликовано 28 июля 2010
Рубрики: AVR. Учебный курс, Робототехника
Метки: RTOS, Программирование, Трюки
Как то раз я описывал концепцию создания языка программирования для устройства. Который бы позволил запихать сложнейший алгоритм или последовательность действий в виде компактного скрипта.
Простой пример для чего это нужно — фрезерный станок с ЧПУ. И надо на нем выточить голову Сократа из цельного куска металла. Задача, на самом деле, не шибко сложная.
Но попробуйте написать прошивку, двигающую резцом, в виде классического конечного автомата — двигающую резцом в зависимости от условий или состояний. Да вы сдохнете раньше чем это сможете сделать.
Другое дело если разбить программу на элементарные операции, вроде “Резец вверх”, “резец вниз”, “шаг на n мм”, а прошивке скормить последовательность этих микроопераций в виде байт-кода или текстового скрипта. Как все серьезно упрощается. Да и попутно можно нашинковать Платона с Гераклом, было бы желание, да образец для копирования.
Т.е. у нас появился свой язык устройства, полностью отвязанный от аппаратной реализации и оперирующий только органами устройства. И вот тут, главное, не впасть в высокоуровневую прелесть и не начать изобретать универсального интерпретируемого языка аля JAVA для микроконтроллеров. В условиях ограниченных ресурсов это полный бред.
Наоборот, этот язык нужно максимально упрощать за счет усложнения процедур машины, затачивая их строго под текущую задачу, а не делая нечто универсальное. Тогда можно выжать максимум из контроллера.
Ну, хватит воды, приведу пример того, что у меня получилось за вечерок курения в код. Код рабочий, но я там ничего не оптимизировал. Так, накидал чтоб работало, до ума доведете сами. Сделано все на базе ядра диспетчера. Я его уже описывал, поэтому работу его функций пояснять не буду
Читать полностью
Колеса… колеса… Ноги! Во!
Автор DI HALT
Опубликовано 11 июля 2010
Рубрики: Робототехника
Метки: Видео, Робот
Главное его не красить в зеленый цвет, а то монтировками загасят.
AVR. Учебный курс. Конечный автомат
Автор DI HALT
Опубликовано 09 июля 2010
Рубрики: AVR. Учебный курс
Метки: Алгоритм, Программирование, Трюки
Каждый кто пытался разбираться с конечными автоматами наверняка натыкался на всякие замудреные графы, какие то графики. Многие посчитав это слишком сложным плюнули и забили. А Зря!
С простейшим конечным автоматом каждый из нас сталкивался с самого детства — это механическая авторучка. Объект с единственной функцией “Нажатие кнопки”, но в зависимости от очередности результат разный. Стержень то прячется, то вылазит.
Так и в нашем случае — конечный автомат это функция которая запоминает свое состояние и при следующем вызове делает свое черное дело исходя из прошлого опыта. Простой пример — мигалка (псевдокод):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | ; Глобальные переменные u08 Blink_State; void Blink(void) { if (Blink_State == 1) { Led_On(); Blink_State = 0; Return; } if (Blink_State == 0) { Led_Off(); Blink_State = 1; Return; } } |
Вызывая эту функцию подряд мы заставим диодик менять свое состояние при каждом вызове.
Читать полностью
Кибергусеница
Автор Serafim
Опубликовано 03 июля 2010
Рубрики: Робототехника
Дабы отдать дань уважения сайту решил написать данную статью о своем роботе-самоделке. Это была моя магистерская и инженерная работа и теперь хочется поделиться ею со всем просвященным миром)
Итак, несколько слов об устройстве. Ниже приведена 3d моделька девайсины.
![]() |
В основе робота сервомашинки Futaba S3003 - самые простые и дешевые, что удалось раздобыть на нашей кафедре (кафедра ТМ и М ЮЗГУ(КурскГТУ)). О том, что такое сервомашинка и как она работает у Вас есть отдельная статья на данном сайте, поэтому останавливаться на этом я не буду.
Читать полностью
Робоконструктор Velleman Robotic Arm KSR10
Автор DI HALT
Опубликовано 22 июня 2010
Рубрики: Робототехника
Метки: Манипулятор, Механика, Робот
Наши дружеские посиделки, хоть и малым составом, но состоялись. Кроме обсуждения ряда технических задач и возможного сотрудничества просто классно и плодотворно пообщались. Андрей натащил кучу разных прикольных штуковин одну из которых я вам сейчас и покажу.
![]() |
Это очередной робоконструктор — механическая рука с пятью степенями свободы. Velleman Robotic Arm KSR10
Штука довольно редко встречающася, т.к. на Ebay я нашел всего одного продавца и в exUSSR эта редиска слать не желает. Встречается в нескольких буржуйских магазинах и вроде бы была в ЧиД, но оттуда была выкуплена нами :) Цена вопроса от 60…100 баксов.
Сам агрегат это очередная продвинутая игрушка, но для баловства и отработки алгоритмов нам больше и не требуется. Читать полностью
Точка сбора
Автор DI HALT
Опубликовано 17 июня 2010
Рубрики: Новости
Метки: От Автора
В общем, я в Евпатории, уже второй день. Сергей с Андреем встретили меня аки министра какого, аж не ожидал. Спасибо огромное :) Пять дней отдохну (пока Сергей с вахты не вернется), а там надо замутить тусовочку.
Где нибудь цивильно посидеть, пообщаться. Предположительно в Евпатории, но с Симферополя и ближайших окрестностей Андрей может народ на машине вывезти, а при большом количестве народу, думаю не составит проблемы зафрахтовать какую-нибудь газельку или что тут у вас в ходу.
Так что желающие познакомиться, пообщаться, встретить местных единомышленников отписывайтесь, организуйтесь. Пока еще четко ничего не решено, сроки и место не определены, так что время для маневра есть. По ходу, когда все желающие отзовутся, тогда и решим все точно, с учетом интересов каждого.
Автоэлектрика и автоэлектроника. Курс молодого бойца.
Автор kry-love
Опубликовано 12 июня 2010
Рубрики: Автоэлектроника
Метки: Авто, От Автора
DI HALT
Надумал тут замутить еще одну рубрику - АвтоэлектроникаНу и есть ряд мыслей по поводу поковырять свою Нексию на предмет разных улучшений и прочего самопала. Я правда больше по всякой автоматике прусь, а кто то может и прошивки ЭБУ меняет. Прорвы материала не обещаю, но что будет то выложу. Ну и можете свои наработки присылать.
Пока выложу пробным камнем статью Владимира Крылова о работе инжекторных движков, дабы было общее впечатление о их работе.
Часть первая, обзорная. Общий принцип работы бензинового двигателя внутреннего сгорания
Для удобства разделим мотор на три концептуальные части:
- Железки (ШПГ, КШМ, ГРМ)
- Система питания
- Система зажигания
Пульт дистанционного управления для фотоаппаратов Canon и Nikon
Автор Maksoff
Опубликовано 08 июня 2010
Рубрики: Готовые устройства
Метки: AVR, Интерфейс, Корпус
Сильмаллирион
Случилось так, что примерно в одно и то же время у одних знакомых появился фотоаппарат Nikon, у другой знакомой - Canon, а в интернете я наткнулся на замечательную статью про пульт ДУ к ним.
Паять я люблю, а ещё больше я люблю делать подарки людям, а что может быть лучше действительно полезного подарка?
Но, поскольку с PIC-ами я не дружу, то пульт я переделал под маленькую tiny2313, благо их везде навалом, и они весьма недорогие. Плюс, хотелось поставить рекорд скорости по сборке устройства.
Братство Кольца
Немного теории, найденной на просторах интернета:
для фотоаппаратов марки Canon собирается пульт RC-1 (RC-5 это такой же пульт, только без “моментального спуска”)
-Несущая частота 33 кГц:
-команда “Спуск”: посылка 480 мкс, пауза 7324 мкс, посылка 480 мкс
-команда “Спуск с 2 сек. задержкой”: посылка 480 мкс, пауза 5371 мкс, посылка 480 мксВажно!
Не у всех фотоаппаратов Canon есть ИК приёмник (обычно расположен на ручке, под спусковой кнопкой). Смотрите инструкцию к своему фотоаппарату!
Nikon выбрал себе алгоритм похитрее, но всё равно мы и его скопируем:
-Несущая частота 40 кГц:
-команда “Спуск”: посылка 2250 мкс, пауза 27600 мкс, посылка 650 мкс, пауза 1375 мкс, посылка 575 мкс, пауза 3350 мкс, посылка 650 мкс. Потом пауза в 63 мс (милли- не микро-!!!) и повтор всей последовательности еще один раз
AVR. Учебный Курс. Отладка программ. Часть 3
Автор DI HALT
Опубликовано 30 мая 2010
Рубрики: AVR. Учебный курс
Метки: Assembler, AVR, Отладка, Трюки
Метод 3. USART (Работа с последовательными интерфейсами)
Пожалуй самым популярным отладочным интерфейсом является все же USART. Во-первых, он поддерживается аппаратно почти всеми микроконтроллерами. Во-вторых, он прост в использовании и требует всего один/два сигнальных провода, а в третьих, для связи с компом не надо городить никаких специфичных девайсов. В худшем случае UART-USB или UART-RS232 конвертер на FT232RL или MAX232.
Пользоваться им проще простого — в любой момент, когда нам это захочется, мы берем и отправляем нужный байт по этому интерфейсу. При этом достаточно заранее его настроить — стандартная инициализация UART:
1 2 3 4 5 6 7 8 9 10 11 12 | ; Usart INIT .equ XTAL = 8000000 .equ baudrate = 9600 .equ bauddivider = XTAL/(16*baudrate)-1 uart_init: LDI R16, low(bauddivider) OUT UBRRL,R16 LDI R16, high(bauddivider) OUT UBRRH,R16 LDI R16,0 OUT UCSRA, R16 |
1 2 3 | ; Прерывания запрещены, прием-передача разрешен. LDI R16, (1<<RXEN)|(1<<TXEN)|(0<<RXCIE)|(0<<TXCIE)|(0<<UDRIE) OUT UCSRB, R16 |
Маркеры
Всегда полезно знать где наша программа шляется в данный момент. Конечно, можно зажигать светодиодики, как в прошлом методе. Но когда точек много, то выводов не напасешься на эту затею. Или затрахаешься перекомпилировать. Проще всего натыкать в код маркеров, наступая на которые наш МК будет отрыгивать в терминал свое местоположение. Терминальный клиент будет писать лог и ничего не проморгаешь.
Читать полностью
Организация древовидного меню
Автор Steel.ne
Опубликовано 16 мая 2010
Рубрики: AVR. Учебный курс
Метки: Алгоритм, Программирование, Язык Си
Почти для всех проектов на микроконтроллере с экранчиком требуется система меню. Для каких-то проектов одноуровневое, для других — многоуровневое древовидное. Памяти, как обычно, мало, поэтому хочется запихнуть все во флэш.
![]() |
Попутно, из проекта в проект, развивалась своя псевдоОС — таймеры, события, диспетчеры.
Я ее полностью писал на си, оптимизацией и вылизыванием еще не занимался.
Перебирая разные системы, наткнулся на MicroMenu:
Попробуем разобрать ее на части и прикрутить к системе.
Читать полностью
Разведение питания
Автор DI HALT
Опубликовано 08 мая 2010
Рубрики: Начинающим
Метки: Печатная плата
При конструировании электронных устройств есть ряд особенностей которые явно не видны на схеме и не обнаруживаются в симуляторах, но оказывают активнейшее влияние на работу схемы, провоцирующее плавающие глюки и неполадки.
Хорошим источником приколов может служить земляная шина, будучи проложена без учета ряда особенностей.
Вообще, грамотная разводка это та еще черная магия. Толковых подробных мануалов по сему предмету я не встречал, а все что знаю — продукт собственных умозаключений и обрывки толковых мыслей с разных форумов. В общем, если есть что добавить — добавляйте. Читать полностью
Покупка на DealExtreme
Автор vvzvlad
Опубликовано 29 Апр 2010
Рубрики: Инструмент
Метки: Инструмент, Описание
DealExtreme - это китайский интернет “магазин на колесах”, что примечательно - с бесплатной доставкой по всему миру. Специализируется в основном, на технике, различных гаджетах,
и тем, что можно назвать “всякая прикольная фигня” :)
DI HALT: Плюс инструмент, всякие паяльники, прорва светодиодов, фонариков адовых… А еще там есть много разной чудной механики. Например, сервомашинка с металлическими шестернями всего за 10 баксов (у нас бы в магазинах аля “Хобби” она стоила не меньше 30). Плюс всякие колесики, шестерни, шасси и прочие радости моделиста-робототехника.
Принимает оплату через PayPal, это значит, что для покупок в нем необходима кредитная или дебетовая карта систем Visa или MasterCard, которая может пройти проверку в PayPal (в интернете на эту тему масса статей и споров, какая же карта лучше)
Читать полностью
Объединяемся!
Автор DI HALT
Опубликовано 22 Апр 2010
Рубрики: Новости
Метки: От Автора
Моей целью всегда было сделать не просто информационный сайт, а сколотить свое сообщество. Тусовку единомышленников, средство общения и обмена идеями. Как результат — существует весьма оживленный форум и Чат конференция на Jabber.ru, где редко бывает меньше 20 человек :)
Но я не собираюсь останавливаться на достигнутом. Пора выходить на уровень живого оффлайнового общения!
Теперь у нас есть Карта сообщества на которой можно найти единомышленников и новых друзей.
AVR. Учебный Курс. Отладка программ. Часть 2
Автор DI HALT
Опубликовано 20 Апр 2010
Рубрики: AVR. Учебный курс
Метки: Интерфейс, Отладка
Метод 2. Моргалки (Работа портами Ввода-вывода)
Трассировка и аналитика это все замечательно, но когда мы начинаем отлаживать что то внешнее, то тут трассировка нам поможет мало. Т.к. глючить может не внутри, а снаружи.
Либо у нас будет не глюк, а банальное непонимание ситуации. Фразу из даташита, например, неправильно перевел или глаз замылился. Что то забыл или не туда припаял. Да мало ли как можно накосячить.
В общем, правильный алгоритм может работать из-за кривой аппаратной реализации. А чтобы понять где косяк надо проследить и знать как это работает внутри. В общем, заглянуть в код программы.
Причем нам не обязательно точно следить за тем, что там происходит покомандно — это мы или трейсом или туплением отладим. Интересней знать куда ушла прога.
Самым простым методом тут будет отладочный вывод. Все просто — мы берем и определяем один из выводов под отладку. Причем даже если у нас какая-нибудь крошечная тинька и все выводы расписаны буквально по нескольку раз, то все равно можно найти один лишний вывод — достаточно закомментить код который его использует, но в данный момент его правильность нас не интересует.
А у вывода может быть три состояния - Hi, Lo и Hi-Z. Так что рекомендую скреативить такой вот пробничек:
Тогда если у нас Hi-Z то будут тускленько гореть оба диода. Ну, а на соответствующий уровень свой диод в гордом одиночестве.
А в код пихаем дебажные секции вида:
1 2 3 | ;Set Hi SBI DEBUGDDR,DEBUG SBI DEBUGPORT,DEBUG |
1 2 3 | ;Set Lo SBI DEBUGDDR,DEBUG CBI DEBUGPORT,DEBUG |
1 2 3 | ;Set Hi-Z CBI DEBUGDDR,DEBUG CBI DEBUGPORT,DEBUG |
Можно их в макросы завернуть. Удобней будет.
По состоянию дебаг вывода мы можем увидеть в каком месте программа прошла. А комбинируя нашу троичную систему получим целых 9 возможных комбинаций на 2 вывода.
Однако если у нас надо отследить последовательность, то мы можем и не успеть разглядеть переимгивание светиков. Но никто не мешает воткнуть в код после смены состояния дебагвывода тупую задержку вида:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | PUSHF ; Макрос сохранения флагов PUSH R16 PUSH R17 PUSH R18 LDI R16,255 ; Грузим три байта LDI R17,255 ; Нашей выдержки LDI R18,255 Dloop: SUBI R16,1 ; Вычитаем 1 SBCI R17,0 ; Вычитаем только С SBCI R18,0 ; Вычитаем только С BRCC DLoop ; Если нет переноса - переход POP R18 POP R17 POP R16 POPF ; Макрос восстановления флагов |
Оформляется как прерывание для того, чтобы иметь минимальное влияние на код. Можно тоже оформить в виде макроса и втыкать его одной строчкой. Запрет прерываний опционально.
Либо вставлять затуп:
1 | RJMP PC |
Контроллер на этой команде встанет и дальше никуда не пойдет (правда если включен вачдог, то он ребутнется по вачдогу).
А можно же сразу после задержки перевести отладочный вывод в режим входа PullUp и просить кнопку пробника. Если нажата, можно идти дальше. Можно и без задержки, сделать, но надо смотреть, чтобы дребезг не помешал.
1 2 3 4 5 6 | ;STOP DB_BTN CBI DEBUGDDR,DEBUG SBI DEBUGPORT,DEBUG SBIC DEBUGPIN,DEBUG RJMP PC-1 |
Можно просто наставить таких кнопочных чекпоинтов. И пускать программу по ним своей могучей волевой рукой. А пока программа тупит на задержках или ожиданиях кнопок, можно спокойно замерить напряжения/пощупать лог уровни, состояние других выводов, да просто подумать.
Разумеется, если в схеме уже присутствуют светодиоды и кнопки, то и пробник тут не нужен - обойдемся имеющимися средствами — переназначив их на время отладки конкретного участка.
Правда в случаях отладки асинхронных устройств, работающих на четких временных выдержках данная затея может не прокатить, но для них есть другие варианты, о них позже.
AVR. Учебный Курс. Отладка программ. Часть 1
Автор DI HALT
Опубликовано 13 Апр 2010
Рубрики: AVR. Учебный курс
Метки: AVR, Отладка, Трюки
У каждого случалась такая ситуация — программа вроде бы написана, даже компилится, но не работает. Почему не работает? Дак все же просто — в ней есть лажа!
Процесс избавления программ от лажи называется, соответственно, отлаживанием. И часто этот процесс длится куда дольше разработки, особенно в хитрых случаях, с привлечением внешней периферии.
В очередном цикле статей я постараюсь описать как можно более подробно методы, применяемые при отладке.
Метод 0. Тупление в код (Аналитический)
К моему великому удивлению, данный метод является наиболее популярным в народе и, а у начинающих порой единственным.
Видимо сказывается засилье всяких высокоуровневых языков вроде ПОХАПЭ или Си, где такое вполне может и проканать. Там да, можно пофтыкать несколько минут в исходник, глядишь да найдешь где накосячил.
И по наивности, не иначе, новички пытаются этот метод применить к своим ассемблерным программам.
И вот тут мозг срывает напрочь. С непривычки голова пухнет от попытки удержать в памяти состояние регистров, флагов, попыток просчитать куда пойдет ядро на следующем шаге.
Из этого же лезет народ убежденность в том, что ассемблерные программы сложны в написании и отладке.
Хотя я, в свое время, изучал ассемблер вообще без компа — не было его у меня. Тетрадка в клеточку, команды i8008 в столбик. А потом и Z80 с его божественным ассемблером. И опять без отладчиков, аналитически. Ляпота! Но вот когда я сел за ассемблер 80С51, в первую же очередь я нашел нормальную IDE с эмуляцией — Keil uVision. А эра х86 прошла под знаменем Borland Turbo Debugger и TASM. Когда моя первая 128 байтная интруха полыхнула по экрану пиксельным пламенем клеточного автомата… да ощущения были еще те. Где то ее сорцы валяются, надо поискать.
В написании может быть, но вот в отладке нифига подобного. Так как нечего тут думать. Ассемблер это как лопата — берешь и копаешь, а не думаешь как там поршни и трансмиссия в экскаваторе крутится.
А вот когда уже есть некоторый опыт ковыряния с ассемблером, когда всякие ветвления-переходы-адресации разруливаешь в уме, вот тогда аналитическим тупняком можно сходу искать баги. Но это для мастеров низкоуровневого кунг-фу. Поначалу, быстрей и проще пройтись трейсером по коду.
Под каждый стиль написания кода свои инструменты отладки. Поэтому переходим к другому методу. Читать полностью
AVR. Учебный Курс. Инкрементальный энкодер.
Автор DI HALT
Опубликовано 05 Апр 2010
Рубрики: AVR. Учебный курс
Метки: Алгоритм, Энкодер
Энкодер это всего лишь цифровой датчик угла поворота, не более того.
Энкодеры бывают абсолютные — сразу выдающие двоичный код угла и инкрементальные, дающие лишь указание на направление и частоту вращения, а контроллер, посчитав импульсы и зная число импульсов на оборот, сам определит положение.
Если с абсолютным энкодером все просто, то с инкрементальным бывают сложности. Как его обрабатывать?
С Энкодера выходят два сигнала А и В, сдвинутых на 90 градусов по фазе, выглядит это так:
А дальше пляшем от типа энкодера. А они бывают разные. Читать полностью
Этеншн. Важное заявление :)
Автор DI HALT
Опубликовано 02 Апр 2010
Рубрики: Новости
Метки: От Автора
Короче, было у меня тут порядочно времени. И я решил кое что подправить. В первую очередь под замес пошел AVR. Учебный Курс. Я снес нахер это убожество Курс подвергся мощной правке и сортировке. Масса статей была переписана заново, почти все они были упорядочены.
В начале курса появилось много теории по работе контроллера, наглядно постарался показать как работает стек, команды перехода, прерывания. А то уж очень много ошибок у присылающих мне свои проги на простомотр в этом месте, прям поголовно. Добавлены примеры и немного видеороликов для понту.
Работа выполнена всего на треть, но непрерывно ведется. Так что следите за изменениями :) В общем, когда закончу, курс можно будет называть курсом, а не набором разрозненных статей ни о чем.
Выглядеть все должно будет примерно так:
Читать полностью









