|
UART Mega8, Странное поведенеие |
|
|
|
Apr 26 2007, 16:29
|
Частый гость
 
Группа: Участник
Сообщений: 141
Регистрация: 7-03-06
Из: Санкт-Петербург
Пользователь №: 15 038

|
Дорый день! Немного удивляет поведение юарта в этом МК. Исходник Код void main( void ) { UCSRA=0x00;//UART init UCSRB=0x98; UCSRC=0x86; UBRRH=0x00; UBRRL=0x5F;
DDRC |=0x03; DDRD |=0x80; PORTC=0x00; asm("sei"); while(1) { } } void USART_Transmit( unsigned char data ) { while ( !( UCSRA & (1<<5)) ); UDR = data; } Обработчик Код #pragma vector = USART_RXC_vect __interrupt void USART_Receive(void) { PORTD |=0x80; USART_Transmit(UDR); PORTD &=~0x80; } Прикол в том что если с терминала ему слать данные то он нормально отвечает то что и принял. А вот строки Код PORTD |=0x80; и Код PORTD &=~0x80; он обрабатывает только при первом принятом символе. Дльше никаких дёрганий. В чем может быть Ошибка. Спасиба!!!
|
|
|
|
|
 |
Ответов
|
Apr 27 2007, 11:14
|
Участник

Группа: Новичок
Сообщений: 41
Регистрация: 7-02-05
Пользователь №: 2 473

|
Цитата(Denisvak @ Apr 26 2007, 20:51)  Вписал туда задержку и все нормально стало. Вставлять в обработчик прерывания задержку равно, как и ожидание, обсуждаемое выше - плохой стиль. Лучше, тот же Transmit вызывать в бесконечном цикле по флагу в main_e, а в прерывании этот самый флаг взводить.
|
|
|
|
Сообщений в этой теме
Denisvak UART Mega8 Apr 26 2007, 16:29 AlexBoy Может до строки PORTD &=~0x80; он и не доходит... Apr 26 2007, 16:43 sKWO Цитата(Denisvak @ Apr 26 2007, 16:29) Нем... Apr 26 2007, 17:29 SasaVitebsk Использовал эту мегу в качестве модема с полным уп... Apr 26 2007, 19:09 freux Цитата(Denisvak @ Apr 26 2007, 17:29) Код... Apr 26 2007, 19:28  Denisvak Цитата(freux @ Apr 27 2007, 12:14) Вставл... Apr 27 2007, 13:28 Amper25 void USART_Transmit( unsigned char data )
{
whil... Apr 26 2007, 20:21 Denisvak Цитата(Amper25 @ Apr 26 2007, 21:21) void... Apr 26 2007, 20:42 =GM= Цитата(Amper25 @ Apr 26 2007, 17:21) Кста... Apr 27 2007, 02:01  Сергей Борщ Цитата(=GM= @ Apr 27 2007, 01:01) Кстати,... Apr 27 2007, 09:55   =GM= Цитата(IgorKossak @ Apr 27 2007, 05:39) О... Apr 27 2007, 15:41    IgorKossak Цитата(=GM= @ Apr 27 2007, 15:41) Насчёт ... Apr 27 2007, 16:08    Сергей Борщ Цитата(=GM= @ Apr 27 2007, 14:41) Что-то ... Apr 27 2007, 17:36     =GM= Цитата(Сергей Борщ @ Apr 27 2007, 14:36) ... Apr 28 2007, 00:02    Denisvak Цитата(=GM= @ Apr 27 2007, 16:41) Кстати,... Apr 27 2007, 19:05     Сергей Борщ Цитата(Denisvak @ Apr 27 2007, 18:05) Дум... Apr 27 2007, 19:24      Denisvak Цитата(Сергей Борщ @ Apr 27 2007, 20:24) ... Apr 27 2007, 19:37     =GM= Цитата(Denisvak @ Apr 27 2007, 16:05) Дум... Apr 27 2007, 23:14      Сергей Борщ Цитата(=GM= @ Apr 27 2007, 22:14) Нет, эт... Apr 27 2007, 23:57      Сергей Борщ Цитата(=GM= @ Apr 27 2007, 22:14) Я верю,... Apr 28 2007, 00:10       =GM= Цитата(Сергей Борщ @ Apr 27 2007, 21:10) ... Apr 28 2007, 00:37        Сергей Борщ Цитата(=GM= @ Apr 27 2007, 23:37) Из книг... Apr 28 2007, 01:05 Kuzmi4 2 Denisvak - Вообще то при вниматьном прочтении ДШ... Apr 26 2007, 21:13 Сергей Борщ Цитата(Kuzmi4 @ Apr 26 2007, 20:13) 2 Den... Apr 26 2007, 22:21 Kuzmi4 2 Сергей Борщ - я имел ввиду что, согласен с тем ч... Apr 27 2007, 08:33 IgorKossak Оператор ! это не побитная инверсия, а логичес... Apr 27 2007, 09:39
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|