This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Documentation for BSP_EVENT_MID_PRESS event or how is the best way to know button press length

I am working with some code from a previous provider and I found in its void bsp_event_handler(bsp_event_t event) function this code:

case BSP_EVENT_MID_PRESS:
            err_code = app_timer_stop(wake_button);
            APP_ERROR_CHECK(err_code);
            lock = 0;
        break;

I have looked for the BSP_EVENT_MID_PRESS everywhere but I could not find any documentation about it. My concern is about my internal flag called lock which might be causing a endless loop at main:

lock = 1;
// do the inits()....
start_counting_press_time();

if(is_counting) {
	while(lock == 1) {
	}
}

In case you were wondering about the is_counting flag, it is only assigned in this function

void start_counting_press_time(void)
{
    button_is_not_pushed = nrf_gpio_pin_read(BUTTON_1) ? true : false;
	if( button_is_not_pushed == 0 )
	{
		uint32_t err_code = app_timer_start(wake_button, APP_TIMER_TICKS(500, APP_TIMER_PRESCALER) , NULL);
		APP_ERROR_CHECK(err_code);
		// ...
		is_counting = 1;
	}
}

Is this the best way to achieve the length of a button press, so it can wake up and begin advertising after x seconds button press/release?

Parents Reply Children
No Data
Related