Пример #1
0
static void DSPMonitorTask(MailType *MailPtr)
{
    switch (MailPtr->Primitive)
    {
        case INITTASK:
        {
            char *ptr;
            ptr = StringPrint(StatusString, "DSP[0x");
            ptr = StrPrintHexWord(ptr, DSP_SEGMENT_SIZE);
            ptr = StringPrint(ptr, "] = [0x");
            ptr = StrPrintHexAddr(ptr, (unsigned long) &DSPCodeAndRamArea[0]);
            ptr = StringPrint(ptr, "] -> [0x");
            ptr = StrPrintHexAddr(ptr, (unsigned long) &DSPCodeAndRamArea[DSP_SEGMENT_SIZE - 1]);
            ptr = StringPrint(ptr, "]");
            PrintStatus(0, StatusString);
            /* OSStartTimer(DSPMONITORTIMER, 100);*/
        }
        break;
        case 0x2a:
        {

        }
        break;
        case TIMEOUT:
        {
            char* ptr = StringPrint(StatusString, "DSP tick[");
            ptr = StrPrintHexWord(ptr, dsp_interrupt_counter);
            ptr = StringPrint(ptr, "]");
            __disable_interrupt();
            dsp_interrupt_counter = 0;
            __enable_interrupt();
            PrintStatus(0, StatusString);
            OSStartTimer(DSPMONITORTIMER, 100);
        }
        break;
    }
}
Пример #2
0
/*=====================================================================================================================
 * Parameters: void
 *
 * Return: void
 *
 * Description: 
 *===================================================================================================================*/
void FSIO_Task(void)
{
    switch(CardState)
    {
    //------------------------------------------------------------------------------------------------------------------
    case cInitState:
         OSStartTimer(&CardInitTimer);
         CardState = eCardWaitState;
         _DioWritePin(cDioPin_SD_CardLed, 1);
        break;
    //------------------------------------------------------------------------------------------------------------------
    case eCardInitialize:
        // card is inserted, initialize card
        if(cFalse != MDD_MediaDetect())
        {
            if (cFalse != FSInit())
            {
                // init OK
                _set_sd_card_present(1);
                _DioWritePin(cDioPin_SD_CardLed, 0);
                // load device configuration
                Devconfig_LoadConfig();
                App_Statemachine_SD_CardCallback(cCallbackCtrlOK);

                CardState = eCardInserted;
            }
            else
            {
                // init error
                _set_sd_card_present(0);
                _DioWritePin(cDioPin_SD_CardLed, 1);

                CardState = eCardNotPresent;
            }
        }
        else
        {
            _set_sd_card_present(0);
            CardState = eCardNotPresent;
        }
        break;
    //-----------------------------------------------------------------------------------------------------------------
    case eCardInserted:
        if(cDioCardInsertsed != _DioReadPinFiltered(cDioPin_SD_CardPresent))
        {
            _set_sd_card_present(0);
            _DioWritePin(cDioPin_SD_CardLed, 1);
            App_Statemachine_SD_CardCallback(cCallbackCtrlNOK);

            CardState = eCardNotPresent;
        }
        break;
    //-------------------------------------------------------------------------------------------------------------------
    case eCardNotPresent:
        // wait card inserted
        if(cDioCardInsertsed == _DioReadPinFiltered(cDioPin_SD_CardPresent))
        {
            CardState = eCardInitialize;
        }
        break;
    //------------------------------------------------------------------------------------------------------------------
    case eCardWaitState:
        if(cFalse != OSIsTimerElapsed(&CardInitTimer, cFSIO_DioInitTime_ms/(cOsTimerTickUs/1000UL)))
        {
            // wait some time before start polling card state
            CardState = eCardNotPresent;
        }
        break;
    //-------------------------------------------------------------------------------------------------------------------
    default:
        _assert(cFalse);
        CardState = eCardNotPresent;
        break;
    }
}