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

 
 
> UART Mega8, Странное поведенеие
Denisvak
сообщение Apr 26 2007, 16:29
Сообщение #1


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

Группа: Участник
Сообщений: 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;
он обрабатывает только при первом принятом символе. Дльше никаких дёрганий.
В чем может быть Ошибка.
Спасиба!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kuzmi4
сообщение Apr 26 2007, 21:13
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 Denisvak - Вообще то при вниматьном прочтении ДШ на этот кристалл замечаем на странице 151 такую вещь как начальное состояние битов регистра UCSRA, так, если приглядется получше то можно увидеть что он изначально установлен в 1.
То есть Amper25 всё правильно написал. Но на счёт ( ( UCSRA & (1<<5)) != 0x00 ) - я думаю это уж слишком...

Это -
//send char proc
void USART_Transmit( unsigned char data )
{
/* Wait for empty transmit buffer */
while ( !( UCSR0A & (1<<UDRE0)) )
;
/* Put data into buffer, sends the data */
UDR0 = data;
}

тоже неплохо работает, да и взято с того же самого даташита smile.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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   По ходу дела все таки он их обрабатывает, просто я...   Apr 26 2007, 19:51
|- - freux   Цитата(Denisvak @ Apr 26 2007, 20:51) Впи...   Apr 27 2007, 11:14
|- - 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 @ 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


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

 


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


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