Jump to content
    

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

Привет!

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

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

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

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

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

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

 

Share this post


Link to post
Share on other sites

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

 

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

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

Share this post


Link to post
Share on other sites

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

 

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

 

Share this post


Link to post
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...