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

 
 
> опять USART на 16 меге, прерывание по приёму
*SERG
сообщение Jan 29 2006, 08:11
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517



Регистры настроил так:

UCSRA=0x00;
UCSRB=0B11011000;
UCSRC=0B10000110;
UBRRH=0x00;
UBRRL=0x65;

подпрограммы прерывания

interrupt [USART_RXC] void usart_rx_isr(void)
{

prinat_ussap=UDR;
est_dannie=1;
zapis_end=0;

}


// USART Transmitter interrupt service routine
interrupt [USART_TXC] void usart_tx_isr(void)
{
#asm
nop;
#endasm
}

Пишу в CVAVR.

Проблемма в том, что когда приходит первый байт, прерывание не происходит, а вот когда уже второй байт пришёл, то происходит прерывание, переменной "prinat_ussap" присваивается значение первого байта blink.gif
А теоретически при приходе первого байта доложно происходить прерывание. Регистр UCSRB, больше не трогаю, все прерывания разрешаю в самом начале, больше не запрещаю.
Где собака порылась??? smile.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kuk
сообщение Feb 1 2006, 11:02
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 21
Регистрация: 14-12-05
Пользователь №: 12 189



Я в меге 16 УАСПП конфигурировал так
void USART_Init(void){
DDRD_Bit0=0;
DDRD_Bit1=0;

UBRRH =0;
UBRRL = 103;


RXCIE=1;
RXEN=1;
TXEN=1;
UCSRC = 0x86;
num_byte_comand=0;
num_byte_data = 0;
}
Скорость 9600 кварц 16МГц и I=1;
Прерывание как на прием так и на передачу все пашет
Go to the top of the page
 
+Quote Post



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

 


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


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