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

How to set button as true but without pressing it?

Hi, does anyone know how to make a button press in the program instead of manually press it from the kit?

thanks!

  • Nordic always come with the example such that 

    where I want to get grid of the button press to wake up and advertise how can I do it ? I want to advertise automatically instead of a button pressed.

    For instance,

    static void sleep_mode_enter(void)
    {
        uint32_t err_code = bsp_indication_set(BSP_INDICATE_IDLE);
        APP_ERROR_CHECK(err_code);
    
        // Prepare wakeup buttons.
        err_code = bsp_btn_ble_sleep_mode_prepare();
        APP_ERROR_CHECK(err_code);
    
        // Go to system-off mode (this function will not return; wakeup will cause a reset).
        err_code = sd_power_system_off();
        APP_ERROR_CHECK(err_code);
    }

    Thanks,

    bluey

  • You don't have to use the button support package as it is, and indeed you can switch the unit to advertising automatically.

    Have a look at the BLE peripheral blink example, it will automatically advertise on start-up.

    If you leave any example code to enter sleep (to save power) how are you going to wake the system up?

    You will need to look at more than one example and take from them the parts of code that you need to get the programme that you want. The examples are just that, an indication of how you can perform small bits of functionality.

    On the most basic level as a rule hard inputs e.g. UARTs or GPIOs have handler code that then performs an action based on what is received. You can write your own functions to perform that. To start with I would suggest writing those functions and then calling them from the code already in the example.

    So if you are trying to send data over a UART automatically you may want to trigger that using a timer. Test the code first by calling it from a button press handler, then when you add the timer you can call the same code on the timer event.

    With the Bluetooth you will need to decide what services and characteristics you are going to use, or indeed if you want to use custom ones and add the code to do so.

    I'd advise you to not change any of the Nordic Bluetooth library or service code, just add you're own interface code that calls the bits that you need.

  • where I want to get grid of the button press to wake up and advertise how can I do it ?

    As suggested in the first reply, You look at what code gets called when the button is pressed - and just do that!

    This is the standard approach to adapting any software to your specific needs - nothing specifically to do with Nordic or even embedded ...

Related