AVRASM: Библиотека процедур для интеллектуальной обработки ВВОДА в МК: событий от Кнопок и Энкодеров (часть 1: авторская методика и реализация)

AVR
Микроконтроллерное устройство может работать исключительно в автономном режиме: получать сигналы с датчиков, и выдавать управляющие импульсы, иногда оно ещё взаимодействует с ЭВМ или другими микроконтроллерами… Но большинству микроконтроллерных устройств требуется поддерживать интерфейс с пользователем-человеком: для вывода используются светодиоды или дисплеи, а для ввода — традиционные Кнопки и Энкодеры, редко используются и другие экзотические устройства ввода
В данной работе будут рассматриваться только традиционные инструменты ввода: «цифровые Кнопки / Клавиатуры» и «инкрементальные Энкодеры», поскольку именно они используются почти всегда.

Содержание:


Читать дальше

AVRASM: Библиотека базовых Макроопределений "MACROBASELIB.INC"

AVR
Библиотека «базовых Макроопределений», расширяющая стандартный набор ассемблерных инструкций микроконтроллеров Atmel AVR (8-bit AVR Instruction Set), и рекомендующая парадигму программирования: с хранением «модели прикладных данных» в ОЗУ и использованием нескольких «временных регистров»…


Читать дальше

Обработка mRTOS напильником

AVR
Вместо вступления.
Это мой первый топик (не здесь а вообще, в этих ваших интернетах). Прощу сильно не пинать. Далее немного нытья.
Здравствуйте, меня зовут Евгений и я алко начинающий микроконтроллерщик. В моей чисто любительской практике с микроконтроллерами еще пару лет назад (тогда я трогал только AVR) не было какой то особой активности. Надо написать какую то простую программку — написал суперлуп и готово. Надо поморгать светодиодиками — запилил стандартный delay(). Положение усугублялось тем что я, как начинающий микроконтроллерщик, не мог не наткнуться на CodeVision AVR и не залипнуть на нем. Ведь там все что хочешь и сразу. Деление программы на отдельные файлы не практиковал — валил все переменные, функции и объявления в одну кучу говкода. Так продолжалось до тех пор пока мне не пришлось писать программу с изобилием задержек и таймаутов. Далее все о чем предупреждал товарищ DI HALT в статьях об архитектуре программ, прочитанных позже. Программные уродцы, полная невозможность модернизации и поддержки, тормоза, зависания, паранойя, депрессия, плохой стулсон. Далее я взял за правило всегда писать по правилам даже простые программы.

Читать дальше
  • +5
  • 16 ноября 2013, 01:33
  • XOR
  • 1

Необходим совет по работе с AVR и proteus

Есть следующая задача — нужен коммутатор UART (1 ком порт раскидать на 11 портов).
Использую Atmega16 + max232 (1 на входе и 6 на выходе).
Выбрал atmega16 потому, что необходимо 24 пина под I/O — 2 пина (RX TX ком порта) и 22 пина (11-RX и 11-TX ) для подключения периферии (сервера с консолью по ком порту).
Итак цель — получить возможность коммутировать один COM порт на 11 COM потребителей.
Первое что пришло в голову — просто соединить передающие пины с принимающими портами. По i2c приходит команда переключить порт
и вызывается макрос который в зависимости от состояния пина ставит требуемый порт. Библиотека для работы с i2c — сторонняя (Pascal Stang — Copyright (C) 2002-2003).


Читать дальше

Использование цифрового мини сенсора PIR AM612 и сенсорной кнопки для управления освещением

PIR

В статье расскажу об использовании цифрового пироэлектрического смарт сенсора для обнаружения движения — AM612 фирмы Nanyang Senba Optical Electronic.

По размеру он как обычный PIR сенсор, только выводов больше, внутри схема для обработки сигнала и на выходе информация о срабатывании в виде логического нуля или единицы.

Задействован этот датчик в схеме управление светодиодной лентой с использованием микроконтроллера AVR ATtiny13A.
Также в этой схеме используется сенсорная кнопка.


Читать дальше
  • +9
  • 21 октября 2013, 15:59
  • vad7
  • 1

Превращаем китайский программатор USBISP в USBASP

Всё началось с того, что купил себе на aliexpress.com вот такой, якобы usbasp программатор:

Дешево и сердито, в среднем по 3 бакса за штуку. Но тут всплыла одна особенность этого девайса, он работает как HID устройство, что есть не совсем хорошо.
[ 2597.780102] usb 3-2: new low speed USB device number 2 using ohci_hcd
[ 2597.952186] usb 3-2: New USB device found, idVendor=03eb, idProduct=c8b4
[ 2597.952189] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2597.952191] usb 3-2: Product: USBHID
[ 2597.952192] usb 3-2: Manufacturer: zhifengsoft
[ 2597.978533] generic-usb 0003:03EB:C8B4.0004: hiddev0,hidraw3: USB HID v1.01 Device [zhifengsoft USBHID] on usb-0000:00:13.0-2/input0

Было не совсем понятно, как его использовать. При работе с avrdude, ни один из программаторов из списка «дудки» не подходил.
После мытарств по просторам интернета и усиленного гугления, был обнаружена страничка www.sciencetronics.com/greenphotons/?p=938 на которой один заморский товарищ столкнулся с такой же проблемой и успешно её решил, поэтому было принято решение последовать его путём.
Путь сводится к тому, что по сути это обычный usbasp, и его можно легко в него превратить, просто перешив микроконтроллер в нём, что и было мною сделано.
Итак, последовательность действий такова:
  1. Разбираем этот «свисток»(со стороны usb разъёма выковыриваем пластиковую заглушку, вытаскиваем алюминиевый корпус)
  2. На плате есть два переходных отверстия, помеченные словом «UP», их нужно замкнуть(включаем возможность самопрограммиирования)
  3. Подключаем к этому свистку другой программатор(я использовал свой старый добрый usbasp) и заливаем в неё прошивку от usbasp-а из приложенного архива


После заливки прошивки, вместо красного светодиода, загорится синий, всё, на этом процесс преобразования завершён. Убираем перемычку с «UP» и далее работаем с ним, как с обычным usbasp-ом :)

P.S. Во вложении находится архив с прошивкой(в папке default лежит уже собранный hex). Также этот архив можно скачать на страничке www.sciencetronics.com/greenphotons/?p=938
  • +5
  • 07 октября 2013, 21:21
  • xterro
  • 3

Управление GSM модулем с AVR (часть 2)

AVR
В предыдущей части мы отправляли команды на модуль.



Теперь о получении команд с модуля.


Читать дальше
  • +2
  • 23 сентября 2013, 17:00
  • ilus
  • 4

Управление GSM модулем с AVR (часть 1)

AVR
Идея проекта: спроектировать устройство на базе микроконтроллера AVR для управления готовым GSM модулем (я выбрал модуль TC35 от SIEMENS, но можно использовать любой другой, если используется связь через последовательный порт RS232). Устройство должно быть компактным, минимально простым и надёжным.

Отправка заранее записанного в память сообщения на указанный номер должна выполняться после нажатия кнопки. Всего нужно было 6 кнопок для отправки на 6 различных номеров. Для индикации процессов были выбраны 3 светодиода (Ready, Send, Error), но в последствии был добавлен алфавитно цифровой LCD 16x2 (скорее, для отладки устройства, чем для обычного использования).

Проектировалось всё дело на плате Pinboard II (Rev 2) со стандартным процессорным модулем на ATmega16. На готовом устройстве схема была немного другой (и микроконтроллер использовался ATmega8). Программа писалась в AVR Studio 4.19. В проекте были использованы различные заголовочные файлы (#include) для переключения между Pinboard и готовым устройством.

Общая схема системы:



Читать дальше
  • +6
  • 23 сентября 2013, 15:10
  • ilus
  • 1

Отладчик-программатор для Pinboard2

AVR
После покупки отладочной платы Pinboard2 мне не понравился модуль для отладки и программирования контроллеров AVR, и я решил сделать свой.
Велосипед я изобретать не стал, использовал готовые решения, так что если кому-то интересно что у меня вышло, добро пожаловать под кат.


Читать дальше
  • +3
  • 19 сентября 2013, 22:45
  • MCDFV
  • 1

AVRASM: Шпаргалка по стандартным инструкциям ассемблера AVRASM. Система команд AVR (идея)

На основе оригинального документа Atmel: «AVR Instruction Set Manual (Rev.0856H–AVR–07.2009) (ENG).pdf» (это не самая последняя ревизия документа, но она содержит 99% всей информации и более компактна, чем последняя)

Скомпоновал только нужные страницы, с самой необходимой информацией, и распечатал себе такой некий «Quick Reference Guide»: «Celeron — Шпаргалка по AVRASM. Система команд AVR (распечатать на А4 двухстороннем, скрепить в левом-верхнем углу).pdf»


Читать дальше
  • +1
  • 15 сентября 2013, 22:05
  • Celeron
  • 2