Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ОБЪЯВЛЕНИЕ ПРЕРЫВАНИЙ В IAR
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Andrew32768
КАК НА СИ В IAR КОМПИЛЯТОРЕ ОБЪЯВЛЯТЬ ПРЕРЫВАНИЯ?
MrYuran
#pragma vector=VECTOR_NUMBER
__interrupt void interrupt_routine_name(void)
{
}

А что, в документации разве нет?
smalcom
А ЗАЧЕМ ТЕБЕ ПРЕРЫВАНИЯ?
Datadoc
Меня тоже интересует вопрос прерываний 2х внешних и таймера (на С для WinAVR ) для определения частоты вращения 2х двигателей.
MrYuran
Цитата(Datadoc @ Jun 30 2010, 15:57) *
Меня тоже интересует вопрос прерываний 2х внешних и таймера (на С для WinAVR ) для определения частоты вращения 2х двигателей.

Там по-другому, более по-человечески
interrupt(VECTOR_NUMBER) interrupt_routine_handler(void)
{
}
Datadoc
Не подскажите может где-то в форуме описана процедура организации прерываний?
Сергей Борщ
Цитата(Datadoc @ Jun 30 2010, 15:20) *
Не подскажите может где-то в форуме описана процедура организации прерываний?
Объясните, что означает "процедура организации прерываний"?
VladimirYU
Цитата(Datadoc @ Jun 30 2010, 16:20) *
Не подскажите может где-то в форуме описана процедура организации прерываний?

А почему обязательно в форуме? В любом букваре по микропроцессорной технике.
Qwertty
Цитата(MrYuran @ Jun 30 2010, 16:03) *
Там по-другому, более по-человечески
interrupt(VECTOR_NUMBER) interrupt_routine_handler(void)

ISR отменили? Наверно надо обновить компилятор, а то на 4.2.2 так и сижу.
Vetal-Soft
Цитата(Qwertty @ Jun 30 2010, 19:37) *
ISR отменили? Наверно надо обновить компилятор, а то на 4.2.2 так и сижу.

Так вроде это avr-libc, а не компилятор... rolleyes.gif
morcat
Для примера: обработка прерывания по совпадению таймера 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
МП41
Кстати, в ИАРе надо в прерываниях сохранять/восстанавливать SREG или нет? Я что-то разницы не заметил, хотя программа была сложная.
Xenia
Цитата(МП41 @ Jul 14 2010, 11:23) *
Кстати, в ИАРе надо в прерываниях сохранять/восстанавливать SREG или нет? Я что-то разницы не заметил, хотя программа была сложная.

Если это IAR C/C++ компилятор, то не надо - компилятор сам вставит необходимый код, а если это IAR ассемблер, то надо вставлять вручную.
МП41
Xenia, спасибо, в листингах копаться было неохота. Компилятор IAR C/C++.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.