Перейти к содержанию
    

Sleep вне класса-процесса

Привет!

Делаю первые шаги в освоении scmRTOS. Пока нравится. AVR Mega128 . Не очень силён в С++. Вопрос следующий: можно ли вызывать функции процесса извне его определения?

template<> void TProc2::Exec() {  
   while(1) {
       foo();
       ....
   }
}

void foo ( void ){
   TProc2.Sleep(10); ???
}

Есть в проекте много функций для ввода различных данных с клавиатуры, в которых используется ожидание по времени.

Все планируется повесить на один процесс.

Спасибо за ответы.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Функция Sleep() (в версии 4 - sleep()) - статическая, поэтому ее можно вызывать без привязки к конкретному процессу: OS::TBaseProcess::Sleep(10); и, естественно, делать это из любого места (ну, кроме прерываний, разумеется).

 

В версии 4 в пространстве имен OS введена функция-обертка, там можно писать OS::sleep(10);

namespace OS
{
    INLINE void sleep(timeout_t t = 0) { TBaseProcess::sleep(t); }
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Функция Sleep() (в версии 4 - sleep()) - статическая, поэтому ее можно вызывать без привязки к конкретному процессу: OS::TBaseProcess::Sleep(10); и, естественно, делать это из любого места (ну, кроме прерываний, разумеется).

 

В версии 4 в пространстве имен OS введена функция-обертка, там можно писать OS::sleep(10);

namespace OS
{
    INLINE void sleep(timeout_t t = 0) { TBaseProcess::sleep(t); }
}

 

Спасибо. Только не пойму какой тогда (из нескольких процессов) будет спать? Мне нужно уложить спать определённый.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Только не пойму какой тогда (из нескольких процессов) будет спать?
Текущий, тот, который в данный момент выполняет этот код.

Все остальные процессы в этот момент и так приостановлены.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...