Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 28.05.2010, 12:56  
E97
Почётный гражданин KAZUS.RU
 
Регистрация: 08.01.2008
Сообщений: 1,143
Сказал спасибо: 379
Сказали Спасибо 430 раз(а) в 274 сообщении(ях)
E97 на пути к лучшему
По умолчанию Ошибка Proteus при отмене прерывания в AVR

Проблема состоит в ошибке Proteus, что вылетает в результате отмены прерывания в теле функции обработчика прерываний.
Если знаете, подскажите пожалуйста как с ней боротся.

.device ATtiny13
.INCLUDE "tn13def.inc"
.DEF temp=r16
.DEF temp1=r17
.DEF CBit=r18
.DEF SendByte=r0
.EQU TXD=4
.EQU RXD=0

.CSEG
.ORG 0
rjmp RESET ;Reset
.ORG $02
rjmp ExtIntReq ;External Interrupt Request
.ORG $06
ijmp ;Timer/Counter0 Compare Match A
.ORG INT_VECTORS_SIZE

RESET:
; инициализация стека
ldi temp,ramend
out SPL,temp

;инициализация порта b
ldi temp,0b00000001
out DDRB,temp
sbi portb,TXD

;установка прерывание по изменению PB0
ldi temp,$01
out PCMSK,temp
ldi temp,$20
out GIMSK,temp

.............................

sei

Func:
rjmp Func

...................


ExtIntReq:
sbic PINB,RXD
reti
ldi r30,low(Delay_Resive)
ldi r31,high(Delay_Resive)
clr SendByte
ldi temp1,$06
out TCCR0B,temp1
ldi temp1,$00
out GIMSK,temp1
reti

......................

Resive_Byte:
......

ldi r30,low(TimerCompareA)
ldi r31,high(TimerCompareA)
ldi temp1,$20
out GIMSK,temp1
reti

..........

Вот сам глюк
Миниатюры:
Нажмите на изображение для увеличения
Название: Error.jpg
Просмотров: 86
Размер:	108.5 Кб
ID:	8338  
Реклама:
E97 вне форума  
Непрочитано 28.05.2010, 17:21  
kittec
Гражданин KAZUS.RU
 
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
kittec на пути к лучшему
По умолчанию Re: Ошибка Proteus при отмене прерывания в AVR

Какой смысл настраивать порт В0 на выход и ждать на нём какихто изменений
kittec вне форума  
Сказали "Спасибо" kittec
E97 (05.06.2010)
Непрочитано 05.06.2010, 01:33  
E97
Почётный гражданин KAZUS.RU
 
Регистрация: 08.01.2008
Сообщений: 1,143
Сказал спасибо: 379
Сказали Спасибо 430 раз(а) в 274 сообщении(ях)
E97 на пути к лучшему
По умолчанию Re: Ошибка Proteus при отмене прерывания в AVR

Сообщение от kittec Посмотреть сообщение
Какой смысл настраивать порт В0 на выход и ждать на нём каких-то изменений
Извиняюсь недосмотрел. В теле RESET перед sei в программе есть
cbi DDRB,RXD .

Зато подсказали мне идею аппаратной реализации. В схеме остается незадействованный вывод порта B. Вот я и подам на него сигнал через разделительный резистор.
А когда не нужно будет выполнять прерывания, сконфигурирую его как выход.
Что позволит обойти программную отмену прерывания, а также сократит код.

Но все-таки как с таким глюком бороться?
E97 вне форума  
Непрочитано 05.06.2010, 02:00  
kittec
Гражданин KAZUS.RU
 
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
kittec на пути к лучшему
По умолчанию Re: Ошибка Proteus при отмене прерывания в AVR

А какой у Вас Proteus? Если проэкт не секретный выложите его.
kittec вне форума  
Непрочитано 06.06.2010, 17:00  
E97
Почётный гражданин KAZUS.RU
 
Регистрация: 08.01.2008
Сообщений: 1,143
Сказал спасибо: 379
Сказали Спасибо 430 раз(а) в 274 сообщении(ях)
E97 на пути к лучшему
По умолчанию Re: Ошибка Proteus при отмене прерывания в AVR

Proteus release 7.5 SP3.
Проект не закончен, но в том что есть виде на принятый байт "7" контролер должен выдать стоку.

Подобное у меня наблюдалось и при остановке прерываний от таймера Т0 в теле прерывания но я писал программу на AlgorithmBilder и думал что это глюк компиляции АВ.
Вложения:
Тип файла: rar semu.rar (28.9 Кб, 50 просмотров)
E97 вне форума  
Непрочитано 06.06.2010, 18:05  
kittec
Гражданин KAZUS.RU
 
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
kittec на пути к лучшему
По умолчанию Re: Ошибка Proteus при отмене прерывания в AVR

У меня Ваш проэкт работает. Предупреждения есть, а ошибки нет. Осцилог. показывает сигнал по каналу А, при нажатии кнопки короткий импульс по каналу B.
kittec вне форума  
Непрочитано 08.06.2010, 12:24  
E97
Почётный гражданин KAZUS.RU
 
Регистрация: 08.01.2008
Сообщений: 1,143
Сказал спасибо: 379
Сказали Спасибо 430 раз(а) в 274 сообщении(ях)
E97 на пути к лучшему
По умолчанию Re: Ошибка Proteus при отмене прерывания в AVR

Ошибка у меня вылетает при передаче символа с терминала на МК. При этом обрабатывается прерывание по смене уровня PB0. В результате протеус отказывается переваривать команду out GIMSK,temp1.
В железе все работает.
E97 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
CRC при чтении ROM-кода от 1-wire устройств в Proteus chapa Proteus 1 11.11.2009 20:26
прерывания usart в avr studio 4.13 zubr_ Микроконтроллеры, АЦП, память и т.д 6 14.10.2009 18:33
Ошибка при компиляции Flowcode 3 проекта alexander70 Микроконтроллеры, АЦП, память и т.д 1 06.10.2009 17:56
[Решено] Proteus внешние прерывания ethers Proteus 7 21.09.2009 20:15


Часовой пояс GMT +4, время: 10:12.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot