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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

В общем приложении это так, но в случае с применением сдвигового регистра (если нет линии гашения или сброса) более оперативным будет гашение по портам МК. 8)
Реклама
Antony91
Родился
Сообщения: 19
Зарегистрирован: Пт янв 18, 2013 00:51:00

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

Сообщение Antony91 »

А подскажите еще, пожалуйста. Используется ли постолбцовый вывод информации? У меня получается довольно большая матрица 7х130. И при постолбцовом выводе не могу добиться хорошей яркости. Как быть?
Реклама
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

130 столбцов?
Либо разбивать на части либо сканировать 7 строк а 130 столбцов завести на 130-разрядный регистр сдвига. При этом надо учитывать величину импульсного тока через драйверы строк...

130 светодиодов, чтобы получить такую же яркость каждого как у одиночного светодиода при 10мА нужен импульсный ток 70мА на светодиод, а если зажечь всю строку будет 70ма*130 = 9.1А

В принципе выполнимо на регистрах STP16CP05(надо будет их штук так с десяток) , только кондеров керамических надо будет натыкать по всей плате, иначе будет глючить и фонить прилично.
Antony91
Родился
Сообщения: 19
Зарегистрирован: Пт янв 18, 2013 00:51:00

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

Сообщение Antony91 »

А через транзисторные ключи на BC547 разьве нельзя развязать?
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Матрицу 7*130 лучше делать как 7 строк по 130бит - даст максимально возможную яркость при динамической развертке. Максимальный ток устройства индикации 130*ток 1го светика (130*0,02=2,6А).
для вывода строки 17 регистров 74HC595 + ULN2803 или 17 штук TPIC6B595N с источником тока на каждом выходе на основе LM317+резистор. Однако рекомендую длину строки делать кратной 8 (разрядность регистра).
Можно использоват статику... но 130 регистров и типовой ток 130*8*0,02=20,8А как-то настораживает... :roll:
Кстати... при выводе с мультиплексированием *8 вполне пристойная яркость и при 20мА, можно конечно и *4 - но тут 2 регистровых линейки потребуются - да и это уже тематика другого раздела - про "беглые строки".
:beer:
Реклама
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

что именно ключами развязывать?
Реклама
SmarTrunk
Друг Кота
Сообщения: 6014
Зарегистрирован: Чт ноя 26, 2009 11:16:50
Откуда: Москва

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

Сообщение SmarTrunk »

Alexeyslav писал(а):на регистрах STP16CP05(надо будет их штук так с десяток)
Или на каких-нибудь MBI5025, MBI5039. И не надо кучи внешних резисторов или источников тока, т.к. они там уже есть.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

для STP16CP05 тоже не надо, ток каждого вывода задается одним резистором.
Antony91
Родился
Сообщения: 19
Зарегистрирован: Пт янв 18, 2013 00:51:00

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

Сообщение Antony91 »

Alexeyslav писал(а):что именно развязывать?
У меня выходы сдвигающего регистра повешены на BC547, и выходы Atmega8 через такихе же ключи.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

Они слишком слабые чтобы потянуть всю строку из 130 светодиодов. Простой расчет показывает что там токи будут порядка ампер. Там нужны полевики, а на регистры можно поставить и BC547 но какой смысл? Проще взять регистры со встроенными источниками тока которым вообще ничего больше на выход не нужно.
Antony91
Родился
Сообщения: 19
Зарегистрирован: Пт янв 18, 2013 00:51:00

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

Сообщение Antony91 »

А при постолбцовом выводе такой принцип использовать можно? Или тут тоже возможны хиторости, чтобы поставить источник тока?
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

столбцы и строки - это только для ориентации в пространстве.

Проблема может крыться в том что микросхемы предоставляют драйвер только для входящего тока, т.е. ток должен течь через индикатор входить в вывод микросхемы и через стабилизатор тока в шину общего провода. Почему в основном делают такие... просто потому что таким образом индикаторы можно запитать от более высокого напряжения.
Поэтому конструкция выхода таких регистров накладывает ограничения на организацию матрицы - длинная сторона матрицы должна быть минусом. А короткую придется коммутировать по "+" мощными ключами(ибо суммарный ток, если всю строку зажечь).
МКС
Встал на лапы
Сообщения: 147
Зарегистрирован: Чт янв 10, 2013 21:03:18

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

Сообщение МКС »

Подскажите пожалуйста, как правильно сравнивать шестнадцати разрядные числа между двумя регистровыми парами. Например сравнить числа в X -регистре и Y - регистре.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Как и обычные числа - как удобнее, с той лишь разницей, что речь идет о многобайтовой последовательности.
:)
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

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

Сообщение akl »

МКС писал(а):Подскажите пожалуйста, как правильно сравнивать шестнадцати разрядные числа между двумя регистровыми парами. Например сравнить числа в X -регистре и Y - регистре.

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

CP   XL,YL
CPC XH,YH
BRxx
МКС
Встал на лапы
Сообщения: 147
Зарегистрирован: Чт янв 10, 2013 21:03:18

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

Сообщение МКС »

akl писал(а):
МКС писал(а):Подскажите пожалуйста, как правильно сравнивать шестнадцати разрядные числа между двумя регистровыми парами. Например сравнить числа в X -регистре и Y - регистре.

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

CP   XL,YL
CPC XH,YH
BRxx
Спасибо уже что-то :) .

Но я уточню вопрос :
Счетчик Т1 в Atmega 8 подсчитывает импульсы от своего тактового генератора.
В первом цикле по команде состояние шестнадцатиразрядного счетчика T1 записывается в регистровую пару XH, XL
in XL, TCNT1L
in XH, TCNT1H
далее (в этом же цикле) сохраняем эти значения в буфере:
mov YL, XL
mov YH, XH
далее в следующем цикле (через 20 мс), счетчик обнуляется и заново подсчитывает импульсы от тактового генератора. Затем по команде опять записывает их в:
in XL, TCNT1L
in XH, TCNT1H
сразу после этого,(в этом же втором цикле программе) должны сравниваться старое значение счетчика из буфера Y – регистра с новым Х- регистра.
Если число Y – регистра равно числу Х – регистра, то устанавливаем единицу на нулевом пине порта С (PC0 = 1).
Если число в Y – регистре меньше числа Х – регистра, то РС1 = 1.
Если число в Y – регистре больше числа Х – регистра, то PC2 = 1
Как это правильно написать в программе???
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

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

Сообщение akl »

Вы правильно мыслите. Далее, читаете этот документ и посылаете все куда угодно. :)
И это... Поосторожнее с полным цитированием предсообщения.
МКС
Встал на лапы
Сообщения: 147
Зарегистрирован: Чт янв 10, 2013 21:03:18

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

Сообщение МКС »

Т. е если я напишу так:

cp XL, YL
cpc XH, YH
breq j1
brlo j2
brsh j3

j1: sbi PORTC, 0
cbi PORTC, 1
cbi PORTC, 2
rjmp main

j2: cbi PORTC, 0
sbi PORTC, 1
cbi PORTC, 2
rjmp main

j3: cbi PORTC, 0
cbi PORTC, 1
sbi PORTC, 2
rjmp main

то это будет правильная запись?
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

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

Третье условие не нужно: на равно и меньше уже проверено, иного быть не может.

А вообще, если погонять в Студии, то и вопросов таких возникать не будет :)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
МКС
Встал на лапы
Сообщения: 147
Зарегистрирован: Чт янв 10, 2013 21:03:18

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

Сообщение МКС »

Согласен.
Ответить

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