示例#1
0
void _OS_ReturnSave (void)
{
//    _OS_SET_FSR_CUR_TASK_W(_OS_TASK_POINTER_OFFSET + 1);
    _OS_SET_FSR_CUR_TASK_W(1 + 1);
    _OS_SAVE_PC();
    _OS_bTaskReady = 1;
    _PIC16E_POP();
}
void _OS_ReturnSave (void)
{
    _OS_SET_FSR_CUR_TASK_W(OS_CODE_POINTER_SIZE + _OS_TASK_POINTER_OFFSET);
    _postdec = _fsr1l - _OS_TempH;

    _OS_SAVE_PC();
    _OS_bTaskReady = 1;

    _OS_POP();
}
void _OS_JumpToTask (void)
{
    _OS_SET_FSR_CUR_TASK_W(OS_CODE_POINTER_SIZE + _OS_TASK_POINTER_OFFSET);
    if (_indf)
    {
        _indf1 = _fsr2l;
        _fsr2l = _fsr1l;
    }

    _OS_TempH = _fsr1l;
    _fsr1l += _postdec;
    _OS_SET_PC();
}
void _OS_ClrReadySetClrCanContinue (void)
{


    _OS_Flags.bEventError = 0;

    _OS_SET_FSR_CUR_TASK_W(OS_CODE_POINTER_SIZE + _OS_TASK_POINTER_OFFSET);
    _postdec = _fsr1l - _OS_TempH;
    _OS_SAVE_PC();
    _OS_bTaskReady = 0;

    #if defined(OS_ENABLE_TTIMERS)
        if (!_OS_bTaskDelay) _OS_bTaskCanContinue = 0;
        if (_OS_Temp & 0x01) _OS_bTaskCanContinue = 1;
    #endif

}
示例#5
0
void _OS_ClrReadySetClrCanContinue (void)
{
    _PIC16E_POP();

    _OS_Flags.bEventError = 0;

//    _OS_SET_FSR_CUR_TASK_W(_OS_TASK_POINTER_OFFSET + 1);
    _OS_SET_FSR_CUR_TASK_W(1 + 1);
    _OS_SAVE_PC();

    _OS_bTaskReady = 0;

    #if defined(OS_ENABLE_TTIMERS)

        if (!_OS_bTaskDelay) _OS_bTaskCanContinue = 0;
        if (_OS_Temp & 0x01) _OS_bTaskCanContinue = 1;

    #endif
}
示例#6
0
void _OS_JumpToTask (void)
{
//    _OS_SET_FSR_CUR_TASK_W(_OS_TASK_POINTER_OFFSET + 1);
    _OS_SET_FSR_CUR_TASK_W(1 + 1);
    _OS_SET_PC();
}