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

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

Сообщение GP1 »

Meteor
ну вот хоть один отклинулся :)
Meteor он мне уже целую страницу пытается впарить, что в исходном состоянии на входах PB4, PB3, PB1 у него 000, хелп плиз, у меняу ща моск рванет. :))) :))) :)))
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
Meteor
Друг Кота
Сообщения: 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:
хоть один человек меня понимает :)))
Чем дальше, тем больше становлюсь занудой...
Изображение
Denikmar
Первый раз сказал Мяу!
Сообщения: 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:

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

Сообщение Meteor »

Denikmar писал(а):...PINB = 0b00000101 (Это текущее состояние портов или я чего то не догоняю)...
Вся программа успешно работает в AVR Studio.

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

Сообщение Denikmar »

Meteor писал(а):"Это программа не догоняет. И отображает пины только при 1 записаной в разряд DDRх


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

Сообщение Meteor »

Denikmar писал(а):Это логично, т.к. это выходы.

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

Сообщение GP1 »

все клавиатуры такие. без антидребезга нельзя.

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

Сообщение ARV »

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

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

Сообщение Arlleex »

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

Сообщение Denikmar »

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


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

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

Сообщение GP1 »

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

Сообщение Meteor »

Denikmar писал(а):...Дошло =) всего за 1 страницу спасибо GP1...:beer:

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

Сообщение Dexa »

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

Сообщение AI_Disable »

Dexa писал(а):Нужна помощь по таймеру. Например, делаю задержку на 1 секунду. Настроил предделитель, выбрал прерывание по переполнению, и он автоматически запустился и все?

Да. Выбор предделителя запускает таймер, "режим прерывания по переполнению" это normal, так что в TCCR ничего не делаем. Остаётся разрешить прерывания по переполнению (в TIMSK) и глобально (sei).
Dexa писал(а):...предделитель на 256 при частоте кварца 4 МГц он переполнится через 4,2 сек

Если таймер 16-битный, то да.
Dexa писал(а):...мы попадаем в обработчик прерывания в котором первым же делом обнуляем таймер.

Не надо, он сам обнулится после переполнения.
Dexa писал(а):И еще при использовании внешнего прерыания от INT0 антидребезг же не нужен?

Если программа в обработчике прерывания выполняется очень быстро, то антидребезг желательно добавить.
Аватара пользователя
Dexa
Встал на лапы
Сообщения: 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:
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
Dexa
Встал на лапы
Сообщения: 119
Зарегистрирован: Ср ноя 07, 2007 15:17:20
Контактная информация:

Сообщение Dexa »

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

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