Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Странная штука с макросом INTERRUPT... Процессор ATtiny2313

Отправлено Maksss 22 мая 2007 г. 19:32


Вот небольшой код.

#include
#include
#include

// Обработчик прерывания INT0
SIGNAL(SIG_INT0)
{
PORTB = 0x0002;
}

void main(void)
{
int i;
// инициализация порта B
DDRB = 0x00FF;
PORTB = 0x0000;

// разрешение прерываний: флаг I регистра SREG установлен
sei();

// условие генерации внешнего прерывания INT0: по низкому уровню(ISC11 и ISC10 сброшены)
MCUCR &= 0x00F3;

// разрешение внешнего прерывания INT0
GIMSK |= 0x0040;

while(1);
}

Если вместо макроса SIGNAL поставить INTERRUPT, то после обработки прерывания на выводе PD2 вместо положенных, например 4,5В(при Vcc=5В) напряжение калеблется от 0,1В до 0,5В... Если ставлю SIGNAL, то то после обработки прерывания на выводе 4,5В. В чём может быть дело? Ведь SIGNAL просто не "прерывает" обработчик, который в данный момент работает... Помогите пожалуйста разобраться!

Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 76:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru