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

Обсуждаем контроллеры компании Atmel.
Ответить
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

Meteor
ну вот хоть один отклинулся :)
Meteor он мне уже целую страницу пытается впарить, что в исходном состоянии на входах PB4, PB3, PB1 у него 000, хелп плиз, у меняу ща моск рванет. :))) :))) :)))
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

GP1 писал(а):...он мне уже целую страницу пытается впарить, что.... хелп плиз, у меняу ща моск рванет....
Приветствую, GP1. Прочитал - сочувствую... Есть предложение дать индиидуму покумекать. А сами в енто время :beer: отдохнем. Всякая мысля - она как важная бумажка, должна вылежаться.
То Denikmar, GP1 более чем прав. Прочитайте его посты внимательнее
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Контактная информация:
Реклама
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

Meteor
:beer:
хоть один человек меня понимает :)))
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пн ноя 09, 2009 18:14:10

Сообщение Denikmar »

Meteor писал(а): На Вашей схеме, к РВ0 и РВ2 прицеплены темнодиоды, которые благополучно не светят при исходных настройках.
;PORTB=0b00011111
;DDRB =0b00000101
;PINB = 0b00000101 (Это текущее состояние портов или я чего то не догоняю)

Я же не говорил что диоды светятся при исходных настройках, ведь так судя по схеме на анод подается +3В, а на катод при начальных условиях идет логическая единица ~ +3В, ясен пень диод не загориться.
И когда надо чтобы диод загорелся нужно чтобы на ноге контроллера был логический ноль т.е. GND.
(Эмм по моему после инициализации портов регистр будет PINB (0b000101) где единички говорят что на выходе логическая 1 ~ 3 В )
Где моя не правда?

Вопрос был про цикл, GP1 натолкнул меня на решение за что ему спасибо.
Вся программа успешно работает в AVR Studio.
Последний раз редактировалось Denikmar Чт ноя 26, 2009 22:47:18, всего редактировалось 1 раз.
Реклама
Эиком - электронные компоненты и радиодетали
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

симулятор - не есть железо :wink:

я говорил про ВХОДЫ а не выходы.
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

Denikmar писал(а):...PINB = 0b00000101 (Это текущее состояние портов или я чего то не догоняю)...
Вся программа успешно работает в AVR Studio.
"Это программа не догоняет. И отображает пины только при 1 записаной в разряд DDRх
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Контактная информация:
Реклама
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пн ноя 09, 2009 18:14:10

Сообщение Denikmar »

Meteor писал(а): "Это программа не догоняет. И отображает пины только при 1 записаной в разряд DDRх
Это логично, т.к. это выходы.
Как в железе сделаю напишу о результатах
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

Denikmar писал(а):Это логично, т.к. это выходы.
Если в программе входы инициированы с подтяжкой резисторами, то значит и надо и отображать их соответственно. А симулировать то что зашито в выход не имеет смысла потому что нет железа. Поработаете с МК и логикой побольше - сами придете к этому!
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Контактная информация:
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

все клавиатуры такие. без антидребезга нельзя.
:)
без дребезга контактов - можно, были раньше такие на герконах, можно сделать на оптронах
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18682
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

GP1 писал(а):без дребезга контактов - можно, были раньше такие на герконах, можно сделать на оптронах
герконы тоже дребезжат. но были клавы на датчиках холла, точнее, на магнитоуправляемых микросхемах - вот те действительно не дребезжали
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

а как будет код на асме против дребезга кнопки?
Не умеешь - не берись, но не взявшись не научишься...
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пн ноя 09, 2009 18:14:10

Сообщение Denikmar »

Meteor писал(а): Если в программе входы инициированы с подтяжкой резисторами, то значит и надо и отображать их соответственно.
Я не понимаю в чем спор разве по сочетанию регистра portX ddrX нельзя сказать где вход(с подтяжкой/без), а где выход (с нулем или единицей)

З.Ы. Не надо кидать всякиие тяжелые предметы, тапки веники и прочее, я только учусь, а что должно быть в реале в pinX если у нас вход с подтяжкой и копка выключена (должна стоять логическая 1) Дошло =) всего за 1 страницу спасибо GP1 и Meteor :beer:
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

Ну слава Богу!
мои старания не пропали даром. :)
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

Denikmar писал(а):...Дошло =) всего за 1 страницу спасибо GP1...:beer:
Хотите отделаться по мелкому?:o Сначала "навалерьянили" GP1 так, что форум его чуть не лишился.:evil: А теперь "спасибо" кружка пива на троих? :shock: Проставляйтесь как следует :wink:
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 119
Зарегистрирован: Ср ноя 07, 2007 15:17:20

Сообщение Dexa »

Нужна помощь по таймеру. Например, делаю задержку на 1 секунду. Настроил предделитель, выбрал прерывание по переполнению, и он автоматически запустился и все? Надо ли записывать какие нибудь константы? По идее я же не по компарату делаю, а по переполнению самого таймера? Вот код
Time:
ldi Temp,0b10000000; выбираем прерывание по переполнению 1 таймера
out TIMSK, Temp
ldi Temp,0b00000100;предделитель на 256 при частоте кварца 4 МГц он переполнится через 4,2 сек
out TCCR1B,Temp
Теперь таймер запущен, как только он переполнится сработает прерывание и мы попадаем в обработчик прерывания в котором первым же делом обнуляем таймер. Что-то я запутался, мне просто в определенном месте нужна задержка пару секунд. Помогите пожалуйста.
......aлкоголь расширяет сосуды, курение их сужает, а сдают почему-то нервы......
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 119
Зарегистрирован: Ср ноя 07, 2007 15:17:20

Сообщение Dexa »

И еще при использовании внешнего прерыания от INT0 антидребезг же не нужен?
......aлкоголь расширяет сосуды, курение их сужает, а сдают почему-то нервы......
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб

Сообщение AI_Disable »

Dexa писал(а):Нужна помощь по таймеру. Например, делаю задержку на 1 секунду. Настроил предделитель, выбрал прерывание по переполнению, и он автоматически запустился и все?
Да. Выбор предделителя запускает таймер, "режим прерывания по переполнению" это normal, так что в TCCR ничего не делаем. Остаётся разрешить прерывания по переполнению (в TIMSK) и глобально (sei).
Dexa писал(а):...предделитель на 256 при частоте кварца 4 МГц он переполнится через 4,2 сек
Если таймер 16-битный, то да.
Dexa писал(а): ...мы попадаем в обработчик прерывания в котором первым же делом обнуляем таймер.
Не надо, он сам обнулится после переполнения.
Dexa писал(а):И еще при использовании внешнего прерыания от INT0 антидребезг же не нужен?
Если программа в обработчике прерывания выполняется очень быстро, то антидребезг желательно добавить.
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 119
Зарегистрирован: Ср ноя 07, 2007 15:17:20

Сообщение Dexa »

Спасибо, подскажите код программы задержки на 2 секунды без применения таймера
......aлкоголь расширяет сосуды, курение их сужает, а сдают почему-то нервы......
Контактная информация:
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Во - http://radiokot.ru/start/mcu_fpga/avr/07/

Там как раз про задержки на циклах.

-----------------------------------------------------------

Люди! Я в шоке! :shock: Пишу под ATmega48 - не могу записать в OCR0A, OCR0B, OCR2A! Не работает ни out (что понятно), ни sts (что уже ни в какие ворота не лезет).

Код такой:

ldi t,128
sts OCR0B,t
sts OCR0A,t
sts OCR2A,t

НЕ РАБОТАЕТ!

Я схожу с ума, или глючит реальность? :shock:
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 119
Зарегистрирован: Ср ноя 07, 2007 15:17:20

Сообщение Dexa »

там не сказано почему в РОН загружаем числа 0 0 10 и сколько времени таким образом получаем. И как это рассчитать.
......aлкоголь расширяет сосуды, курение их сужает, а сдают почему-то нервы......
Контактная информация:
Ответить

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