Перейти к содержанию
    

ОБЪЯВЛЕНИЕ ПРЕРЫВАНИЙ В IAR

#pragma vector=VECTOR_NUMBER

__interrupt void interrupt_routine_name(void)

{

}

 

А что, в документации разве нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меня тоже интересует вопрос прерываний 2х внешних и таймера (на С для WinAVR ) для определения частоты вращения 2х двигателей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меня тоже интересует вопрос прерываний 2х внешних и таймера (на С для WinAVR ) для определения частоты вращения 2х двигателей.

Там по-другому, более по-человечески

interrupt(VECTOR_NUMBER) interrupt_routine_handler(void)

{

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не подскажите может где-то в форуме описана процедура организации прерываний?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не подскажите может где-то в форуме описана процедура организации прерываний?
Объясните, что означает "процедура организации прерываний"?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не подскажите может где-то в форуме описана процедура организации прерываний?

А почему обязательно в форуме? В любом букваре по микропроцессорной технике.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там по-другому, более по-человечески

interrupt(VECTOR_NUMBER) interrupt_routine_handler(void)

ISR отменили? Наверно надо обновить компилятор, а то на 4.2.2 так и сижу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ISR отменили? Наверно надо обновить компилятор, а то на 4.2.2 так и сижу.

Так вроде это avr-libc, а не компилятор... :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для примера: обработка прерывания по совпадению таймера 0 канала А (ATmega48)

 

#pragma vector=TIMER0_COMPA_vect
__interrupt void Inter_Timer0_COMPA(void)
{

}

Или: переполнение таймера 1

 

#pragma vector=TIMER1_OVF_vect
__interrupt void Inter_Timer1_OVF(void)
{

}

Описание названий векторов можно посмотреть в хедере на микросхему, в данном случае для IAR это iom48.h

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, в ИАРе надо в прерываниях сохранять/восстанавливать SREG или нет? Я что-то разницы не заметил, хотя программа была сложная.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, в ИАРе надо в прерываниях сохранять/восстанавливать SREG или нет? Я что-то разницы не заметил, хотя программа была сложная.

Если это IAR C/C++ компилятор, то не надо - компилятор сам вставит необходимый код, а если это IAR ассемблер, то надо вставлять вручную.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Xenia, спасибо, в листингах копаться было неохота. Компилятор IAR C/C++.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...