acd52832 blinky example
main.cpp
- Committer:
- jurica238814
- Date:
- 2017-08-25
- Branch:
- TestBranch
- Revision:
- 2:84d964276266
- Parent:
- 1:8fd903e4bcef
- Child:
- 4:de5cf6b1e96b
File content as of revision 2:84d964276266:
/* Copyright (c) 2016 Aconno. All Rights Reserved.
*
* Licensees are granted free, non-transferable use of the information. NO
* WARRANTY of ANY KIND is provided. This heading must NOT be removed from
* the file.
*
*/
#include "mbed.h"
#include "acd52832_bsp.h"
#include "ble/BLE.h"
#include "GapAdvertisingData.h"
#define USE_PWM (0)
#define USE_BLE (1)
#if USE_BLE
BLE &ble = BLE::Instance();
#endif
Ticker WakeSleepT;
Ticker turnBuzzOffT;
Ticker sleepChanger;
#if USE_PWM
PwmOut buzzer(p31);
#endif
#if USE_BLE
void bleInitComplete(BLE::InitializationCompleteCallbackContext *params){
BLE& ble = params->ble;
/* Ensure that it is the default instance of BLE */
if(ble.getInstanceID() != BLE::DEFAULT_INSTANCE) {
return;
}
uint8_t MSD = 0x23;
/* setup advertising */
ble.gap().setAdvertisingInterval(100); // --> Has to be at least 100ms!
ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::MANUFACTURER_SPECIFIC_DATA, &MSD, 1);
ble.gap().stopAdvertising();
}
#endif
int main(){
#if USE_BLE
ble.init(bleInitComplete);
/* SpinWait for initialization to complete. This is necessary because the BLE object is used in the main loop below. */
while (ble.hasInitialized() == false){}
#endif
#if USE_PWM
buzzer.period(0.0F);
buzzer.write(0.0F);
#endif
/*
// Disconnect and stop PWM0
NRF_PWM0->PSEL.OUT[0] = 0x80000000;
NRF_PWM0->PSEL.OUT[1] = 0x80000000;
NRF_PWM0->PSEL.OUT[2] = 0x80000000;
NRF_PWM0->PSEL.OUT[3] = 0x80000000;
NRF_PWM0->TASKS_STOP = 1;
*/
// Disconnect and stop PWM1
NRF_PWM1->PSEL.OUT[0] = 0x80000000;
NRF_PWM1->PSEL.OUT[1] = 0x80000000;
NRF_PWM1->PSEL.OUT[2] = 0x80000000;
NRF_PWM1->PSEL.OUT[3] = 0x80000000;
NRF_PWM1->TASKS_STOP = 1;
// Disconnect and stop PWM2
NRF_PWM2->PSEL.OUT[0] = 0x80000000;
NRF_PWM2->PSEL.OUT[1] = 0x80000000;
NRF_PWM2->PSEL.OUT[2] = 0x80000000;
NRF_PWM2->PSEL.OUT[3] = 0x80000000;
NRF_PWM2->TASKS_STOP = 1;
NRF_CLOCK->TASKS_LFCLKSTART = 1;
while(!NRF_CLOCK->EVENTS_LFCLKSTARTED);
NRF_CLOCK->TASKS_HFCLKSTOP;
NRF_POWER->TASKS_LOWPWR = 0x00000001;
while(1){
#if USE_BLE
ble.waitForEvent();
#endif
__WFI();
}
}