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

 
 
> AVR-IAR и внешнее прерывание, обработка INT0
mr_ia
сообщение Feb 12 2009, 10:31
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 13-02-07
Пользователь №: 25 311



Добрый день уважаемые.
Имею очень простой вопрос, как в IAR обработать внешнее прерывание.
До этого програмил в CVAVR, но вот решил мигрировать.
Опишу задачу. Нужно обработать внешнее прерывание INT0, по нижнему уровню.
Посмотрел примеры, вопросы ответы, нашел более менее подходящий кусок по обработке прерывания при перемолнении таймера счетчика, кусок работает. Написал для обработки INT0- Не работает...

Привожу код.
CODE
#include <iom128.h>
#include <inavr.h>
#include <ina90.h>


//volatile char flag;

//Обработка прерывания INT0***
#pragma vector = 0x04
//#pragma type_attribute=__interrupt
//void my_handler(void)
__interrupt void INT0_ISR(void)
{
__disable_interrupt(); //отключаем глобальные прерывания
//flag=flag++;
PORTD_Bit6 = 0; //смотрим по состоянию ножки выполнилось ли прерывание
}

int main( void )
{
DDRD_Bit7 = 1; //конфигурируем биты
DDRD_Bit6 = 1;
PORTD_Bit6 = 1;

DDRE=0xFF; //конфигурируем порты
DDRF=0xFF;
DDRB=0xFF;


EIMSK|= 1<<0; //Разрешаем INT0
EICRA &= ~(1<<0); // по нижнему уровню
__enable_interrupt(); //разрешаем глобальные прерывания

while (1)
{
__delay_cycles(1000000);
PORTD_Bit7 = 1; //смотрим не виснет ли
__delay_cycles(1000000);
PORTD_Bit7 = 0;

PORTE=EIMSK; //смотрим текущее состояние
PORTF=SREG;
PORTB=EIFR;
}
}



Если закоментировать обработку прерывания, то:
Код
EIMSK=0x01;
SREG=0x82;
EIFR=0xF0;

P.S. Компилируется без ошибок. Моделирую в Proteuse, за неимением железа под рукой... Мб глюк протеуса, но врядли ибо аналогичное в CVAVR работает без проблем.
В чем я ошибся?
Причина редактирования: Уменьшение видимого размера цитаты исходника.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SysRq
сообщение Feb 13 2009, 00:02
Сообщение #2


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Цитата(mr_ia @ Feb 12 2009, 13:31) *
Код
#pragma vector = 0x04

Может я не в тему, IAR'а у меня нет.. 0x04 - это правильное значение? С вектором INT0 не совпадает. Почему не использорвать вполне понятные символические имена констант из хедеров?..
Go to the top of the page
 
+Quote Post
Палыч
сообщение Feb 13 2009, 13:13
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(SysRq @ Feb 13 2009, 03:02) *
0x04 - это правильное значение? С вектором INT0 не совпадает.
Это - в IAR'е такой прикол, чтобы всех запутать biggrin.gif . Адреса указываются в байтах, даже для памяти программ, чего нет у остальных трансляторов.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- mr_ia   AVR-IAR и внешнее прерывание   Feb 12 2009, 10:31
- - clpe   Цитата(mr_ia @ Feb 12 2009, 13:31) __inte...   Feb 12 2009, 10:45
- - aspID   Как минимум, в том, что прерывание отработает толь...   Feb 12 2009, 10:48
- - mr_ia   если добавить __enable_interrupt(); в обработку п...   Feb 12 2009, 10:59
- - MrYuran   А ногу, на которой INT0, не забываете подёргать? М...   Feb 12 2009, 11:08
- - clpe   Цитата(mr_ia @ Feb 12 2009, 13:31) while ...   Feb 12 2009, 11:09
- - Палыч   Цитата(mr_ia @ Feb 12 2009, 13:31) Модели...   Feb 12 2009, 11:33
|- - mr_ia   Цитата(Палыч @ Feb 12 2009, 15:33) В AVRS...   Feb 12 2009, 12:05
|- - Палыч   Цитата(mr_ia @ Feb 12 2009, 15:05) Спасиб...   Feb 12 2009, 12:53
- - mr_ia   Ногу дергаю кнопкой(в протеусе). изначально INT0 о...   Feb 12 2009, 11:34
- - clpe   DDRE=0xFF; //конфигурируем порты DDRF=0xFF; DDRB =...   Feb 12 2009, 11:56
- - clpe   Нет всетаки виноват протеус... У меня работает: Pr...   Feb 12 2009, 12:17
- - zltigo   Цитата(mr_ia @ Feb 12 2009, 13:31) нашел ...   Feb 12 2009, 13:29
|- - Палыч   Цитата(zltigo @ Feb 12 2009, 16:29) А кто...   Feb 12 2009, 13:53
|- - zltigo   Цитата(Палыч @ Feb 12 2009, 16:53) Имхо, ...   Feb 12 2009, 14:02
- - Atashi   глянул на схему и чет задумался о дребезгах всяких...   Feb 12 2009, 23:10
|- - clpe   Цитата(Atashi @ Feb 13 2009, 02:10) гляну...   Feb 13 2009, 12:20


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

 


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


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