0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 206
|
|
1 | |
Не срабатывает внешнее прерывание16.03.2013, 18:25. Показов 15829. Ответов 60
Метки нет (Все метки)
Код
.divice atmega8 .nolist .include "m8def.yms" .list ;===================== .def temp= r16 .def Mark240= r17 .def Counter= r18 ;===================== ; Начало программы rjmp Init ; Первая выполняемая команда rjmp EXT_INT0 ; IRQ0 Homdler ;===================== EXT_INT0: sbi PortB,1 ldi temp,0b00000010; Включаем таймер out TCCR0,temp; Частота T/C0 равна CK/??? rcall Timer1 reti ;===================== ;Подпрограмы Timer1: in temp, TCNT0 cpi temp, 250 brlo Timer1 reti; ;===================== Init: ldi temp,0b00000011; 1 и 2 пины порта В выходы, остальные входы out DDRB, temp; ldi temp,0b00000000; out PortB, temp ; Все выводы пота В выкл. ldi temp,01000000; Разрешаем внешние прерывания out GICR, temp ldi temp,00000001; При любом изменении сигнала на выводе INT0 out MCUCR, temp ;===================== Start: ldi r16,high(ROMEND); Main program stort out SPH,r16 ; Set Stack Pointer to top of ROM ldi r16,low(ROMEND) out SPL,r16 sei ; Enable interrupts sbi PortB,0 ; включаем СИД sei; ldi temp,0b00000001; Включаем таймер out TCCR0,temp; Частота T/C0 равна CK/??? rcall Timer1 cbi PortB,0 ; выключаем СИД ldi temp,0b00000001; Включаем таймер sei; out TCCR0,temp; Частота T/C0 равна CK/??? rcall Timer1 sbi PortB,0 ; включаем СИД sei; ldi temp,0b00000001; Включаем таймер out TCCR0,temp; Частота T/C0 равна CK/??? rcall Timer1 rjmp Start ; возвращаемся к метке START
0
|
16.03.2013, 18:25 | |
Ответы с готовыми решениями:
60
Внешнее прерывание внешнее прерывание на tiny15 Внешнее прерывание на ATmega328p Внешнее прерывание INT0. ATmega8 Внешнее прерывание ATmega2560 в ASM |
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 206
|
|
18.03.2013, 22:57 | 41 |
0
|
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
|
|
18.03.2013, 23:00 | 42 |
ну я же написал вам - почему. в чём проблема-то?
0
|
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 206
|
|
18.03.2013, 23:01 | 43 |
Сообщение от Johmmy0007
0
|
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
|
|
18.03.2013, 23:03 | 44 |
как именно исправили?
0
|
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 206
|
|
18.03.2013, 23:04 | 45 |
Сообщение от Johmmy0007
ldi temp,0b11111111 ; 1 и 2 пины порта В выходы, остальные входы out DDRB, temp; ldi temp,0b00000000 ; Все выводы пота В выкл. out PortB, temp ;
0
|
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
|
|
18.03.2013, 23:05 | 46 |
схему с протеуса дайте
0
|
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 206
|
|
18.03.2013, 23:09 | 47 |
Сообщение от Johmmy0007
0
|
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
|
|
18.03.2013, 23:11 | 48 |
не так сказал - в виде рисунка схему из протеуса выложите здесь - у меня протеуса нет
0
|
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 206
|
|
18.03.2013, 23:15 | 49 |
Сообщение от Johmmy0007
0
|
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
|
|
18.03.2013, 23:19 | 50 |
>>Что-то мне подсказывает, что протеус врет.
чёт правда, странно... а если в порт B напрямую 255 вывести? ldi temp,255 out PortB, temp ;
0
|
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 206
|
|
18.03.2013, 23:27 | 51 |
Сообщение от Johmmy0007
0
|
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 206
|
|
18.03.2013, 23:28 | 52 |
Сообщение от Johmmy0007
0
|
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 206
|
|
18.03.2013, 23:30 | 53 |
[quote="tostid_kriim"][quote="Johmmy0007"]>>Что-то мне подсказывает, что протеус врет.
0-ой имгает, остальные горят.
0
|
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
|
|
18.03.2013, 23:33 | 54 |
нулевой мигает, потому что он отключается через cbi
значит ножки целые наверно врёт
0
|
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 206
|
|
18.03.2013, 23:35 | 55 |
Сообщение от Johmmy0007
0
|
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
|
|
18.03.2013, 23:39 | 56 |
>>но мне кажется, что с протеусом всё в порядке
ну тогда мк бракованный попался
0
|
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 206
|
|
18.03.2013, 23:45 | 57 |
Сообщение от Johmmy0007
0
|
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 206
|
|
18.03.2013, 23:46 | 58 |
Сообщение от Johmmy0007
0
|
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 206
|
|
18.03.2013, 23:48 | 59 |
Перед стратом поставил это:
ldi temp,0b11111111 ; 1 и 2 пины порта В выходы, остальные входы out DDRB, temp; И теперь при нажатии на кнопку загораются оставшиися 2 светодиода.
0
|
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 206
|
|
18.03.2013, 23:49 | 60 |
Перед стратом поставил это:
ldi temp,0b11111111 ; 1 и 2 пины порта В выходы, остальные входы out DDRB, temp; И теперь при нажатии на кнопку загораются оставшиися 2 светодиода. Херня какая-то.
0
|
18.03.2013, 23:49 | |
18.03.2013, 23:49 | |
Помогаю со студенческими работами здесь
60
Внешнее прерывание Mega16 - [РЕШЕНО] внешнее прерывание INT0 ATtiny2313 Использую внешнее прерывание, где глюк? Внешнее прерывание вызывается только 1 раз Не работает внешнее прерывание в ATMega8 (CodeVisionAVR 3.10) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |