Ассемблер (ASM) для AVR в вопросах и ответах
Re: Ассемблер (ASM) для AVR в вопросах и ответах
В общем приложении это так, но в случае с применением сдвигового регистра (если нет линии гашения или сброса) более оперативным будет гашение по портам МК. 
- Реклама
Re: Ассемблер (ASM) для AVR в вопросах и ответах
А подскажите еще, пожалуйста. Используется ли постолбцовый вывод информации? У меня получается довольно большая матрица 7х130. И при постолбцовом выводе не могу добиться хорошей яркости. Как быть?
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
130 столбцов?
Либо разбивать на части либо сканировать 7 строк а 130 столбцов завести на 130-разрядный регистр сдвига. При этом надо учитывать величину импульсного тока через драйверы строк...
130 светодиодов, чтобы получить такую же яркость каждого как у одиночного светодиода при 10мА нужен импульсный ток 70мА на светодиод, а если зажечь всю строку будет 70ма*130 = 9.1А
В принципе выполнимо на регистрах STP16CP05(надо будет их штук так с десяток) , только кондеров керамических надо будет натыкать по всей плате, иначе будет глючить и фонить прилично.
Либо разбивать на части либо сканировать 7 строк а 130 столбцов завести на 130-разрядный регистр сдвига. При этом надо учитывать величину импульсного тока через драйверы строк...
130 светодиодов, чтобы получить такую же яркость каждого как у одиночного светодиода при 10мА нужен импульсный ток 70мА на светодиод, а если зажечь всю строку будет 70ма*130 = 9.1А
В принципе выполнимо на регистрах STP16CP05(надо будет их штук так с десяток) , только кондеров керамических надо будет натыкать по всей плате, иначе будет глючить и фонить прилично.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
А через транзисторные ключи на BC547 разьве нельзя развязать?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Матрицу 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А как-то настораживает...
Кстати... при выводе с мультиплексированием *8 вполне пристойная яркость и при 20мА, можно конечно и *4 - но тут 2 регистровых линейки потребуются - да и это уже тематика другого раздела - про "беглые строки".

для вывода строки 17 регистров 74HC595 + ULN2803 или 17 штук TPIC6B595N с источником тока на каждом выходе на основе LM317+резистор. Однако рекомендую длину строки делать кратной 8 (разрядность регистра).
Можно использоват статику... но 130 регистров и типовой ток 130*8*0,02=20,8А как-то настораживает...
Кстати... при выводе с мультиплексированием *8 вполне пристойная яркость и при 20мА, можно конечно и *4 - но тут 2 регистровых линейки потребуются - да и это уже тематика другого раздела - про "беглые строки".
- Реклама
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
что именно ключами развязывать?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Или на каких-нибудь MBI5025, MBI5039. И не надо кучи внешних резисторов или источников тока, т.к. они там уже есть.Alexeyslav писал(а):на регистрах STP16CP05(надо будет их штук так с десяток)
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
для STP16CP05 тоже не надо, ток каждого вывода задается одним резистором.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
У меня выходы сдвигающего регистра повешены на BC547, и выходы Atmega8 через такихе же ключи.Alexeyslav писал(а):что именно развязывать?
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Они слишком слабые чтобы потянуть всю строку из 130 светодиодов. Простой расчет показывает что там токи будут порядка ампер. Там нужны полевики, а на регистры можно поставить и BC547 но какой смысл? Проще взять регистры со встроенными источниками тока которым вообще ничего больше на выход не нужно.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
А при постолбцовом выводе такой принцип использовать можно? Или тут тоже возможны хиторости, чтобы поставить источник тока?
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
столбцы и строки - это только для ориентации в пространстве.
Проблема может крыться в том что микросхемы предоставляют драйвер только для входящего тока, т.е. ток должен течь через индикатор входить в вывод микросхемы и через стабилизатор тока в шину общего провода. Почему в основном делают такие... просто потому что таким образом индикаторы можно запитать от более высокого напряжения.
Поэтому конструкция выхода таких регистров накладывает ограничения на организацию матрицы - длинная сторона матрицы должна быть минусом. А короткую придется коммутировать по "+" мощными ключами(ибо суммарный ток, если всю строку зажечь).
Проблема может крыться в том что микросхемы предоставляют драйвер только для входящего тока, т.е. ток должен течь через индикатор входить в вывод микросхемы и через стабилизатор тока в шину общего провода. Почему в основном делают такие... просто потому что таким образом индикаторы можно запитать от более высокого напряжения.
Поэтому конструкция выхода таких регистров накладывает ограничения на организацию матрицы - длинная сторона матрицы должна быть минусом. А короткую придется коммутировать по "+" мощными ключами(ибо суммарный ток, если всю строку зажечь).
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Подскажите пожалуйста, как правильно сравнивать шестнадцати разрядные числа между двумя регистровыми парами. Например сравнить числа в X -регистре и Y - регистре.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Как и обычные числа - как удобнее, с той лишь разницей, что речь идет о многобайтовой последовательности.

Re: Ассемблер (ASM) для AVR в вопросах и ответах
МКС писал(а):Подскажите пожалуйста, как правильно сравнивать шестнадцати разрядные числа между двумя регистровыми парами. Например сравнить числа в X -регистре и Y - регистре.
Код: Выделить всё
CP XL,YL
CPC XH,YH
BRxxRe: Ассемблер (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
Как это правильно написать в программе???
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Вы правильно мыслите. Далее, читаете этот документ и посылаете все куда угодно. 
И это... Поосторожнее с полным цитированием предсообщения.
И это... Поосторожнее с полным цитированием предсообщения.
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
то это будет правильная запись?
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 в вопросах и ответах
Третье условие не нужно: на равно и меньше уже проверено, иного быть не может.
А вообще, если погонять в Студии, то и вопросов таких возникать не будет
А вообще, если погонять в Студии, то и вопросов таких возникать не будет
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]


