помогите инициализировать INT1 на астме

Обсуждаем контроллеры компании Atmel.
Ответить
Встал на лапы
Аватара пользователя
Сообщения: 113
Зарегистрирован: Пт апр 04, 2014 09:34:08
Откуда: Санкт-Петербург

Сообщение sergo80zxc »

Не кидайте помидорами я новичек :oops: Помогите с прерываниями, никак не разберусь как инициализировать внешние прерывания
с инт1 атмега8а , на си видел, но я си не изучал, на астме надо, может кто то приведет пример? Хочу пин D3 на кноопку и на минус прикрутить, и нажав ее на порту C1 получить логическую 1. До посинения читал литературу по прерываниям так и не допер :(
Заранее благодарен
глаза боятся, а руки что то не делают))
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

прочтите еще Евстифеева. Справочник по AVR Tiny и Mega. )) Тот же даташит с примерами - только на русском. ) ТАм все просто.

А вообще порядок действий примерно такой: Есть два-три регистра. В одном из них отображаются флаги этих прерываний (событие произошло), а в остальных идет настройка, как будет оно случаться (низкий уровень, спад (переход с 1 в 0), подъем, любое изменение) и собственно разрешение именно этого прерывания. Пишете обработчик, sei - и все.

Сделайте хотя бы какую-то вялую попытку, а уж мы тут наставим на путь истинный.
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 113
Зарегистрирован: Пт апр 04, 2014 09:34:08
Откуда: Санкт-Петербург

Сообщение sergo80zxc »

теорию я раз 10 прочитал)) и про сей и про настройки)) как написать все это правильно и грамотно)
глаза боятся, а руки что то не делают))
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

Прочитайте еще раз, но медленно и вдумчиво. ;) Вам надо научиться учиться самому. А то когда достигнете уровня, что и спросить не у кого будет - то.. Плохо, кароч будет. ))

как написать все это правильно и грамотно)
Так прям берете названия регистров и выставляете флаги в них. ) попытку сделайте!

Или давайте так, что конкретно не ясно/не получается?
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Аватара пользователя
Сообщения: 113
Зарегистрирован: Пт апр 04, 2014 09:34:08
Откуда: Санкт-Петербург

Сообщение sergo80zxc »

я сам пуду помогать) как опыта наберусь обещаю)) только помогите его набрать :))
а по делу ) напишите строки настройки INT1 ) дальше я сам напишу программу и если что выложу ее целиком сюда)
я до этого места дошел)


.include "m8Adef.inc"
.cseg
.org 0
;*********************************************************************

rjmp RESET ; Reset Handler
reti EXT_INT0 ; IRQ0 Handler
rjmp EXT_INT1 ; IRQ1 Handler
reti TIM2_COMP ; Timer2 Compare Handler
reti TIM2_OVF ; Timer2 Overflow Handler
reti TIM1_CAPT ; Timer1 Capture Handler
reti TIM1_COMPA ; Timer1 CompareA Handler
reti TIM1_COMPB ; Timer1 CompareB Handler
reti TIM1_OVF ; Timer1 Overflow Handler
reti TIM0_OVF ; Timer0 Overflow Handler
reti SPI_STC ; SPI Transfer Complete Handler
reti USART_RXC ; USART RX Complete Handler
reti USART_UDRE ; UDR Empty Handler
reti USART_TXC ; USART TX Complete Handler
reti ADC ; ADC Conversion Complete Handler
reti EE_RDY ; EEPROM Ready Handler
reti ANA_COMP ; Analog Comparator Handler
reti TWSI ; Two-wire Serial Interface Handler
reti SPM_RDY ; Store Program Memory Ready Handler

;*************************************************************************

ldi temp,low(RAMEND) ;загрузка указателя стека
out SPL,temp
ldi temp,high(RAMEND) ;загрузка указателя стека
out SPH,temp
sei ;разрешаем прерывания
;*********************************************************************
глаза боятся, а руки что то не делают))
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15751
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Прерывания для АВРок да под ассемблером лишь на первый взгляд простая штука (желательно токмо с одного на программу начинать).
А то действительно будет астма... :)
И че всех начинающих на 8-ю мегу тянет?
Там же начальной конфигурации... :facepalm:
Для avrstudio4.19 мож и набросаю...а насчет правильности и грамотности - правильно все что устойчиво работает, независимо то всего остального. Желательно конешно чтоб покрасивше и после полного забвения легко вспоминалось - но то со временем прийдет.
С Z80 под ассемблером дело имели?
МММ...
Общая шапка-заготовка под 8-ю:
shaps_m8_8aprj.asm
(7.41 КБ) 355 скачиваний
а там уже можно и вставлять чего пожелаем...
Да и разрешение прерываний только в самом конце обшего для данной схемы участка начальной инициализации ВСЕЙ аппаратной начинки МК(в соответствии с заданной задачей).
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 113
Зарегистрирован: Пт апр 04, 2014 09:34:08
Откуда: Санкт-Петербург

Сообщение sergo80zxc »

Вов51) Я лузер по цифровой технике) с аналоговой вот перебираюсь) сам автоэлектриком работаю) время есть на работе, матчасть avr читаю) домой прихожу программатор, самодельная отладочная плата есть, расыпухи вагон) испытываю что на работе понял и вычитал) осцилограф вот потихоньку выбираю, на работе до 100 кгц не катит)
8 атмегу выбрал примеров по ней больше) на астме изучаю, потому что понять хочу лучше, а си планирую начать изучать как на астме аврки как семечки начну щелкать тогда)
так что прошу помощи и содействия))
на студии как рас 4 соплю)
глаза боятся, а руки что то не делают))
Друг Кота
Аватара пользователя
Сообщения: 15751
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

именно 4.19 или более ранняя?
Да и вот "шпоргалочка" под асм...
Вложения
шпора AVR.pdf
(60.25 КБ) 195 скачиваний
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

Вам прежде, чем разрешить прерывания (sei) нужно их настроить. Иначе ничего работать не будет. Вот Вы написали в таблице векторов метку на обработчик Вашего прерывания, а саму метку нигде не поставили. Программа Должна выглядеть примерно так:

Код: Выделить всё

.cseg
;Таблица векторов
Reset:       ; метка сброса. То место, откуда у вас стартует программа
;Инициализируете стек и остальное, что хотите
;Настраиваете прерывание
sei;      разрешаете его
; между прерываниями программа ОБЯЗАТЕЛЬНО должна что-то делать.
; пусть это будет пустой цикл
main: rjmp main
; Поскольку на этом месте основной код закончился и программа в это место никак уже не попадет (если только специально не прыгнуть)
; то здесь разместим свой обработчик
EXT_INT1:
push r16; сохраняем используемые регистры (этих пушей может быть много)
in r16, SREG; сохраням флаги
push r16; и запихиваем их в стек
; делаем что хотим
pop r16; извлекаем из стека флаги в r16 (обратный порядок при извлечении из стека)
out SREG, r16;   отправляем их обратно в регистр флагов
pop r16;    восстанавливаем регистр r16
reti; возвращаемся из прерывания. 
Вы, кстати, пропустили метку reset

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

А теперь у меня вопрос к Вам: какие регистры отвечают за int1?
Последний раз редактировалось ИС-пытатель Чт апр 17, 2014 23:13:16, всего редактировалось 3 раза.
Встал на лапы
Аватара пользователя
Сообщения: 113
Зарегистрирован: Пт апр 04, 2014 09:34:08
Откуда: Санкт-Петербург

Сообщение sergo80zxc »

на этой AVR Studio 4.19 (08/2011)
глаза боятся, а руки что то не делают))
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

Осцилл, кстати, лучше какой-нить б/ушный на ebay закажите. я себе tecktronix там за 3500 (+3000 доставка из Америки обошлась) купил, с характеристиками как у нового нашего, который стоит в инете 35к. А в магазине и подавно все 45-50к. Так зато Tecktronix! Не маде ин Рашн-парашн
Встал на лапы
Аватара пользователя
Сообщения: 113
Зарегистрирован: Пт апр 04, 2014 09:34:08
Откуда: Санкт-Петербург

Сообщение sergo80zxc »

испытатель вам

SREG бит I - разрешено или запрещено, все прерыван
MCUCR- регистр управления ( настройка условия прерывания, фронт, состояние и тд)
GICR общий регистр управления прерываниями (Бит 7 - INT1 в 1 разрешено, Бит 6 - INT0 в 1 разрешено)
глаза боятся, а руки что то не делают))
Друг Кота
Аватара пользователя
Сообщения: 15751
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Тогды вот заготовка проекта - распакуйте и далее измывайтесь. Единственно при компиляции запросит переподтвердить размещение файлов ассемблера в каталоге IDE (у меня студия на диске Е, а в большинстве случаев - на С) просто тыкайте "подтвердить" ничего более не меняя - матюкнется только первый раз, далее запоминает где чего находится и уже работает спокойно.
Вложения
testus.rar
(8.14 КБ) 173 скачивания
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

Таааак! )) Забыли регистр флагов. Он нам тоже понадобится. )) Теперь давайте смотреть на это хозяйство подробнее. В MCUCR - нам надо установить биты, ответственные за тип срабатывания нужного нам прерывания. Какие биты? Устанавливайте!
BOB51 писал(а):Тогды вот заготовка проекта - распакуйте и далее измывайтесь.
Ну, что Вы не даете человеку самому подумать! ))
Последний раз редактировалось ИС-пытатель Чт апр 17, 2014 23:24:56, всего редактировалось 2 раза.
Встал на лапы
Аватара пользователя
Сообщения: 113
Зарегистрирован: Пт апр 04, 2014 09:34:08
Откуда: Санкт-Петербург

Сообщение sergo80zxc »

ИС-пытатель
да не хотелось бы выкинуть 6500 и ведро болтов через мес получить вместо осцила) вам повезло)
глаза боятся, а руки что то не делают))
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

Мне его так упаковали, что я потом полдня из комнаты выметал шарики пластика и куски пузырчатой пленки. ))))) Коробка была раза в 4 больше прибора. )) И получил я его через 2 недели. :shock:
Последний раз редактировалось ИС-пытатель Чт апр 17, 2014 23:29:52, всего редактировалось 1 раз.
Друг Кота
Аватара пользователя
Сообщения: 15751
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

ИС-пытатель писал(а):
Ну, что Вы не даете человеку самому подумать! ))
Вот пусть над программой и думает, а не над настройками среды IDEи компилятора с дебаггером 8)
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

Аааа... )) Я думал, вы ему "рыбу" кинули! )) Коты очень любят рыбу! )))

Так, sergo, я спать. Вам задание задать тип прерывания Int1 в регистре MCUCR, разрешить его в GICR, сбросить флаг (на всякий случай) в GIFR, и общее разрешение прерываний. С утра проверю и расскажу почему именно в такой последовательности. Все, споки-ноки!
Друг Кота
Аватара пользователя
Сообщения: 15751
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Дак то по сути и есть "рыба" - настроенный файл проекта для IDE и шапка-заголовок под АТmega8а (аналогия микрочиповского заголовка). А далее уж вставляй чего пожелается. Тонкости же настроек проекта человек и сам попозже освоит. Как и хелп для дебаггера по данному МК - когда отладкой займется тогда и про ограничения прочитает, а сейчас - даташит и Ефстефеева в лапы и за мозготрепку (да схемку бы для начала себе соорудил - ассемблер "отвлеченного" от железа мудрствования не очень-то любит).
:beer:
Встал на лапы
Аватара пользователя
Сообщения: 113
Зарегистрирован: Пт апр 04, 2014 09:34:08
Откуда: Санкт-Петербург

Сообщение sergo80zxc »

вов51
железо я люблю) схема давно около компа блестит пайкой)
глаза боятся, а руки что то не делают))
Ответить

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