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

 
 
> Многозадачность на авр
Dimmix
сообщение Sep 5 2010, 12:06
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 645
Регистрация: 24-10-05
Пользователь №: 10 033



Подскажите однако как лучше запустить многозадачность на авр-ах
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sensor_ua
сообщение Sep 8 2010, 12:15
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Цитата
я же могу просто в ключевых местах yield() расставить

Вот тут и начинается "кровосмешение" - у мну в коде именно yield() и ставится. Примерно так
Код
void serial_console_thread(void) {
  __TICK_BEGIN__
  while( !print("What's your name?"){ TICK_YIELD(); }
  readline(buf);
  while(!buf){ TICK_YIELD(); readline(buf); }
  while( !print("Hello, "){ TICK_YIELD(); }
  while( !print(buf){ TICK_YIELD(); }
  __TICK_END__
}
void gui_thread(void)
{
   __TICK_BEGIN__    
  while( NO_KEY == key = readkey() ){ TICK_YIELD();}
        
  if ( key == KEY_RIGHT )
    menu_move_right();
    ....
  else
    beep(); // wrong key pressed
  display_update();
  __TICK_END__
}

Метки в TICK_YIELD() создаются из макроса __LINE__.
Но где надо я могу себе позволить тупо перерисовать из документации машину состояний с теми же именами состояний (например машина состояний ModBus).


--------------------
aka Vit
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Dimmix   Многозадачность на авр   Sep 5 2010, 12:06
- - V_G   Работа по прерываниям - почти та же многозадачност...   Sep 5 2010, 13:25
- - Artem_Petrik   Цитата(Dimmix @ Sep 5 2010, 15:06) Подска...   Sep 5 2010, 14:37
- - _Pasha   Цитата(Dimmix @ Sep 5 2010, 16:06) Подска...   Sep 5 2010, 20:04
- - slanted   Цитата(Dimmix @ Sep 5 2010, 16:06) Подска...   Sep 6 2010, 21:49
|- - MrYuran   Цитата(slanted @ Sep 7 2010, 01:49) На са...   Sep 7 2010, 08:49
|- - slanted   Цитата(MrYuran @ Sep 7 2010, 12:49) Кроме...   Sep 7 2010, 14:34
|- - MrYuran   Цитата(slanted @ Sep 7 2010, 18:34) Это к...   Sep 7 2010, 14:42
|- - slanted   Цитата(MrYuran @ Sep 7 2010, 18:42) А вот...   Sep 7 2010, 15:26
|- - 777777   Цитата(MrYuran @ Sep 7 2010, 18:42) А вот...   Sep 7 2010, 15:55
- - sensor_ua   Цитата...нужно уметь сохранять и восстанавливать к...   Sep 7 2010, 03:19
- - 777777   Цитата(Dimmix @ Sep 5 2010, 16:06) Подска...   Sep 7 2010, 08:19
- - sensor_ua   ЦитатаВсе это так, но прототреды и прочие завуалир...   Sep 7 2010, 16:19
|- - slanted   Цитата(sensor_ua @ Sep 7 2010, 20:19) Пох...   Sep 7 2010, 16:41
- - sensor_ua   ЦитатаПокажите код штоле ;-) Вот выдрал простой ку...   Sep 7 2010, 20:49
|- - slanted   Цитата(sensor_ua @ Sep 8 2010, 00:49) Вот...   Sep 8 2010, 11:40
|- - MrYuran   Цитата(slanted @ Sep 8 2010, 15:40) Я буд...   Sep 8 2010, 11:50
|- - slanted   Цитата(sensor_ua @ Sep 8 2010, 16:15) Вот...   Sep 8 2010, 14:20
- - sensor_ua   Цитатавы не сможете сделать yield изнутри функции ...   Sep 8 2010, 15:07
|- - slanted   Цитата(sensor_ua @ Sep 8 2010, 19:07) Про...   Sep 8 2010, 15:52
- - sensor_ua   ЦитатаНасколько дольше? Как по мне - придется в ка...   Sep 8 2010, 18:04
|- - slanted   Цитата(sensor_ua @ Sep 8 2010, 22:04) Бу...   Sep 8 2010, 21:13
- - DRUID3   Цитата(Dimmix @ Sep 5 2010, 15:06) Подска...   Sep 9 2010, 05:19
- - Dimmix   вариантов мультизадачности много, видимо нужен спе...   Sep 9 2010, 14:00
- - MrYuran   Цитата(Dimmix @ Sep 9 2010, 18:00) т.е. В...   Sep 9 2010, 14:49


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

 


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


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