Помогите с UART AVR

 
0
 
ASM
ava
klin2006 | 15.05.2009, 14:59
Всем привет! Помогите пожалуйста! Нужна любая информация по теме: «Ввод-вывод информации через последовательный порт UART AVR по прерываниям». Если есть у кого какие-либо кусочки программы и т.д поделитесь пожалуйста. Если есть возможность, своими словами опишите принцип приема и передачи данных через UART по прерываниям. Заранее спасибо.
Ответы (3)
ava
UniBomb | 15.05.2009, 17:02 #
klin2006, во-первых не в том разделе тема, во-вторых недостаточно информации в вопросе. На каком языке? На си например это будет выглядеть так:


/*...*/
char data;
/*...*/
int main()
{
//настраиваем модуль USART
UDRn = data; //передаём данные
}
/*...*/
ISR(SIG_UARTn_TRANS) //Обработчик прерывания по передачи данных
{
//тут уже все данные пеерданы, можно делать что угодно
}
/*...*/
ISR(SIG_UARTn_RECV) //обработчик прерывания по приёму данных
{
data = UDRn; //принимаем данные
}
/*...*/


где n - это номер модуля USART
ava
UniBomb | 16.05.2009, 18:34 #
ммм... тут же ветка про асм))) Сорри. На асме это выглядет примерно так:



rjmp main
;...
;...
;...
rjmp TxVect ;определяем вектор прерывания по приёму данных
rjmp RxVect ;определяем вектор прерыванию данных
;...
;...

main:

;инициализируем модуль USART

ldi r16, 0xFF
out UDRn, r16 ;передаём какие-нибудь данные

;...

TxVect:
;...
; делаем какие-либо действия
;...
reti

;...

RxVect:
;...
in r16, UDRn ;считываем принятые данные
; делаем ещё чего-нибудь (или не делаем больше ничего)
reti
ava
klin2006 | 17.05.2009, 09:25 #
UniBomb, большое спасибо
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить