Страница 23 из 400
Добавлено: Чт ноя 26, 2009 20:37:34
GP1
Добавлено: Чт ноя 26, 2009 20:48:31
Meteor
GP1 писал(а):...он мне уже целую страницу пытается впарить, что.... хелп плиз, у меняу ща моск рванет....
Приветствую,
GP1. Прочитал - сочувствую... Есть предложение дать индиидуму покумекать. А сами в енто время

отдохнем. Всякая мысля - она как важная бумажка, должна вылежаться.
То
Denikmar, GP1 более чем прав. Прочитайте его посты внимательнее
Добавлено: Чт ноя 26, 2009 21:24:07
GP1
Meteor
хоть один человек меня понимает

Добавлено: Чт ноя 26, 2009 22:39:12
Denikmar
Meteor писал(а): На Вашей схеме, к РВ0 и РВ2 прицеплены темнодиоды, которые благополучно не светят при исходных настройках.
;PORTB=0b00011111
;DDRB =0b00000101
;PINB = 0b00000101 (Это текущее состояние портов или я чего то не догоняю)
Я же не говорил что диоды светятся при исходных настройках, ведь так судя по схеме на анод подается +3В, а на катод при начальных условиях идет логическая единица ~ +3В, ясен пень диод не загориться.
И когда надо чтобы диод загорелся нужно чтобы на ноге контроллера был логический ноль т.е. GND.
(Эмм по моему после инициализации портов регистр будет PINB (0b000101) где единички говорят что на выходе логическая 1 ~ 3 В )
Где моя не правда?
Вопрос был про цикл, GP1 натолкнул меня на решение за что ему спасибо.
Вся программа успешно работает в AVR Studio.
Добавлено: Чт ноя 26, 2009 22:45:57
GP1
симулятор - не есть железо
я говорил про
ВХОДЫ а не выходы.
Добавлено: Чт ноя 26, 2009 23:04:34
Meteor
Denikmar писал(а):...PINB = 0b00000101 (Это текущее состояние портов или я чего то не догоняю)...
Вся программа успешно работает в AVR Studio.
"Это программа не догоняет. И отображает пины только при 1 записаной в разряд DDRх
Добавлено: Чт ноя 26, 2009 23:21:32
Denikmar
Meteor писал(а):
"Это программа не догоняет. И отображает пины только при 1 записаной в разряд DDRх
Это логично, т.к. это выходы.
Как в железе сделаю напишу о результатах
Добавлено: Пт ноя 27, 2009 07:07:16
Meteor
Denikmar писал(а):Это логично, т.к. это выходы.
Если в программе входы инициированы с подтяжкой резисторами, то значит и надо и отображать их соответственно. А симулировать то что зашито в выход не имеет смысла потому что нет железа. Поработаете с МК и логикой побольше - сами придете к этому!
Добавлено: Пт ноя 27, 2009 08:44:09
GP1
все клавиатуры такие. без антидребезга нельзя.
без дребезга контактов - можно, были раньше такие на герконах, можно сделать на оптронах
Добавлено: Пт ноя 27, 2009 08:48:13
ARV
GP1 писал(а):без дребезга контактов - можно, были раньше такие на герконах, можно сделать на оптронах
герконы тоже дребезжат. но были клавы на датчиках холла, точнее, на магнитоуправляемых микросхемах - вот те действительно не дребезжали
Добавлено: Пт ноя 27, 2009 10:11:53
Arlleex
а как будет код на асме против дребезга кнопки?
Добавлено: Пт ноя 27, 2009 10:56:48
Denikmar
Meteor писал(а):
Если в программе входы инициированы с подтяжкой резисторами, то значит и надо и отображать их соответственно.
Я не понимаю в чем спор разве по сочетанию регистра portX ddrX нельзя сказать где вход(с подтяжкой/без), а где выход (с нулем или единицей)
З.Ы. Не надо кидать всякиие тяжелые предметы, тапки веники и прочее, я только учусь, а что должно быть в реале в pinX если у нас вход с подтяжкой и копка выключена (должна стоять логическая 1) Дошло =) всего за 1 страницу спасибо GP1 и Meteor

Добавлено: Пт ноя 27, 2009 16:17:52
GP1
Ну слава Богу!
мои старания не пропали даром.

Добавлено: Пт ноя 27, 2009 16:50:20
Meteor
Denikmar писал(а):...Дошло =) всего за 1 страницу спасибо GP1...

Хотите отделаться по мелкому?:o Сначала "навалерьянили" GP1 так, что форум его чуть не лишился.

А теперь "спасибо" кружка пива на троих?

Проставляйтесь как следует

Добавлено: Вс дек 06, 2009 13:51:29
Dexa
Нужна помощь по таймеру. Например, делаю задержку на 1 секунду. Настроил предделитель, выбрал прерывание по переполнению, и он автоматически запустился и все? Надо ли записывать какие нибудь константы? По идее я же не по компарату делаю, а по переполнению самого таймера? Вот код
Time:
ldi Temp,0b10000000; выбираем прерывание по переполнению 1 таймера
out TIMSK, Temp
ldi Temp,0b00000100;предделитель на 256 при частоте кварца 4 МГц он переполнится через 4,2 сек
out TCCR1B,Temp
Теперь таймер запущен, как только он переполнится сработает прерывание и мы попадаем в обработчик прерывания в котором первым же делом обнуляем таймер. Что-то я запутался, мне просто в определенном месте нужна задержка пару секунд. Помогите пожалуйста.
Добавлено: Вс дек 06, 2009 14:22:05
Dexa
И еще при использовании внешнего прерыания от INT0 антидребезг же не нужен?
Добавлено: Вс дек 06, 2009 14:34:40
AI_Disable
Dexa писал(а):Нужна помощь по таймеру. Например, делаю задержку на 1 секунду. Настроил предделитель, выбрал прерывание по переполнению, и он автоматически запустился и все?
Да. Выбор предделителя запускает таймер, "режим прерывания по переполнению" это normal, так что в TCCR ничего не делаем. Остаётся разрешить прерывания по переполнению (в TIMSK) и глобально (sei).
Dexa писал(а):...предделитель на 256 при частоте кварца 4 МГц он переполнится через 4,2 сек
Если таймер 16-битный, то да.
Dexa писал(а):
...мы попадаем в обработчик прерывания в котором первым же делом обнуляем таймер.
Не надо, он сам обнулится после переполнения.
Dexa писал(а):И еще при использовании внешнего прерыания от INT0 антидребезг же не нужен?
Если программа в обработчике прерывания выполняется очень быстро, то антидребезг желательно добавить.
Добавлено: Вс дек 06, 2009 15:09:48
Dexa
Спасибо, подскажите код программы задержки на 2 секунды без применения таймера
Добавлено: Вс дек 06, 2009 15:39:08
YS
Во -
http://radiokot.ru/start/mcu_fpga/avr/07/
Там как раз про задержки на циклах.
-----------------------------------------------------------
Люди! Я в шоке!

Пишу под ATmega48 - не могу записать в OCR0A, OCR0B, OCR2A! Не работает ни out (что понятно), ни sts (что уже ни в какие ворота не лезет).
Код такой:
ldi t,128
sts OCR0B,t
sts OCR0A,t
sts OCR2A,t
НЕ РАБОТАЕТ!
Я схожу с ума, или глючит реальность?

Добавлено: Вс дек 06, 2009 15:57:18
Dexa
там не сказано почему в РОН загружаем числа 0 0 10 и сколько времени таким образом получаем. И как это рассчитать.