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

 
 
> не могу мегу 8 загнать во внешнее прерывание int0
Метценгерштейн
сообщение Sep 4 2013, 15:04
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Код
char __low_level_init (void) {  
...
        MCUCR = (1<<ISC01)|(0<<ISC00); // разрешил внешнее прерывание INT0 по падению фронта
        GICR = (1<<INT0); // разрешил глобальное прерывание по INT0
...
        PORTD = (0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(0<<1)|(0<<0);            
        DDRD =(1<<7)|(1<<6)|(1<<5)|(1<<4)|(1<<3)|(0<<2)|(1<<1)|(1<<0);      // PD2 (int0) вход          
        
        return 1;                                
}


вот в main () разрешаю глобальные прерывания
Код
void main (void) {
__enable_interrupt();
...


а вот уже в др. файле обработчик прерывания
Код
#pragma vector = INT0_vect
__interrupt void INT0_interrupt (void)
{
  putString ("прерывание");
  putString ("\r\n");
...

на осцилле при старте единица. Подаю ноль, в обработчик не вваливается.

Чего не вижу?

Сообщение отредактировал Метценгерштейн - Sep 4 2013, 15:04
Go to the top of the page
 
+Quote Post



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

 


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


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