прерывание в программе ATMEga8

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
LITOTA
Родился
Сообщения: 2
Зарегистрирован: Вт май 16, 2017 07:03:04

прерывание в программе ATMEga8

Сообщение LITOTA »

Здравствуйте, нашла на этом форуме вот такую тему http://radiokot.ru/forum/viewtopic.php? ... view=print , так как сама столкнулась с этой задачей из методички и такой же проблемой..
Помогите пожалуйста, вопрос один ..
Изображение
в цикле main как написать такую команду, чтобы при нажатии "3" в порту D цикл шел дальше на прерывание, а не повторялся??
Помогите пожалуйста, никак не пойму :(
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: прерывание в программе ATMEga8

Сообщение pyzhman »

Вместо nop, на который указывает стрелка, написать sbic PIND,3.
Docendo discimus
Реклама
LITOTA
Родился
Сообщения: 2
Зарегистрирован: Вт май 16, 2017 07:03:04

Re: прерывание в программе ATMEga8

Сообщение LITOTA »

[uquote="pyzhman",url="/forum/viewtopic.php?p=3106747#p3106747"]Вместо nop, на который указывает стрелка, написать sbic PIND,3.[/uquote]
Тогда работает просто цикл, а на прерывание не уходит.. даже при нажатии "3"
Надо както устанлвить связь между пином и регистром ?
akl
Друг Кота
Сообщения: 4445
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: прерывание в программе ATMEga8

Сообщение akl »

Можно до опупения жамкать PIND,3 (INT1) при разрешенном прерывании INT0
Спойлер

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

.include "m8def.inc"

.cseg

.org 0x000
  rjmp start
.org 0x003
rjmp prer
start:
ldi  r16,low(RAMEND)
out SPL,r16
ldi  r19,high(RAMEND)
out SPH,r16
ldi r20,0b111100
out DDRB,r20
ldi r20,0b000000
out DDRD,r20
ldi r21,0b00001111
out mcucr,r21
	LDI	R21,1<<INT1
;ldi r21,0b01000000
	out gimsk,r21
	OUT	GIFR,R21
ldi r20,0b0
sei
main:
	RJMP	MAIN

;sbis  pind,3
;rjmp prer
prer:
sbis pind,3
;
;
;
Реклама
Эиком - электронные компоненты и радиодетали
Ответить

Вернуться в «Разные вопросы по МК»