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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

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

Сообщение ILYAUL »

мк у меня tn2313а , а прерывание T1 compA дает секундные импульсы для часов.

Ну и сделайте пол-секунды,зачем два прерывания
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

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

Сообщение shads »

teist писал(а):и еще вопрос : в студии у меня нормальные комменты а тут крякозябры какие то?

Чтобы не было каких то крякозябров, нужно перед копированием из студии, переключиться на русскую раскладку..... всего то......
Аватара пользователя
teist
Открыл глаза
Сообщения: 61
Зарегистрирован: Пт янв 01, 2010 20:43:32
Откуда: cccp

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

Сообщение teist »

Спасибо всем кто откликнулся! :))
Наверное придется оставить только два прерывания :beer:
и переключать раскладку :beer:
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

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

Сообщение Kavka »

teist, в догонку, посмотрите вот эту тему, пара страниц всего, будет полезно.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
1essor1
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Вс дек 09, 2012 12:14:44

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

Сообщение 1essor1 »

Простенькая задача: нажимаем на кнопку происходит прерывание, обработчик которого увеличивает значение в регистре на единичку. Какое прерывание подойдет? INT0, INT1? я так понимаю прерывание будет когда на ноге появится сигнал? Помогите разобраться пожалйста
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

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

Сообщение Engineer_Keen »

1essor1 писал(а):Какое прерывание подойдет? INT0, INT1?

Любое, какое угодно, разницы нет.
1essor1 писал(а):я так понимаю прерывание будет когда на ноге появится сигнал?

В данном случае сигнал это:
1) перепад 1-0 или 0-1
2) низкий уровень (0).
Зависит от настройки регистра.
Аватара пользователя
1essor1
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Вс дек 09, 2012 12:14:44

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

Сообщение 1essor1 »

Engineer_Keen писал(а):В данном случае сигнал это:
1) перепад 1-0 или 0-1
2) низкий уровень (0).
Зависит от настройки регистра.


Допустим возьму я INT0 - ему соответсвует 16ая нога (PD2). я настраиваю её вывод, устанавливаю лог единицу на выходе. Затем подключаю кнопку к земле и к ноге. Нажимаем на кнопку - на ноге-0. И происходит прерывание? все верно?
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

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

Сообщение ploop »

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

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

Сообщение BOB51 »

А зачем для банального подсчета импульсов гонять INTn?
Не проще ли подать сигнал на счетный вход таймера1 и просто получать готовый результат?
:roll:
Аватара пользователя
1essor1
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Вс дек 09, 2012 12:14:44

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

Сообщение 1essor1 »

ploop писал(а):И до кучи сгорает контроллер. А теперь подумайте, почему?
Подсказка тут

Пардон, пардон) Действительно, чего это я) Нужно ведь настроить на вход с Pullup, верно? И все заработает?

BOB51 писал(а):А зачем для банального подсчета импульсов гонять INTn?
Не проще ли подать сигнал на счетный вход таймера1 и просто получать готовый результат?
:roll:

Подскажи пожалуйста начинающему, как это дело называется и с чем его едят. Просто тьма тьмушая аббривеатур, а каждая состоит еще из нескольких - просто голова кругом идет :shock:
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

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

Сообщение ploop »

Нужно ведь настроить на вход с Pullup, верно? И все заработает?

Теоретически. На практике словите десяток-другой (а то и сотню) прерываний :)
Надо обработать дребезг контактов кнопки. Или программно, или на схеме, поставив RC-цепочку и триггер Шмитта.

Подскажи пожалуйста начинающему, как это дело называется и с чем его едят.

Таймер можно настроить так, чтобы он считал не импульсы тактового генератора, а импульсы, которые будут на определённой ноге. Сколько импульсов пришло - такое число и будет в таймере. Всё это будет делаться автоматически железом, а контроллер в этот момент может чем-нибудь другим заниматься.
Аватара пользователя
1essor1
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Вс дек 09, 2012 12:14:44

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

Сообщение 1essor1 »

ploop писал(а):Теоретически. На практике словите десяток-другой (а то и сотню) прерываний :)
Надо обработать дребезг контактов кнопки. Или программно, или на схеме, поставив RC-цепочку и триггер Шмитта.

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

Про програмные методы читал, кое-где в примеры пытался вникнуть. А аппаратные? Можно поподробнее? Я был бы безмерно счастлив если б объяснению сопуствовала небольшая схемка какого-нибудь готового решения :))
Antony91
Родился
Сообщения: 19
Зарегистрирован: Пт янв 18, 2013 00:51:00

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

Сообщение Antony91 »

Всем доброго времени суток!
Для начала хочу сказать большое спасибо Коту за метриаллы. Очень помогли с нуля разобраться в ассемблере и микроконтроллерах AVR.
Но, дорогой Кот, столкнулся с проблемой. Собрана светодиодная матрица на МК ATmega8, на одном из портов сидят строки чесерз транзисторные ключи, на другом порту сдвигающий регистр 74HC595 на выходе которого также транзисторные ключи. При выводе появляется засветка светодиодов (очень тусклая засветка) которые должны загореться в следующем столбце. То есть вывожу чтобы загорелся второй светодиод в строке, а очень тускло горит идущий перед ним. В чем может быть проблема?
ASM-код на вывод столбца:
lds Temp1,A+2 (тут данные вида 0b01010101)
sbi ShiftRegPort,SH_CP
out PortD,Temp1
rcall Delay1
out PortD,temp4 (тут как бы 0b00000000 для выключения столбца)
cbi ShiftRegPort,SH_CP
rcall Delay2
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

Самое простое и надежное из аппаратных решений - одновибратор. Схем гугл подскажет навалом!
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

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

Сообщение ploop »

А аппаратные? Можно поподробнее? Я был бы безмерно счастлив если б объяснению сопуствовала небольшая схемка какого-нибудь готового решения

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

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

Сообщение Alexeyslav »

При выводе появляется засветка светодиодов (очень тусклая засветка) которые должны загореться в следующем столбце.

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

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

Сообщение BOB51 »

И чего все так сдвиговые регистры с 8-й мегой любят?
Неужели линий стандартных портов для матрицы 8*8 у той же atmega8 нехватает?
Да и дотошное изучение аппаратных средств МК по даташиту для ассемблериста - основа работы - это не Си, тем более для МК с громадным набором аппаратных модулей и их конфигураций.
Плюс - все имеющиеся листы обнаруженных ошибок, новые редакции даташита (вместе со старыми - хрен знает какого выпуска МК в лапы попал) и рекомендации по применению с сайта производителя периодически скачивать и в рабочий конспектик складывать.
Затем распечаточку оных со своими замечаниями на полочке держать.
:beer:
Antony91
Родился
Сообщения: 19
Зарегистрирован: Пт янв 18, 2013 00:51:00

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

Сообщение Antony91 »

Alexeyslav писал(а):Перед сменой столбца погаси разряды путем заполнения регистра 0-ми или его отключением.
У меня приведенные коды идут последовательно. После Delay1 пробовал clr temp1 и вывод нулевого столбца. Не ушла засветка :-(
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15546
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Так гашение не по столбцам, а по строкам на время смены столбца.
гасить строку
задать новый код в сдвиговом регистре
включить следующую строку

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

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

Сообщение Alexeyslav »

Нет разницы гасить строку или столбцы - главное чтобы на момент смены состояния светодиоды не могли зажечься.
Ответить

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