Re: lwgpio interrupt restrictions?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Re: lwgpio interrupt restrictions?

462 Views
Cdn_aye
Senior Contributor I

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);

    }

}

2 Replies

337 Views
YixingKong
Senior Contributor IV

Robert

We are sorry for getting back to you so late. Are you still stuck with the issue? If you have somehow resolved the issue, can we close the discussion? If you still need help, please feel free to reply with an update to this discussion.

Also, please provide platform information and tags before you submit any support request.

Thanks,

Yixing

0 Kudos

337 Views
Martin_
NXP Employee
NXP Employee

Hi Robert,

a quick check here - try to set the priority of SystemStatusTsk to 7 and leave the priorities of your other tasks as they are. Does this make any difference ?