Цитата(Burner @ May 22 2011, 00:38)

А типо External ? В стандартных RTOS я не разбираюсь, но сделать переменную, видимую для всех ПП в обычном Си, получалось.
да, спасибо, примерно так и надо как я понял.
Вроде мейлбокс теперь есть, но все равно работает плохо через раз и более 1 раза им воспользоваться не удается. Что-то я делаю не так.
Я завел отдельный файл в проекте - mailbox.c (код внизу)
Далее, в main, еще до команды OS_Start(), я инициализирую мейлбокс с помощью InitKeyMan(). Потом в одной задаче я записываю в мейлбокс 1 байт с помощью KEYMAN_StoreCond() а затем в другой задаче я его читаю с помощью GetKey().
В результате переменная читается, но не всегда и только 1 раз - потом она уже не изменяется. Пробовал OS_ClearMB() - симптомы те же.
Поможите люди добрые!
CODE
#include "RTOS.H"
OS_MAILBOX MBKey;
char MBKeyBuffer[1];
// ---------- прототипы ---------------------
void InitKeyMan(void);
char KEYMAN_StoreCond(char k);
char GetKey(void);
void ClearKeyMB(void);
// ------------------------------------------
void InitKeyMan(void) {
OS_CREATEMB(&MBKey,1,sizeof(MBKeyBuffer),&MBKeyBuffer);
}
char KEYMAN_StoreCond(char k) {
return OS_PutMailCond(&MBKey, &k);
}
char GetKey(void) {
char c=0;
OS_GetMailCond(&MBKey, &c);
return c;
}