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

 
 
> AT91sam7S128 UART для Keil, Как реализовать прерывание для UART в Keil.
Cezar
сообщение Apr 20 2011, 19:13
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 12-05-08
Из: Феодосия
Пользователь №: 37 452



Приветствую. С ARM столкнулся 1 раз и как что плохо представлю.
И так задача на один UART принимать не какие, данных их обрабатывать и передавать на 2 UART.
Принимать данные на 1 по прерыванию. И вот тут и возникла проблема. Как это реализовать? Перебрал куча вариантов не один из них нормально не работает. Прерывание не возникает. Под IAR вроде как надо правильно прописать в Startup.c работу с прерываниями и разрешение глобального. А как это сделать в Keil?. Если есть возможность выложите пример для работы с прерыванием UART под Keil. Мои поиски в нэти и в examplax ни к чему не привели.

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Apr 22 2011, 08:28
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Как минимум
Код
__irq void Usart0IrqHandler(void)

а не
Код
unsigned int Usart0IrqHandler(void)

Плюс нужно добавить запись EOICR.
Go to the top of the page
 
+Quote Post
Cezar
сообщение Apr 22 2011, 10:15
Сообщение #3





Группа: Новичок
Сообщений: 9
Регистрация: 12-05-08
Из: Феодосия
Пользователь №: 37 452



Цитата(aaarrr @ Apr 22 2011, 11:28) *
Как минимум
Код
__irq void Usart0IrqHandler(void)

а не
Код
unsigned int Usart0IrqHandler(void)


AT91F_AIC_ConfigureIt (AT91C_BASE_AIC,AT91C_ID_US0, 1, AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, Usart0IrqHandler);

Параметры вызова этой функции таковы
Код
__inline unsigned int AT91F_AIC_ConfigureIt (
    AT91PS_AIC pAic,  // \arg pointer to the AIC registers
    unsigned int irq_id,     // \arg interrupt number to initialize
    unsigned int priority,   // \arg priority to give to the interrupt
    unsigned int src_type,   // \arg activation and sense of activation
    void (*newHandler) () ) // \arg address of the interrupt handler
{
    unsigned int oldHandler;
    unsigned int mask;

    oldHandler = pAic->AIC_SVR[irq_id];

    mask = 0x1 << irq_id;
    //* Disable the interrupt on the interrupt controller
    pAic->AIC_IDCR = mask;
    //* Save the interrupt handler routine pointer and the interrupt priority
   [b] pAic->AIC_SVR[irq_id] = (unsigned int) newHandler;[/b]
    //* Store the Source Mode Register
    pAic->AIC_SMR[irq_id] = src_type | priority ;
    //* Clear the interrupt on the interrupt controller
    pAic->AIC_ICCR = mask;

    return oldHandler;
}

таким образом вылетает ошибка

Serial.c(89): error: #167: argument of type "void (*)(void)__irq" is incompatible with parameter of type "void (*)()"
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Cezar   AT91sam7S128 UART для Keil   Apr 20 2011, 19:13
- - kovigor   Цитата(Cezar @ Apr 20 2011, 23:13) Мои по...   Apr 20 2011, 19:37
|- - Cezar   Цитата(kovigor @ Apr 20 2011, 22:37) Завт...   Apr 20 2011, 21:46
- - aaarrr   Цитата(Cezar @ Apr 20 2011, 23:13) Мои по...   Apr 20 2011, 20:06
|- - kovigor   Цитата(aaarrr @ Apr 20 2011, 23:06) Вылож...   Apr 20 2011, 20:25
|- - aaarrr   Цитата(kovigor @ Apr 21 2011, 00:25) Эта ...   Apr 20 2011, 20:45
|- - kovigor   Цитата(aaarrr @ Apr 20 2011, 23:45) В том...   Apr 20 2011, 20:54
|- - aaarrr   Цитата(kovigor @ Apr 21 2011, 00:54) Все-...   Apr 20 2011, 21:00
- - Cezar   И так мой код Startup взят дефлотный который кеил...   Apr 22 2011, 07:32
||- - aaarrr   Цитата(Cezar @ Apr 22 2011, 14:15) таким ...   Apr 22 2011, 10:22
|- - Cezar   Цитата(aaarrr @ Apr 22 2011, 11:28) ... П...   Apr 22 2011, 11:09
|- - aaarrr   Цитата(Cezar @ Apr 22 2011, 15:09) Это в ...   Apr 22 2011, 11:10
|- - Cezar   Цитата(aaarrr @ Apr 22 2011, 14:10) В кон...   Apr 22 2011, 11:14
|- - aaarrr   Цитата(Cezar @ Apr 22 2011, 15:14) Может ...   Apr 22 2011, 11:19
|- - Cezar   Цитата(aaarrr @ Apr 22 2011, 14:19) Данно...   Apr 22 2011, 11:26
|- - aaarrr   Цитата(Cezar @ Apr 22 2011, 15:26) Или пр...   Apr 22 2011, 11:47
- - Cezar   Теперь у меня по срабатыванию прерывания программа...   Apr 24 2011, 18:45
- - aaarrr   Цитата(Cezar @ Apr 24 2011, 22:45) Теперь...   Apr 25 2011, 08:45
- - Cezar   Цитата(aaarrr @ Apr 25 2011, 11:45) Вообщ...   Apr 25 2011, 10:41


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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 19:53
Рейтинг@Mail.ru


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