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

 
 
> Прерывания и странное явление с подтяжкой
endasm
сообщение Aug 31 2012, 21:30
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 9-07-12
Пользователь №: 72 673



Изучаю прерывания в AVR и на отладочной плате собрал кое-какую схемку на ATmega16:

Собственно говоря на ней изображена сама проблема - подтянутые резисторами по 1к ножки прерываний INT0 и INT1 ведут себя совершенно пр-разному: прерывание INT0, как я догадываюсь, срабатывает постоянно и "спасает" если только подтянуть ножки прерывания INT0 напрямую к +5v без резистора - тогда второе прерывание INT1 нормально работает. Так же через ножку прерывания INT0 течет довольно большой ток и напряжение на резисторе подтяжки проседает до 0,7в. В чем проблема? Может у меня бракованный\палёный МК ? (Код прилагается ниже)
CODE
#include <avr/io.h>
#include <avr/interrupt.h>

#define F_CPU 1000000UL
#include <util/delay.h>

int main(void)
{
DDRB=0b11111111; // настройка PORTB на выход
GICR=(1<<INT0|1<<INT1); // разрешаем прерывания для INT0 и INT1
MCUCR&=~(1<<ISC10|1<<ISC00|1<<ISC01|1<<ISC11); // настройка срабатывания прерывания по "0" на INT0 или INT1

sei(); // глобальное разрешение прерываний
while(1);
}

ISR(INT0_vect) // прерывание по INT0
{
cli(); // "0" в 8-ой бит регистра SREG - глобальное запрещение прерываний
PORTB=0b00000001;
_delay_ms(500);
PORTB=0b00000000;
sei(); // "1" в 8-ой бит регистра SREG - глобальное разрешение прерываний
}

ISR(INT1_vect) // прерывание по INT1
{
cli(); // "0" в 8-ой бит регистра SREG - глобальное запрещение прерываний
PORTB=0b00000010;
_delay_ms(500);
PORTB=0b00000000;
sei(); // глобальное разрешение прерываний
}


Сообщение отредактировал IgorKossak - Sep 5 2012, 12:20
Причина редактирования: [codebox] для длинного кода!!!
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 15:12
Рейтинг@Mail.ru


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