ПРОГРАММИРОВАНИЕ Attiny2313
Как производится программирование микроконтроллеров ATtiny2313? Итак, имеем микроконтроллер ATtiny2313, LPT порт (обязательно железный – никакие USB-2-LPT не работают), несколько проводков (длина не более 10 см) и конечно же паяльник. Желательно иметь разъём DB-25M (папа), с ним будет удобней подключать микроконтроллер, но можно обойтись и без него. Припаиваем проводки к выводам 1, 10, 17, 18, 19, 20 микроконтроллера. Получаем нечто вроде того, что на фото:
Далее, если есть разъём DB-25M, то припаиваем проводки к нему в соответствии с таблицей. Если нет, то просто втыкаем проводки в разъём на компьютере (не забывая про таблицу!!!).
Я делал без разъёма (в наличии были только мамы…), и вот что получилось:
Правда у меня LPT порт вынесен на стол с помощью кабеля длиной 1,5 метра. Но при этом кабель должен быть экранированный, иначе будут наводки, помехи и ничего не получится.
Если быть совсем честным, то желательно собрать “правильный” программатор. И потом будет проще и порт целее. Я пользую STK200/300. Далее используем программу PonyProg2000. После запуска программы она “заржет….” как настоящий пони. Чтобы этого больше не слышать в появившемся окне ставим галочку “Disable sound”. Жмём “ОК”. Выскакивает окошко которое говорит, что нужно откалибровать программу. Компы бывают же разные и медленные и шустрые. Жмём “ОК”. Выскакивает ещё одно окошко – это нам говорит, что нужно настроить интерфейс (какой программатор и куда подключен.). Итак заходим в меню: Setup -> Calibration. В появившемся окне:
Жмём “YES”. Проходит пара секунд и программа говорит “Calibration OK”. Далее заходим в меню: Setup -> Interface Setup. В появившемся окошке настраиваем как у показано на рисунке.
Теперь заходим в меню: Command -> Program Options. В появившемся окошке настраиваем как показано на рисунке.
Всё готово к программированию!… Итак, последовательность действий:
1. Выбираем из списка “AVR micro”
2. Из другого списка выбираем “ATtiny2313”
4. Жмём кнопочку “Launch program cycle”. Когда программирование завершится прога скажет “Program successful”
5. Ну и напоследок надо запрограммировать так называемые Фьюзы (fuses). Для этого жмём кнопочку “Security and Configuration Bits”. В появившемся окне жмём “Read”, потом выставляем галочки и жмём “Write”.
ВНИМАНИЕ! Если Вы не знаете, что означает тот или иной конфигурационный бит, то не трогайте его. Вот теперь у нас готовый к работе контроллер ATtiny2313! На форуме можно скачать программу PonyProg2000 и оригинал статьи с дополнительными рисунками. Материал для сайта Радиосхемы предоставил Ansel73.
Форум по микроконтроллерам
Программирование attiny2313 для начинающих
Войдите , пожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим. Войти Регистрация. Вы еще не программируете микроконтроллеры?
Поиск данных по Вашему запросу:
Схемы, справочники, даташиты:
Прайс-листы, цены:
Обсуждения, статьи, мануалы:
Дождитесь окончания поиска во всех базах.
По завершению появится ссылка для доступа к найденным материалам.
Содержание:
- Программирование МК AVR
- Primary Menu
- ATTiny2313-дешевый и доступный.
- Программирование микроконтроллеров Atmel AVR: tinyAVR(ATtiny) и megaAVR(ATmega)
- Программирование микроконтроллеров AVR
- Микроконтроллеры AVR для начинающих — 1
- ПРОГРАММИРОВАНИЕ Attiny2313
ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: Программирование микроконтроллеров Atmega, Attiny.
Программирование МК AVR
Микроконтроллер — микросхема, предназначенная для управления электронными устройствами, или по другому — простенький компьютер микро-ЭВМ , способный выполнять несложные задачи. Рано или поздно, любой радиолюбитель я так думаю , приходит к мысли о применении в своих разработках микроконтроллеров.
Что нужно для того, чтобы начать пользоваться всеми возможностями микроконтроллеров? Я считаю, что не так уж и много.
Главное в этом деле — желание. Будет желание, будет и результат. В своих статьях я буду опираться на материалы из публикаций популярных авторов микроконтроллерной тематики: Рюмика С.
Микроконтроллеры — первый шаг. Эта статья, как и все последующие, — маленький шажок в мир микроконтроллеров. Но и это, скорее всего, из области фантастики — нельзя объять необъятное, — мир микроконтроллеров постоянно развивается и совершенствуется.
Наша задача — сделать первый шаг, логическим итогом которого должна стать первая, самостоятельно разработанная и собранная конструкция на микроконтроллере. Системы счисления: десятичная, двоичная и шестнадцатиричная.
Тут, я думаю, вопросов у нас нет, что такое системы счисления нам понятно — отображение чисел символами. А вот какая связь систем счисления с микроконтроллерами. Логические операции, логические выражения, логические элементы. Все современные цифровые технологии основываются на логических операциях, без них никуда не деться.
Все цифровые микросхемы в своей работе используют логические схемы выполняют логические операции, в том числе и микроконтроллер. Создавая программу, мы прописываем все действия микроконтроллера основываясь на своей логике с применением логических операций, иногда даже и не подозревая об этом, которые применяем к логическим выражениям.
Битовые операции В прошлой статье была рассмотрена тема логических операций и выражений. В этой статье мы рассмотрим логические битовые операции. Битовые операции очень близки к логическим операциям, можно даже сказать, что это одно и тоже.
Разница только в том,что логические операции применяются к высказываниям, а битовые операции, с такими же правилами и результатами применяются к битам. Прямой, обратный и дополнительный коды двоичного числа. Прямой, обратный и дополнительный коды двоичного числа — способы представления двоичных чисел с фиксированной запятой в компьютерной микроконтроллерной арифметике, предназначенные для записи отрицательных и неотрицательных чисел.
Сегодня мы рассмотрим как, без особых затрат и быстро, запрограммировать любой микроконтроллер AVR поддерживающий режим последовательного программирования интерфейс ISP через USB-порт компьютера. Основы программирования микроконтроллеров AVR. Процесс будет проходить следующим образом — сначала статья по устройству микроконтроллера к примеру, первая статья будет по портам ввода-вывода , а затем статья по программированию. Сегодняшний наш разговор вводный, и будет посвящен вопросам материального и программного обеспечения процесса изучения основ программирования микроконтроллеров.
Русификация программы Atmel Studio. В этой статье мы поговорим о проблемах русификации программы Atmel Studio, как перевести программу на русский или другой язык, и как сделать более удобной работу программы с программатором USBASP. После установки программы Atmel Studio весь интерфейс будет на английском языке. Кому-то, кто знаком с английским, или уже привык работать с программами с английским интерфейсом, это вполне устроит.
Меня лично, такой подход создателей программы к великому и могучему не устраивает, мне более комфортно работать с русскими меню. Введение в язык программирования С Си для микроконтроллеров. В этой статье будут рассмотрены основные сведение о языке С, структура программы на языке С, дано понятие о функциях, операторах и комментариях данного языка программирования.
В этой статье будут рассмотрены типы переменных в языке С Си для микроконтроллеров AVR, объявление переменных, способы задания констант, будет дан обзор арифметических операций языка С, присваивания, инкремента и декремента.
В этой статье будет рассмотрено управление портами микроконтроллеров AVR на языке программирования С Си : установка выводов порта на вход или выход, считывание значений на входах портов, программа для управления миганием светодиода.
В данной статье будут рассмотрены циклы в языке программирования Си для микроконтроллеров AVR. Здравствуйте, требуется помощь начинающему. Это кастомная функция, судя по названию для записи, в которую передётся пустота. Добрый день! Я начинающий. Помогите пожалуйста с написанием программы: на выходе МК нужно получить2 фиксированные частоты-4,5кГц и 6кГц.
И если можно список литературы. Здравствуйте Денис! До конца недели отвечу а может и готовую программу предложу. С уважением, Admin. Смотрю я на ваш сайт… Вообще контроллеры наверно на ассемблере программируются или я не прав?
Если какие интересные задачи именно по программированию есть поделитесь. Посмотрел файл Termostat. Судя по увиденному там только какие-то данные или попросту мусор, нормальных исполнимых кодов там и близко нет, увы… Спасибо за внимание, Вячеслав.
Здравствуйте Вячеслав! Извините, но своевременно ответить на вопросы не мог. Контроллеры программируются не только на Ассемблере, есть и другие языки программирования. Я не знаю чем Вы пользовались при изучении файла Termostat. Любой язык в итоге сведётся к ассемблеру, ибо это машинные кода. Нет совместимости между 8 и 16 разрядными контроллерами, ибо регистры по 8 и 16 бит попросту не совпадают по длине. По этой причине у Вас не заработает ти битный С на 8-ми битном контроллере.
Исполнимые файлы 16 бит изучают программой Debug под DOS. К сожалению ни в одном из трех пунктов Вы не правы. Я так понимаю, что Вы начинающий микроконтроллерщик. Любой язык, а Ассемблер — это язык программирования, посредством транслятора переводится в машинный код, который затем записывается в МК. Зачем Вы упоминаете здесь разрядные МК? О них на сайте нет вообще ни одного слова. НЕХ формат — это не исполняемый файл, а файл содержащий машинные коды, которые записываются в МК.
Данная программа является консольным приложением и предназначена для создания или изменения кода файлов. Рекомендую зайти на сайт Ю. Подскажите пожалуйста начинающему. В схеме мк должен работать от внешнего кварца 10 мгц. Вопрос:если мк новый то прошивать его надо с кварцем 10 мгц или без кварца? Прошивать МК можно и с кварцем и без. У микроконтроллеров нет внутреннего кварца, не вводите людей в заблуждение.
Там всего лишь генератор на R-C элементах. Хотя, если нет особых требований к высокой точности, можно использовать устройство и на этом генераторе, без кварца. Вопрос такого порядка. При инкубации яиц предельно допустимая температура 38 градусов.
Но в конце процеса происходит биологический не контролируемый само нагрев яиц. Исходя с этого нужен термостат который бы включал вентилятор при заданой от большей к меньшей температуре. К примеру Может быть у ВАС в зеначках есть така прошивк.
Был бы очень благодарен. С уважением анатолий. Здравствуйте Анатолий! Такой прошивки нет. Эту задачу я пытался решить в два этапа: 1. Invalid device signature. Подскажите, пожалуйста, что это за проблема такая выросла на ровном месте. Получается что теперь мой МК нужно лечить. Что могло произойти с электронной подписью устройства при программирования фьюзов??? Заранее Вам благодарен! С уважением, Валерий. Здравствуйте Владимир! Каждый микроконтроллер имеет специальные ячейки памяти в которых на заводе прописывается его сигнатура конфигурация — код микроконтроллера по которому определяется его тип и марка.
Судя по записи — программа не может считать эти данные, и не может определить какой перед ней МК. Проверьте правильность подключения МК к программатору, надежность и правильность установки конденсаторов и кварца, наличие питания и его величину — 5 Вольт.
Вспомните и проверьте что вы устанавливали во фьюзах пришлите картинку с установленными фъюзами на почтовый адрес сайта. Попробуйте запустить МК, попробуйте использовать другую программу. Это плохо, но не смертельно. Такое чаще всего случается из-за неправильной установки МК в панельку обычно ошибаются на градусов.
Primary Menu
Учебный курс по микроконтроллерам. Азбука AVR , основы радио электроники, устройство микроконтроллера, схемы, прошивки, примеры, скачать книги по электронике и программированию, простые программаторы AVR и PIC. Быстрый и уверенный старт. Соблюдайте технику безопасности!
all-audio.pro Краткий курс — микроконтроллеры AVR начинающим с нуля, AT76C ATtiny11, ATtiny12, ATtiny13, ATtiny15L, ATtiny, ATtiny25, ATtiny26 ключевые слова: программирование микроконтроллеров.
ATTiny2313-дешевый и доступный.
Многофункциональная, древовидная записная книжка «MyTreeNotes» для удобной работы с большим количеством заметок и надежной защиты данных для телефонов и планшетов Андроид. Все для программиста. Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь. Новости: Многофункциональная, древовидная записная книжка «MyTreeNotes» для удобной работы с большим количеством заметок и надежной защиты данных для телефонов и планшетов Андроид. Начало Помощь Поиск Вход Регистрация. Подробное описание как собрать схему и прошить микроконтроллер ATtiny Для того, чтобы удобнее было программировать наше устройство то есть многократно подключать внутрисхемный программатор PX к устройству и отключать, на плату установим контактный разъем IDCMS BH Первый вопрос обычно, с чего начать? Как же теперь прошить этот микроконтроллер ATtinyPU и что для этого нужно: Первым делом нам нужен программатор, программаторов тоже много разновидностей, какой программатор выбрать?
Программирование микроконтроллеров Atmel AVR: tinyAVR(ATtiny) и megaAVR(ATmega)
Я радиомонтажник, умею и люблю паять, но с микроконтроллерами никогда не сталкивался, считал что это сложно и нереально. В схеме присутствует микроконтроллер, работу которого необходимо запрограммировать. Для меня это «темный лес «, но мне очень хотелось разобраться. Начал с программатора Громова и программы UniProf, все делал по вот этой статье.
Микроконтроллер ATTiny является возрождением в новой серии старого микроконтроллера AT90S, который в свое время вышел довольно удачным.
Программирование микроконтроллеров AVR
Жертва эксперимента — ATtiny13 — воткнут в макетную плату, рядом собран формирователь сигналов, всё готово: Рис. Рисунок 1 — Схема платы для экспериментов. Центральным элементом ее является, как уже было сказано, контроллер DD1 типа ATtiny Питание схемы и программирование контроллера осуществляется при помощи разъема XS1. Разводка ATTiny. Даже DEMO версия позволят прошивать прошивки любого размера! Вам не нужно будет тратить деньги и время на поиски и Культиватор Профи Аргус Инструкция радио деталей и микроконтроллеров пока вы не убедитесь в работоспособности устройства которое вы делаете!
Микроконтроллеры AVR для начинающих — 1
Совет — умейте правильно находить информацию! Предлагаю вам учиться на моём примере. Добрый день, уважаемые! Буду признателен если вы сможете помочь развить его оставив свои пожелания, отзывы или линки на ресурсы. Ну и задавая вопросы конечно же ; Спасибо огромное!
Микроконтроллер ATTiny является возрождением в новой серии инструкций оптимизированных для программирования на.
ПРОГРАММИРОВАНИЕ Attiny2313
Прошивки представленные в этом разделе, или небольшие «рабочие лошадки» полезные при настройке макетов или весьма простые примеры программирования. Возможно, для некоторых начинающих программистов, доступные для скачивания здесь прошивки и их исходные послужат примерами, на базе которых они начнут свой путь. Быть может, кто-то из конструкторов, сочтёт эти прошивки весьма полезными при наладке макетов устройств. Для заказчиков наших услуг, эти прошивки могут послужить примерами исходного и исполняемого кода разработанного нами.
Когда возникает необходимость включить свет, не вставая с дивана, может выручить пульт ИК-управления от телевизора. Который, как правило, всегда под рукой :. На пульте дистанционного управления всегда найдутся кнопки, которые можно выделить для управления люстрой, торшером или другим освещением. Предлагаемая схема таймера для кормления рыб на микроконтроллере, может быть использована для любых других целей…. Схема реализована на популярном и доступном….
Микроконтроллер — микросхема, предназначенная для управления электронными устройствами, или по другому — простенький компьютер микро-ЭВМ , способный выполнять несложные задачи. Рано или поздно, любой радиолюбитель я так думаю , приходит к мысли о применении в своих разработках микроконтроллеров.
Микроконтроллеры везде. Их повсеместное применение позволяет заменить сложные аналоговые схемы, более сжатыми цифровыми. Можно представить его в виде простейшего компьютера, способного взаимодействовать с внешними устройствами. Например, открывать и закрывать транзисторы, получать данные с датчиков температуры, выводить данные на lcd экраны и т. К тому же, микроконтроллер может производить различную обработку входных данных, как и Ваш персональный компьютер. Это далеко не полный список сфер применения микроконтроллеров. Часто, очень выгодно заменить набор управляющих микросхем одним микроконтроллером, ввиду упрощения производства, снижения энергопотребления.
Урок Работаем с кнопками. Передаём малую страницу. Передача большой страницы.
—
Сегодня я сделал небольшой светодиодный куб 3x3x3 с ATtiny2313, который у меня был примерно 2 недели назад. Всякий раз, когда мне приходилось перепрограммировать светодиодный куб, когда я думал о более удивительных схемах, мне приходилось доставать свою макетную плату, а затем снова подключать все, сверяясь с выводами ATtiny2313, и убеждаться, что все подключено правильно, а затем, наконец, загружать новый код. .
Итак, я отправился на eBay и Amazon в поисках чего-нибудь для программирования этих чипов, так как я планировал часто использовать эти чипы в будущем. Потратив около часа, я просто понял, что зря трачу время, так как не собираюсь тратить около 20-30 долларов на простой щит.
Немного подумав, я решил сделать простой и легкий в изготовлении экран для программирования ATtiny2313. всего за несколько кликов ваш код загружен! Не нужно беспокоиться, если все подключено правильно, и убедитесь, что нет коротких замыканий или чего-то еще, что может привести к короткому замыканию чипа и его поджариванию или что-то в этом роде.
Итак, теперь в этой инструкции я покажу вам, как сделать один из этих щитов для себя!
Это почти ничего не стоит, и на его изготовление уходит около 30 минут.
Итак, приступим!
Шаг 1: Материалы
Инструменты, необходимые для этого проекта;
- Паяльник
- Припой
- Клеевой пистолет (или просто хороший клей)
Шаг 2: Прототип и распиновка
На изображении показана схема распиновки, на которой показано, как все подключить, в основном вы подключаете все, как показано на распиновке, но не напрямую к Arduino, а к макетной плате с разъемами. прикрепленный к ним, который можно прикрепить к ардуино в качестве щита.
Держите схему выводов ATtiny2313 рядом с собой при подключении всего, чтобы избежать возможных ошибок по забывчивости.
(Распиновка ATtiny2313 взята с http://blog.williambritt.com/uploads/attiny2313-pinout.png)
Шаг 3: Работа над собственно экраном центр макетной платы, а затем поместите штекерные разъемы в Arduino, а затем поместите на него макетную плату, чтобы получить точное положение, куда припаивать штекерные разъемы.
Затем подключите правые контакты штырькового разъема к гнездовому разъему в соответствии с распиновкой (розетки будут использоваться для подключения ATtiny2313, а штекерные разъемы будут использоваться для крепления экрана к Arduino)
Затем добавьте 2 светодиода и конденсатор и подключите их в соответствии с распиновкой, убедитесь, что конденсатор подключен правильно, если это поляризованный конденсатор.
Затем, как только все будет подключено, подключите его к arduino и загрузите тестовый код, чтобы убедиться, что все работает нормально (инструкции о том, как это сделать, на следующем шаге), затем, когда тестирование будет завершено, вы можете добавить немного горячего. клей вокруг паяных соединений, чтобы убедиться, что они прочные и не сделать каких-либо неправильных соединений. Вы также можете использовать электроизоляционный гель/клей.
[box color=”#985D00″ bg=”#FFF8CB” font=”verdana” fontsize=”14” radius=”20” border=”#985D12″ float=”right” head=”Основные компоненты в проекте” headbg=”#FFEB70″ headcolor=”#985D00″]
Материалы, необходимые для этого проекта;
- Протоплата
- Конденсатор 10 мкФ (или аналогичный)
- 2 светодиода
- Пара проводов
- Однорядная контактная планка
- Однорядная розетка с контактной колодкой
[/box]
Подробнее: Arduino ATtiny2313 Programming Shield
Этот пост/проект также можно найти с помощью поисковых запросов:
- attiny2313 pinout
Волшебный круг с ATtiny2313
Волшебный круг с ATtiny2313Путь: AVR-RU => Приложения => Магический круг Diese Seite на немецком языке: Применение однокристальных микроконтроллеров AVR AT90S, ATtiny, ATmega и ATxmega Магический круг с ATtiny2313 и светодиодами |
Щелкните здесь, чтобы загрузить сжатую версию этой страницы (1,37 МБ) |
---|
- Свойства
- Оборудование
- Крепление
- Программное обеспечение
В этом случае включение работает с 256 ступенями возрастания интенсивности, выключение с одинаковым количеством ступеней с уменьшением интенсивности. Назовите это мягким включением и выключением. Двойная скорость в этом случае означает уменьшение количества этапов до 128, очень высокая скорость означает 64 этапа. Чтобы не надоело всегда одна и та же скорость, вы можете немного смешать эти скорости, чтобы никто не спать.
Регулировка интенсивности осуществляется четырьмя каналами ШИМ в ATtiny2313, где четыре выходных контакта PWM OCR0A, OCR0B, OCR1A и OCR1B двух таймер/счетчики TC0 и TC1 переключаются. Каждый выходной контакт управляет между двумя и четыре светодиодных катода. Это приводит выходные контакты к их электрическим ограничениям. а активное низкое напряжение составляет 0,88 В (при активном включении четырех светодиодов). Поскольку каждый выходной контакт анода должен управлять только одним светодиодом, их активный высокий уровень напряжение на 0,3 В ниже рабочего напряжения.
Последовательности отображения хранятся в таблице во флэш-памяти, могут быть изменены на ваш личный вкус, поэтому каждый подарок-устройство имеет индивидуальный дизайн и уникальный.
Начало страницы | Свойства | Оборудование | Крепление | Программное обеспечение |
---|
2.1 Часть контроллера
Вот и вся скучная схема. Каждый светодиод управляется резистором (в данном случае при рабочем напряжении 3,3 В с сопротивлением 33 Ом. В среднем ток светодиода составляет 7,2 мА (между 5,7 и 90,2 мА) имеет был измерен. Напряжение светодиода при этом токе составляет примерно 2,0 В. (со стандартными светодиодами 5 мм). Прилагается интерфейс ISP6, который позволяет программировать устройство в
система. К сожалению, мой древний AVR-ISP-MkII не работает на 3,3 В.
рабочее напряжение. Либо он неисправен, либо напряжение программирования слишком низкое.
Другой программатор работал нормально. Если вы столкнулись с подобными проблемами,
отключите 33 Ом тремя перемычками во время программирования.
2.2 Блок питания
Блок питания был построен на трансформаторе мощностью 2 ВА с 2 * 7,5 В.В качестве регулятора использован LM317, регулируемый 10-ступенчатым потенциометр от 1 кОм до выходного напряжения 3,3 В. Конечно, вместо этого вы можете использовать стабилизатор на 3,3 В, если у вас есть один.
Если используется источник питания 5 В, резисторы, управляющие светодиоды должны быть увеличены до 180 или 220 Ом.
LM317 вырабатывает максимум 600 мА тепла, поэтому либо вы может не использовать или использовать только небольшой радиатор. При повышенных токах светодиодов теплоотвода 20°C/Вт достаточно.
Это напряжения с потреблением 130 мА.
Все конденсаторы рассчитаны на 35 В, поскольку трансформатор производит очень высокое напряжение, когда нагрузка не подключена (компенсация внутреннего сопротивления 22,7 Ом на катушку). Без под нагрузкой катушки 7,5 В выдают более 16 В после исправление. Особенно танталовые конденсаторы этого не выдерживают перенапряжение.
Программное обеспечение для расчета напряжения питания может быть найденный здесь
К началу страницы | Свойства | Оборудование | Крепление | Программное обеспечение |
---|
3.1 Часть контроллера
Монтаж контроллерной части осуществляется на макетной плате 40*40 мм. Соединения катода и анода светодиода находятся на штырях для пайки. 1 мм. Если вы хотите иметь вилку вместо этого, используйте Вместо этого 18- или 20-контактный разъем IDC. Вот так выглядит плата после припайки светодиодов.
3.2 Монтаж блока питания
Компоненты блока питания помещаются на макетную плату размером 50*60 мм. Особого внимания требует сторона 230/110 В: крепежные винты не должны касаться плавких вставок.Так выглядит блок питания. Типовая табличка трансформатор наоборот, видимо поэтому он было так дешево.
3.3 Установка в коробку
Вся электроника умещается в небольшом корпусе размером 120 x 60 x 40 мм. пластиковый бокс, который оснащен небольшим фирменная табличка (в формате Open-Office-Graphic), и четыре резиновые ножки и, наконец, поставляется с руководством пользователя в PDF или в формате Open-Office-Writer на получатель.К началу страницы | Свойства | Оборудование | Крепление | Программное обеспечение |
---|
4.1 Структура программного обеспечения
Во время инициализации все три порта A, B и D, которые используются для привода светодиоды записываются единицами. Направление порты выходных контактов OC0A, OC0B, OC1A и OC1B установлены, все контакты анодного выхода очищены (все светодиоды выключенный). Указатель Z устанавливается в начало таблица последовательности. Оба таймера запускаются с предкаллером из 8, и все выходы OC настроены на переключение (0 на начало цикла ШИМ, переключить при достижении сравнить стоимость).После инициализации программа работает с прерываниями. Для этого прерывание CompareA таймера/счетчика TC0 используется, который срабатывает после каждого полного ШИМ фаза. Затем процедура обслуживания прерывания устанавливает сравнить значения всех четырех каналов ШИМ со значением в реестре rPwm. Тогда этот регистр либо увеличивается (флаг bFall = 0) или уменьшается (флаг bFall = 1). Если флаг bFast на одно увеличение и уменьшение на один дополнительный шаг, если флаг bVeryFast один, выполняются два дополнительных шага.
Если регистр rPwm переполняется (bFall=0) и если флаг bUpOnly установлен, rPwm перезапускается с нуля. Если bUpOnly=0, тогда устанавливается bFall.
Если счетчик rPwm достигает нуля (bUpOnly=0 и bFall=1) или при переполнении (bUpOnly=1) флаг bСтарт будет установлен. Этот флаг обрабатывается вне процедура обслуживания прерывания: следующие три светодиодных анода комбинации считываются из таблицы и записываются к трем портам направления. Все светодиоды, которые должны быть в следующем периоде имеют установленный бит направления и портпин становится высоким.
Этапы обработки описаны в следующей главе.
4.2 Этапы обработки
Все этапы обработки занесены в таблицу. Этот обычно содержит четыре байта данных:- Первый байт: Флаги: Флаги могут быть обычными (0), только вверх (бит 0 = 1), двойная скорость (бит 1 = 1) или четырехкратная скорость (бит 1 и 2 = 1).
- Второй байт: Биты направления для порта D (с бит 6 всегда установлен).
- Третий байт: Биты направления для порта B (с биты 2, 3 и 4 всегда установлены).
- Четвертый байт: биты направления для порта A.
- 0xFF: Конец таблицы, перезапустить сначала,
- 0xFE: повторите следующие записи во внешнем петля, количество повторений закодировано в второй байт, начальный адрес копируется в X регистры,
- 0xFD: повторите следующие записи во внутреннем петля, количество повторений закодировано в второй байт, начальный адрес этой последовательности записывается в регистры Y,
- 0xFC: конец внешнего цикла повторения, если дальше требуется повтор адрес восстанавливается из X, если после n повторений выполнение продолжается после текущего адреса.
- 0xFB: Конец внутреннего цикла повторения, если дальше требуется повторение адрес восстанавливается из Y, если нет, выполнение продолжается на следующем адрес.
экв X0=1843200 ; 00.1C.20.00 .equ Xall=67075840 ; 03.FF.7F.00С
.set сХ = Х1 .db Байт1(сХ),Байт2(сХ),Байт3(сХ),Байт4(сХ) .set сХ = Х2 .db Байт1(сХ),Байт2(сХ),Байт3(сХ),Байт4(сХ)светодиоды один и два включены.
.установить сХ = X1_2 .db Байт1(сХ),Байт2(сХ),Байт3(сХ),Байт4(сХ)Это включает оба светодиода.
Просто добавлены флаги bUpOnly, bFast и bVeryFast к этой константе, например. очень быстрое включение/выключение светодиода 2:
.set cX = cVeryFast+X2 .db Байт1(сХ),Байт2(сХ),Байт3(сХ),Байт4(сХ)Используя контроль повторения до 256 повторений можно закодировать без необходимости копировать последовательность n раз. Это повторяет последовательность светодиодов 1, светодиодов 2 и Светодиод 3 четыре раза.
.db cRepeat1,4 ; Начните внешнее повторение, количество = 4 .set сХ = Х1 .db Байт1(сХ),Байт2(сХ),Байт3(сХ),Байт4(сХ) .set сХ = Х2 .db Байт1(сХ),Байт2(сХ),Байт3(сХ),Байт4(сХ) .установить сХ = Х3 .db Байт1(сХ),Байт2(сХ),Байт3(сХ),Байт4(сХ) .db cNext1,0 ; Повторить внешний цикл три разаС помощью cRepeat1 и cRepeat2 вложенные повторения могут быть построен.
При необходимости разворот Tables.ods в формате Open-Office позволяет проектировать и рассчитывать комбинации. Лист Bit_Tab это позволяет. Просто
- добавить имя константы в столбец A,
- запишите 1 во всех ячейках от L1 до L13 для каждого Светодиод, который должен гореть, и
- скопируйте результат определения в столбец S и вставьте его в файл const.inc,
- добавить константу в таблицу процессов,
- собрать magic_circle_v1.asm.