I am using the nRF52 (SDK12.0.0) to create a very simple BLE application (maybe based on the BLE_APP_HRS example). The system will have a button, LED and interrupt pin from a sensor tied to three GPIO pins. I will use SPI to read the data from the sensor upon interrupt. This data will be sent to the the central (Android) via a notification. The central will use a separate read/write characteristic to configure the system/sensor/LED/etc.
I noticed that none of the examples use the scheduler library, but I did notice it is used in an example on Github referred to by nAN-36. The Nordic infocenter for SDK12.0.0's BLE examples describes that the scheduler can be used or not, but does not say why I would need to use it. My system seems simple enough that I wouldn't need it (I can simply set flags in the IRQ handlers that are processed in main's superloop). So what is the advantage of the scheduler, and why don't examples use it?
Also, the board support package (bsp.c) seems awfully complicated for toggling LEDs and detecting button presses. Was is made so that different duration of button presses can be detected and their functionality can be easily changed based on advertising/connected modes? I think the methods used in nAN-36 should work fine for simply detecting button a button press and toggling LEDs correct?