Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 04.12.2008, 19:10  
user_ushastyj
Временная регистрация
 
Регистрация: 06.12.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
user_ushastyj на пути к лучшему
По умолчанию

Уберите ограничение по счетчику
Код:
//while (rx_counter==0);!!! здесь
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
Реклама:
__________________
разум когда-нибудь победит... (с)
user_ushastyj вне форума  
Непрочитано 05.12.2008, 11:00  
code-by
Прописка
 
Регистрация: 04.08.2006
Сообщений: 181
Сказал спасибо: 1
Сказали Спасибо 31 раз(а) в 31 сообщении(ях)
code-by на пути к лучшему
По умолчанию

Не помогло... я думаю, что дело в процедуре обработки прерывания.
code-by вне форума  
Непрочитано 05.12.2008, 12:21  
user_ushastyj
Временная регистрация
 
Регистрация: 06.12.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
user_ushastyj на пути к лучшему
По умолчанию

Да, извините, не досмотрел - там оно не используется. Попробуйте действительно упростить прерывание - и выдачу сделать в основном цикле. Кстати, функция принтф требует 37 байтов стека, а в визарде по умолчанию стоит 32, поправьте в свойствах проекта.
Код:
// This flag is set on USART Receiver buffer overflow
bit rx_buffer_overflow;

// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
   {
   rx_buffer[rx_wr_index]=data;
   if (++rx_wr_index == RX_BUFFER_SIZE)
     {
    rx_wr_index=0; 
    rx_buffer_overflow=1;
   };
}
}
/// и тд

while (1)
      { 
      if(rx_buffer_overflow)
      {
       rx_buffer_overflow=0;
        for(i=0;i‹8;i++)
        {
     printf("%02X

",rx_buffer[i]);
        }
      }
      };
__________________
разум когда-нибудь победит... (с)
user_ushastyj вне форума  
Непрочитано 05.12.2008, 12:31  
code-by
Прописка
 
Регистрация: 04.08.2006
Сообщений: 181
Сказал спасибо: 1
Сказали Спасибо 31 раз(а) в 31 сообщении(ях)
code-by на пути к лучшему
По умолчанию

спасибо! работает
code-by вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
UART AVR прошу совета v_fokuse Микроконтроллеры, АЦП, память и т.д 70 09.06.2009 13:41
Проблемы с приемом данных через UART Tiny 2313 SoapMaker Микроконтроллеры, АЦП, память и т.д 0 08.04.2008 10:35
Помогите разобраться с приёмом символов через UART в ATmeg8 cscbyflex Микроконтроллеры, АЦП, память и т.д 10 19.12.2006 19:17
Проблема с UART AVR uk8amk Микроконтроллеры, АЦП, память и т.д 1 12.08.2006 16:59


Часовой пояс GMT +4, время: 21:16.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot