void OS_LeaveCriticalSection (void)
{
    char temp;
    _OS_Flags.bInCriticalSection = 0;
    temp = 0;
    if (_OS_Flags.bGIE_CTemp) temp |= 0x80;
    OS_RI(temp);
}
void OS_LeaveCriticalSection (void)
{
    char temp;
    _OS_Flags.bInCriticalSection = 0;
    temp = 0;
    if (_OS_Flags.bI0_CTemp) temp |= 0x20;
    if (_OS_Flags.bI1_CTemp) temp |= 0x08;
    OS_RI(temp);
}
void _OS_Dtimer_Create (OST_DTIMER *dtimer)
{
    _OS_Temp = OS_DI();

    dtimer->Next = _OS_DTimers.Next;
    dtimer->Flags = _OS_DTimers.Flags;
    dtimer->Timer = 0;

    _OS_DTimers.Next = (OST_DTIMER*)dtimer;
    _OS_DTimers.Flags.bNextEnable = 1;

    OS_RI(_OS_Temp);
}
Exemple #4
0
void _OS_Dtimer_Create (OST_DTIMER *dtimer)
{
    _OS_Temp = OS_DI();

    dtimer->Next = _OS_DTimers.Next;
    dtimer->Timer = 0;

    // Perform "dtimer->Flags = _OS_DTimers.Flags;":
    *(unsigned char*)dtimer = *(unsigned char*)&_OS_DTimers.Flags;

    _OS_DTimers.Next = (OST_DTIMER*)dtimer;
    OS_DTIMER_ATOMIC_WRITE_A(_OS_DTimers.Flags.bNextEnable = 1);

    OS_RI(_OS_Temp);
}
void OS_LeaveCriticalSection (void)
{
    _OS_Flags.bInCriticalSection = 0;
    OS_RI(_OS_Flags.cIPL_Temp << 5);

}