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

 
 
> Проблема: спящий режим+ USART
Ruslan Konovalov
сообщение Oct 7 2008, 03:33
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 25-07-07
Пользователь №: 29 364



Всем добрый день.

Возникла проблема при использовании спящего режима(Idle mode) в Atmega8.
Вот код(не полный):
Код
void main(void)
{
  MCUCR |= (0<<SM2)|(0<<SM1)|(0<<SM0); //Idle mode
  init_Usart();
  __enable_interrupt();

for(;;)
{
   MCUCR |= (1<<SE); //Разрешение спящего режима
   asm("sleep");  //Сон
   Usart_read(); //Читаем строку
   Usart_Send_Str(UsartBuff); //Возвращаем принятое
}
}


Проблема заключается в том, что при использовании спящего режима Usart читает входящие данные нормально, за исключением первого байта.
Я так понимаю он пропускает его из-за того что процессор просыпается и начинает нормально работать в момент прихода 2-го байта.
Как решить эту проблему ?

А что если соеденить ножку RX и INT0 и будить процессор по этому прирыванию ?
Может кто нибудь уже с этим сталкивался ?
Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Николай Иванович...
сообщение Oct 7 2008, 06:36
Сообщение #2


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

Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510



Цитата(Ruslan Konovalov @ Oct 7 2008, 07:33) *
Проблема заключается в том, что при использовании спящего режима Usart читает входящие данные нормально, за исключением первого байта.

Ну так организуйте протокол так, чтобы первый байт не нёс никакой инфы, а использовался только для "побудки" микроконтроллера. В чём проблема-то?
Go to the top of the page
 
+Quote Post
Ruslan Konovalov
сообщение Oct 7 2008, 07:06
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 25-07-07
Пользователь №: 29 364



Цитата(Николай Иванович Приходько @ Oct 7 2008, 09:36) *
Ну так организуйте протокол так, чтобы первый байт не нёс никакой инфы, а использовался только для "побудки" микроконтроллера. В чём проблема-то?

К сожалению изменить протокол нет возможности. 05.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ruslan Konovalov   Проблема: спящий режим+ USART   Oct 7 2008, 03:33
- - VladimirYU   Цитата(Ruslan Konovalov @ Oct 7 2008, 07...   Oct 7 2008, 08:07
|- - Ruslan Konovalov   Цитата(VladimirYU @ Oct 7 2008, 11:07) Мн...   Oct 7 2008, 23:53
|- - VladimirYU   Цитата(Ruslan Konovalov @ Oct 8 2008, 03...   Oct 8 2008, 05:01
|- - Ruslan Konovalov   Цитата(VladimirYU @ Oct 8 2008, 08:01) Де...   Oct 9 2008, 01:43
|- - VladimirYU   Цитата(Ruslan Konovalov @ Oct 9 2008, 05...   Oct 9 2008, 05:11
- - Ruslan Konovalov   Спасибо всем, кто откликнулся. Оказалось, что это ...   Oct 9 2008, 12:59
- - GDI   Все же поборите свой стыд и расскажите в чем была ...   Oct 9 2008, 13:11
|- - VladimirYU   Цитата(GDI @ Oct 9 2008, 17:11) Все же по...   Oct 10 2008, 05:19
- - Ruslan Konovalov   Ладно. Было вот так: Кодvoid main(void) {...   Oct 13 2008, 07:37
|- - VladimirYU   [/quote] UCSRB |= (1 << RXCIE);//Разрешаем п...   Oct 13 2008, 09:09
|- - Ruslan Konovalov   Цитата(VladimirYU @ Oct 13 2008, 12:09) U...   Oct 13 2008, 10:11
- - defunct   Цитата(Ruslan Konovalov @ Oct 7 2008, 06...   Oct 13 2008, 17:43


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

 


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


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