Ассемблер (ASM) для AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Ответить
xkp
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Откуда: ковров

Сообщение xkp »

дым не пойдет, он потом собирая по этой схеме можно забыть поставить резисторы, или выкладывая такую схему - кто то соберет согласно схеме, без резисторов.
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Схемы для симуляторов и реальных устройств никогда не должны совпадать у тех, кто умеет этими симуляторами пользоваться.
Реклама
xkp
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Откуда: ковров

Сообщение xkp »

я вот когда паял себе некий девайс из 30 RGB светодиодов и атмега8, так и собрал по такой схеме БЕЗ РЕЗИСТОРОВ и даже БЕЗ ТРАНЗИСТОРОВ. светодиоды (в матрице) НАПРЯМУЮ к МК - без всего. правда - работало, дым не пошел, МК слегка грелся. уже потом поставив транзисторы и резисторы замерил ток. максимальное значение, которое мне показывал тестер, было 0.34А.
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск

Сообщение Леонид Иванович »

xkp писал(а):а... еще резисторы на бызы транзисторов
Про транзисторы Вы не правы. Всё там было правильно. Использовались эмиттерные повторители на транзисторах n-p-n, резисторы в базах им не нужны.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
xkp
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Откуда: ковров

Сообщение xkp »

я про свой вариант схемы говорил про резисторы.
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Контактная информация:
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 383
Зарегистрирован: Пн мар 16, 2009 23:35:42
Откуда: Украина Новоднестровск

Сообщение nibiluk »

Про ограничительные резисторы понятно что нужны, схема пока так нарисована мне пока главное в программе разобратся, поэтому в эту ветку написал. Но уже разобрался всем спасибо.
Всем известно что любая микросхема работает на дыме, и если волшебный дым из неё вышел то она перестает работать.
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

А вы не думали, что в динамике на кнопки периодически подается плюс, а уходить то ему некуда! Тут же резистор то на плюс стоит.Может в такой схеме на минус поставить?
Вот вам еще и экономия на диодах
В поисках истины человек развивается.
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 383
Зарегистрирован: Пн мар 16, 2009 23:35:42
Откуда: Украина Новоднестровск

Сообщение nibiluk »

Именно так я и сделал, общий порт кнопок подтянул к -, и на нём сканировал наличие 1, если есть, то смотреть в какой момент появилась, то есть какой индикатор светит 1, 2, 3, или 4, так и узнаем номер кнопки.
Всем известно что любая микросхема работает на дыме, и если волшебный дым из неё вышел то она перестает работать.
xkp
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Откуда: ковров

Сообщение xkp »

всем мяу. есть недоделанный проект эмитатора ключей домофона. в идеале будет хранить 16 ключей с возможностью перезаписи. но пока я завис на отдаче кода домофону. на запросы $0F и $F0 отвечает нормально а вот на запрос $33 (где надо отдавать правильный бит и сразу за ним инверсный) выдает полную лажу. кто посмотрит? протеус и исходники во вложении

PS. кнопкой RESET - выход из спящего режима. вторая кнопка пока не задействована. программа сейчас сканирует на сброс (480мкс), потом смотрит запрашиваемый код ($0F,$F0,$33), в случаях $0F и $f0 отдает код ключа, в случае $33 отдает код с инверсными битами - оно то и не работает.

PPSS. если кому надо выложу читалку домофонных ключей на меге32 и знакосимвольным ЛСД16*2


прошу прощения. $33 работает нормально. а вот $F0 глючит.
выдает 0x55EBAB56B7AAAA заместо 0x01C38B06360000. хотя нет. выдает все время разные комбинации, но не правильные!
фот фото этого ключа + читалка. в памяти ключа забит ключик знакомого.
Изображение

Изображение

Изображение

индикация: 0-нет подключения. 4-ОК. 1-ошибка "короткий сброс"
почему выдает такую ошибку - непонятно. при подключении реального ключа к читалке - читается ОК по всем трем командам.
Вложения
ds1990.rar
(19.75 КБ) 131 скачивание
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Контактная информация:
Встал на лапы
Сообщения: 129
Зарегистрирован: Вт мар 22, 2011 18:41:48

Сообщение Serj324 »

Всем привет.
Подскажите Как Подкорректировать Прошивку чтобы светодиоды быстрее моргали.
Всем приве.
Пол дня рисовл схему в Proteyse и ура она заработала так-же как сейчас у меня собрана на макетке.
Подскажите МК Atmega 8 управляет четыремя светодиодами, МК работает от внутреннего генератора.
Прилогаю прошивку (текстовый фаил в блакноте), подскажите какие в тексте прошивки параметры, отвечяющие за интервалы включения светодиодов (что-бы их мог менять) ну там включить светодиод на 0,3 с ждать 0,1 с включить следующий на 0,5 с
подскажите а то я не могу разобратся.
Вложения
Отправить прошивка mega8_4leds.asm
(2.45 КБ) 308 скачиваний
отправить схема.jpg
(43.16 КБ) 360 скачиваний
BVS
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Пн май 23, 2011 18:27:41

Сообщение BVS »

Код: Выделить всё

; delaying 3999996 cycles:
          ldi  R17, $24
WGLOOP0:  ldi  R18, $BC
WGLOOP1:  ldi  R19, $C4
WGLOOP2:  dec  R19
          brne WGLOOP2
          dec  R18
          brne WGLOOP1
          dec  R17
          brne WGLOOP0
там $24, $BC, $C4 вот эти числа конкретно первое
ну и для каждого сделать свой PAUSE_X_SEK:
xkp
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Откуда: ковров

Сообщение xkp »

Код: Выделить всё

; delaying 3999996 cycles:
          ldi  R17, $24
WGLOOP0:  ldi  R18, $BC
WGLOOP1:  ldi  R19, $C4
WGLOOP2:  dec  R19
          brne WGLOOP2
          dec  R18
          brne WGLOOP1
          dec  R17
          brne WGLOOP0
$24 - грубая подстройка
$BC - плавная подстройка
$C4 - очень плавная настройка.
меняй эти значения в пределах $01,$02...$FF,$00 и будет тебе счастье. (значение $00 в этой программе будет максимальным(!!!), т.е. на 1 больше $FF)
PS. для мигания светодиодов можно намного проще программу сделать.
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 444
Зарегистрирован: Вс ноя 28, 2010 15:18:52
Откуда: Минск

Сообщение ANALOG »

Подскажите, как переставить все биты в регистре задом наперед? Нет ли для этого специальной команды (я в Assembler Help'e из студии не нашел :( ) или прийдется по одному биту доставать и пихать в другой регистр?
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

"все биты в регистре задом наперед" правильно называется инверсией. Разумеется команда есть - com
Мучитель микросхем
Аватара пользователя
Сообщения: 444
Зарегистрирован: Вс ноя 28, 2010 15:18:52
Откуда: Минск

Сообщение ANALOG »

Не, я не это имел ввиду.
Вот допустим, в регистре - ____ 0b11110010
Если сделать com, то станет ___ 0b00001101
а мне надо, чтоб _____________ 0b01001111
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

ааа, значит "задом наперед" мы по-разному понимаем :)
Нет такой команды вроде...
Можно сделать восемь раз переброску бит:
ROR Ra
ROL Rb

где Ra - регистр с исходным числом, в Rb будет перевёрнутое.
Мучитель микросхем
Аватара пользователя
Сообщения: 444
Зарегистрирован: Вс ноя 28, 2010 15:18:52
Откуда: Минск

Сообщение ANALOG »

Ясно, спасибо
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

немного добавлю.
ploop писал(а):Можно сделать восемь раз переброску бит:
ROR Ra
ROL Rb
только перед этим нужно очистить флаг C в SR.
P.S. Туплю... написал фигню. Ночь, пора спать)))
Ставим плюсы: )
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Можно еще так, тоже 16 тактов.
BST Ra,0
BLD Rb,7
BST Ra,1
BLD Rb,6
...
BST Ra,7
BLD Rb,0
При этом исходный регистр остается не тронутым и С не меняется. А то смотрю народ совсем T-флагом не пользуется, забыли его :)
Друг Кота
Аватара пользователя
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Engineer_Keen писал(а):Можно еще так, тоже 16 тактов.
Угу, ROR и ROL можно зациклить.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Ответить

Вернуться в «AVR»