реклама на сайте
подробности

 
 
> ATmega 16 и прерывания, переход по прерыванию не в ту степь
mishara777
сообщение Apr 18 2011, 09:49
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 28-09-06
Пользователь №: 20 769



Добрый день! Нужна помощь в поиске ошибки,скорее всего в голове. Программировал до этого 2313. Решил перейти на Мегу 16 и сразу грабли.Вот:
CODE

.device Atmega16
.nolist
.include "C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m16def.inc"
.list
;====== Объявления ===========================================
.def temp =r16
;=======Начало программы========================================

jmp init ;RESET
jmp Impuls1 ;внешнее прерывание от INT0
jmp Impuls2 ;внешнее прерывание от INT1
reti
reti
reti
reti
reti
reti
jmp Display ;таймер/счётчик №0 переполнение
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti

;========= СТЕК =================================================
ldi temp,LOW(RAMEND)
out SPL,temp
ldi temp,HIGH(RAMEND)
out SPH,temp

;===========================================================================
Init:
ser temp ;все выхода PB1-PB7_индикаторы
out DDRB,temp
ldi temp,0b11100111 ; PD3@PD4 вход счета импульсов
out DDRD,temp ; PD0-PD2_номер индикатора

ldi temp,0b00000010 ;частота TCNT0 равна CK/8
out TCCR0,temp

ldi temp,0b00001100 ;частота TCNT1 равна CK/256
out TCCR1B,temp ;сбрасывать TC1 при совпадении
ldi temp,0b10110111
out OCR1AH,temp
ldi temp,0b00011011
out OCR1AL,temp

ldi temp,0b11000011
out GICR,temp
ldi temp,0b00001010 ;прерывание INT1 - низкий уровень
out MCUCR,temp


ldi temp,0b00001001 ;разреш.прерывания по переполнению TC0
out TIMSK,temp
sei
;=================================================
CHK:
ldi temp,0b00000001 ;устанавливаем 0 нулевого разряда
out PortD,temp
mov temp,r0
out PortB,temp
sei
;==========================================================
Start:
rjmp Start

Impuls1:
nop
reti

Impuls2:
nop
reti

Display:
nop
reti

При возникновении прерывания переходит на строчку " jmp init ;RESET". Шаманский бубен и ночные пляски у костра не помогли! Программа AVR Studio.

Сообщение отредактировал IgorKossak - Apr 18 2011, 11:45
Причина редактирования: [codebox] !!!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- mishara777   ATmega 16 и прерывания   Apr 18 2011, 09:49
- - Сергей Борщ   QUOTE (mishara777 @ Apr 18 2011, 12:49) Ш...   Apr 18 2011, 10:06
- - mishara777   Прошу прощения за оформление первого топа,сказывае...   Apr 18 2011, 10:23
|- - Сергей Борщ   QUOTE (mishara777 @ Apr 18 2011, 13:23) И...   Apr 18 2011, 10:37
- - нечитатель   Цитата(mishara777 @ Apr 18 2011, 13:49) Р...   Apr 18 2011, 10:29
- - ae_   Плюс к тому, что установка стека не выполняется, о...   Apr 18 2011, 10:41
- - mishara777   Если я правильно понял , то кусочек программы долж...   Apr 18 2011, 11:12
|- - Палыч   Цитата(mishara777 @ Apr 18 2011, 15:12) К...   Apr 18 2011, 12:24
- - ILYAUL   КодInit: cli ldi temp,LOW(RAMEND) ...   Apr 18 2011, 11:21
- - mishara777   Спасибо за терпение! Сделал все ,как написали....   Apr 18 2011, 11:32
- - mishara777   Уважаемый ,Палыч! Это ЦитатаОбработчика одного...   Apr 18 2011, 13:43
|- - Палыч   Цитата(mishara777 @ Apr 18 2011, 17:43) Э...   Apr 18 2011, 13:52
- - mishara777   Спасибо за совет. Сейчас буду исправлять   Apr 18 2011, 14:02
- - alag57   Цитатас аглицким проблема (учили французскому) Евс...   Apr 18 2011, 14:55
- - ILYAUL   И пишите вместо 0b01010111 (для примера и от балд...   Apr 18 2011, 15:03
- - mishara777   Уважаемые форумчане! Спасибо за оперативную по...   Apr 18 2011, 15:43
- - Павлик   Используй симулятор, сметриш на счетчик стэка, есл...   Apr 26 2011, 04:53


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 12:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01403 секунд с 7
ELECTRONIX ©2004-2016