Robert Lewis

Re: lwgpio interrupt restrictions?

Discussion created by Robert Lewis on Apr 11, 2013
Latest reply on Jun 27, 2014 by Yixing Kong
Branched from an earlier discussion

Hi

 

I think I am seeing something similar.

 

I have a status task running that updates a pair of LEDs one of the methods is to Toggle the LED, I can put a breakpoint in the task, it hits it and I can step through and see the LED toggle. There is a _time_delay(1000) in the task. Stepping through I see the LED toggle but running it stays on solid. I haven't figured this one out yet.

 

I realize this is not exactly the same as Bill's problem, but the behaviour with the Toggle seems to be, Can you offer a suggestion as well please?

 

Regards

 

Robert

 

This is the code

TASK_TEMPLATE_STRUCT    MQX_template_list[] = {

//   Task Index,        Function,               Stack,       Priority,   Name,                  Attributes,          Param,     Time Slice

    {RAPTOR_INIT_TSK,   RaptorInitTsk,          2500,            8,      "raptor_init_tsk",     MQX_AUTO_START_TASK, 0L,        0},

    {RAPTOR_MAIN_TSK,   RaptorMainTsk,          2400,            8,      "raptor_main_tsk",     0,                   0L,        0},

    {SYSTEM_STATUS_TSK, SystemStatusTsk,        1000,           10,      "system_status_tsk",   MQX_AUTO_START_TASK, 0L,        0},

    {EMPL_READ_TSK,     EmplReadTsk,            2400,            8,      "empl_read_tsk",       0,                   0L,        0},

//  {EMPL_DRVTST_TSK,   EmplDrvtstTsk,          1400,           10,      "empl_drvtst_tsk",     MQX_AUTO_START_TASK, 0L,        0},

    { 0,                0,                      0,              0,       0,             0                  }

};

 

#define     LED_AMBER_TOGGLE            lwgpio_toggle_pin_output(LED_AMBER);

void SystemStatusTsk (uint32    u32_init_data)

{

    while(1){

        if(gu16_SystemStatus == ge_BT_CONN_TRUE ){

            LED_BLUE_ON;

        }else {

        if(gu16_SystemStatus == ge_BT_CONN_FALSE ){

            LED_BLUE_OFF;

        }else {

        if(gu16_SystemStatus == ge_DATA_COLLECT_ON ){           // toggle data to indicate running

            LED_AMBER_TOGGLE;

        }else {

        if(gu16_SystemStatus == ge_DATA_COLLECT_OFF ){

            LED_AMBER_OFF;

        }else {

        if(gu16_SystemStatus == ge_STATUS_CLEAR ){

            LED_BLUE_OFF;

            LED_AMBER_OFF;

        }}}}}

 

 

            _time_delay(1000);

 

 

    }

}

 

Outcomes