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

 
 
> scmRTOS: если в одном из процессов "быстрый цикл", то все остальные процессы загибаются
haker_fox
сообщение Dec 13 2006, 07:33
Сообщение #1


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Здравствуйте!
Такая вот проблема. Использую ОС scmRTOS на ATmega16. Создано два процесса. Первый: работа с USART, второй - с ЖКИ. Проблема: если во втором процессе применить цикл вида
Код
while(PINB & (1 << KEY0));
, то первый процесс не работает. Если цикл исправить на такой
Код
            while(PINB & (1 << KEY0))
                Sleep(50/OS_SWITCH_TASK);

то все ок. В этом цикле мы ждем нажатия некой кнопки и в это время первый процесс не работает. При нажатии на кнопку (т.е. когда происходит выход из цикла), первый процесс начинает абсолютно нормально работать.
Сложилось впечатление, что если в задаче (процессе) применен бесконечный цикл, то все остальные процессы "падают" до тех пор, пока это цикл не прекратится. Доку перечитал. Не нашел никаких комментариев на эту тему. Сам сообразить, в чем дело, не могу. Прошу помощи у бывалых. Заранее спасибо!
Детали:
МК ATmega16, кварц 16MHz
Время тика ОС 4.096 мс (TCCR0 = 0x04;)
Версия ОС 1.10
Компилятор WinAVR 20060421

На всякий случай прикладываю некоторые файлы своего проекта.
Прикрепленные файлы
Прикрепленный файл  WAKE_RTOS.rar ( 45.6 килобайт ) Кол-во скачиваний: 92
 


--------------------
Выбор.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- haker_fox   scmRTOS: если в одном из процессов "быстрый цикл", то все остальные процессы загибаются   Dec 13 2006, 07:33
- - sergeeff   Ну тут все очень просто. Чтобы могли крутиться дру...   Dec 13 2006, 09:28
|- - Terminator   Цитата(sergeeff @ Dec 13 2006, 12:28) Ну ...   Dec 13 2006, 09:36
|- - spf   Цитата(Terminator @ Dec 13 2006, 11:36) Я...   Dec 13 2006, 09:48
|- - haker_fox   Цитата(spf @ Dec 13 2006, 14:48) Цитата(T...   Dec 13 2006, 10:25
|- - spf   Цитата(haker_fox @ Dec 13 2006, 12:25) Ци...   Dec 13 2006, 10:35
|- - haker_fox   Цитата(spf @ Dec 13 2006, 15:35) Цитата(h...   Dec 13 2006, 10:41
|- - amusin   Цитата(haker_fox @ Dec 13 2006, 12:41) Кс...   Dec 13 2006, 11:29
|- - haker_fox   Цитата(amusin @ Dec 13 2006, 16:29) Цитат...   Dec 13 2006, 11:33
|- - spf   Цитата(haker_fox @ Dec 13 2006, 13:33) Ну...   Dec 13 2006, 12:17
- - sergeeff   Вытесняющая. Но надо же дать возможность другим пр...   Dec 13 2006, 09:40
- - IEC   А в вашем привере цикл можно разбать на несколько ...   Dec 13 2006, 11:45
- - Wild007   ИМХО в основном цикле "влет" проверять с...   Dec 13 2006, 12:19
- - IgorKossak   haker_fox, Вы писали, что у Вас два процесса: UART...   Dec 13 2006, 12:39
- - amusin   "cпустя минут 10 после запуска все накрылось....   Dec 13 2006, 14:24
|- - IgorKossak   Цитата(amusin @ Dec 13 2006, 13:24) ... Н...   Dec 13 2006, 14:55
|- - haker_fox   Цитата(amusin @ Dec 13 2006, 19:24) Наско...   Dec 14 2006, 04:09
- - amusin   Я не буду спорить ни по ЦитатаПри частоте кварца 8...   Dec 13 2006, 15:18


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

 


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


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