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

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

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

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

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

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

Proteus, KiCAD и другие ECAD Разработчик так или иначе сталкивается с системами автоматизированного проектирования. Данный раздел - по САПР.

 
Опции темы
Непрочитано 03.01.2007, 15:12  
nvhleb
Прохожий
 
Регистрация: 03.01.2007
Сообщений: 7
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
nvhleb на пути к лучшему
По умолчанию ATmega8: симуляция прерываний в ISIS (Proteus)

Может кто-нибудь сталкивался: есть тестовая программка написанная на C (IAR) для ATmega8, которая включает прерывание INT0, генерирует его программно и обрабатывает. В AVR Studio симуляция проходит успешно: ручное изменения значения PIND PD2 приводит к прерыванию, также нормально работает программная генерация прерывания.
При симуляции в Proteus ни один из вариантов не работает (даже не становится на бряке в обработчике прерывания). Все настройки контроллера установлены по дефолту, копание в них ни к чему не привело. В чем может быть проблема?

Версия Proteus 6.9 SP5 от kazus.ru.

Исходный код:

#include ‹ioavr.h›
#include ‹inavr.h›

#include ‹avr_macros.h›


int main()
{
int a;

CLEARBIT(DDRD, PD2); // INT0 as input
MCUCR = 0x01; // INT0 at any change of signal level
SETBIT(GICR, INT0); // INT0 enabled
SETBIT(SREG, 7); // interrupts are enabled

__enable_interrupt();

SETBIT(DDRD, PD7); // PD7 as output
CLEARBIT(PORTD, PD7);
if (!TESTBIT(PORTD, PD7))
SETBIT(PORTD, PD7);

while(true) {
a++;
if (a == 0) {
SETBIT(DDRD, PD2); // PD2 (INT0) as output
SETBIT(PORTD, PD2);
CLEARBIT(PORTD, PD2);
CLEARBIT(DDRD, PD2); // PD2 (INT0) as input
}
}

return 0;
}

#pragma vector = INT0_vect
__interrupt void Int0(void)
{
CLEARBIT(GIFR, INTF0);
PORTD ^= (0x01 ‹‹ PD7);
}
nvhleb вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Симуляция динамической индикации в proteus niksan321 Микроконтроллеры, АЦП, память и т.д 8 09.12.2010 22:43
Симуляция прерываний в EWAVR woroba Микроконтроллеры, АЦП, память и т.д 5 13.02.2009 08:39
Симуляция LCD+AVR в proteus _grey_ Микроконтроллеры, АЦП, память и т.д 16 26.05.2007 18:07
Связка Keil uVision2 и Proteus ISIS Barmaley13 Микроконтроллеры, АЦП, память и т.д 0 04.09.2005 10:53
ПЗУ в proteus(ISIS) ramovsky Proteus 3 14.05.2005 01:45


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


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