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

 
 
> Помогите найти, Срочно нужна информация по векторам прерывания
Freeze Anti
сообщение May 7 2007, 12:23
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613



Здравствуйте... Есть проблема... Очень срочно нужно найти список вызовов прерываний на СИ для микросхемы ATmega128... Непосредственно сейчас нужно узнать, как из СИ вызвать прерывание, которое наступает во время получения инормации по UART... Потом еще пригодятся несколько... Справка у меня какая-то куцая, нет практически ничего, кроме справки о самой среде... Поэтому, если можно, киньте ссылочку, плз... Заранее признателен....


--------------------
!!! All you need is LOVE !!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aleksey_g
сообщение May 7 2007, 12:40
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 151
Регистрация: 11-01-06
Из: Украина Ровно
Пользователь №: 13 066



Цитата(Freeze Anti @ May 7 2007, 14:23) *
Здравствуйте... Есть проблема... Очень срочно нужно найти список вызовов прерываний на СИ для микросхемы ATmega128... Непосредственно сейчас нужно узнать, как из СИ вызвать прерывание, которое наступает во время получения инормации по UART... Потом еще пригодятся несколько... Справка у меня какая-то куцая, нет практически ничего, кроме справки о самой среде... Поэтому, если можно, киньте ссылочку, плз... Заранее признателен....


посмотрите например iom128.h (iar)
вот выдержка из него
/*==============================*/
/* Interrupt Vector Definitions */
/*==============================*/

/* NB! vectors are specified as byte addresses */

#define RESET_vect (0x00)
#define INT0_vect (0x04)
#define INT1_vect (0x08)
#define INT2_vect (0x0C)
#define INT3_vect (0x10)
#define INT4_vect (0x14)
#define INT5_vect (0x18)
#define INT6_vect (0x1C)
#define INT7_vect (0x20)
#define TIMER2_COMP_vect (0x24)
#define TIMER2_OVF_vect (0x28)
#define TIMER1_CAPT_vect (0x2C)
#define TIMER1_COMPA_vect (0x30)
#define TIMER1_COMPB_vect (0x34)
#define TIMER1_OVF_vect (0x38)
#define TIMER0_COMP_vect (0x3C)
#define TIMER0_OVF_vect (0x40)
#define SPI_STC_vect (0x44)
#define USART0_RXC_vect (0x48)
#define USART0_UDRE_vect (0x4C)
#define USART0_TXC_vect (0x50)
#define ADC_vect (0x54)
#define EE_RDY_vect (0x58)
#define ANA_COMP_vect (0x5C)
#define TIMER1_COMPC_vect (0x60)
#define TIMER3_CAPT_vect (0x64)
#define TIMER3_COMPA_vect (0x68)
#define TIMER3_COMPB_vect (0x6C)
#define TIMER3_COMPC_vect (0x70)
#define TIMER3_OVF_vect (0x74)
#define USART1_RXC_vect (0x78)
#define USART1_UDRE_vect (0x7C)
#define USART1_TXC_vect (0x80)
#define TWI_vect (0x84)
#define SPM_RDY_vect (0x88)

это пример для м48, но для вашего случая примерно аналгично

#pragma vector=USART_RX_vect
__interrupt void USART_RXC(void)
{
unsigned char d;
//uart has received a character in UDR0
d=UDR0;
//Запись вошедшего байта в кольцевой буфер
if (counter<3) {buffer[counter]=d;counter++;} else {buffer[0]=buffer[1];buffer[1]=buffer[2];buffer[2]=d;}
}
Go to the top of the page
 
+Quote Post
mdmitry
сообщение May 7 2007, 13:25
Сообщение #3


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



В справке посмотрите информацию по директиве pragma . Там есть пример оформления прерывания.

Сообщение отредактировал mdmitry - May 7 2007, 13:25


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 17:03
Рейтинг@Mail.ru


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