Bluetooth BLE HID Keyboard for the AlterErgo device, based on Seeed Studio Tiny BLE.

Dependencies:   BLE_API BLE_HID mbed nRF51822

Fork of BLENano_HID by Yuuichi Akagawa

Committer:
shervinemami
Date:
Sun Aug 26 10:19:01 2018 +0000
Revision:
1:c6659c8882c9
Initial working version of keyboard-only BLE HID

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shervinemami 1:c6659c8882c9 1
shervinemami 1:c6659c8882c9 2
shervinemami 1:c6659c8882c9 3 #ifndef __BATTERY_H__
shervinemami 1:c6659c8882c9 4 #define __BATTERY_H__
shervinemami 1:c6659c8882c9 5
shervinemami 1:c6659c8882c9 6 #include "mbed.h"
shervinemami 1:c6659c8882c9 7
shervinemami 1:c6659c8882c9 8 class Battery {
shervinemami 1:c6659c8882c9 9 public:
shervinemami 1:c6659c8882c9 10 Battery(PinName pin) {
shervinemami 1:c6659c8882c9 11 uint32_t n = (uint32_t) pin;
shervinemami 1:c6659c8882c9 12 channel = 1 << (1 + n);
shervinemami 1:c6659c8882c9 13 }
shervinemami 1:c6659c8882c9 14
shervinemami 1:c6659c8882c9 15 float read() {
shervinemami 1:c6659c8882c9 16 uint32_t pre_enable_register = NRF_ADC->ENABLE;
shervinemami 1:c6659c8882c9 17 uint32_t pre_config_register = NRF_ADC->CONFIG;
shervinemami 1:c6659c8882c9 18
shervinemami 1:c6659c8882c9 19
shervinemami 1:c6659c8882c9 20 NRF_ADC->ENABLE = ADC_ENABLE_ENABLE_Enabled;
shervinemami 1:c6659c8882c9 21 NRF_ADC->CONFIG = (ADC_CONFIG_RES_10bit << ADC_CONFIG_RES_Pos) |
shervinemami 1:c6659c8882c9 22 (ADC_CONFIG_INPSEL_AnalogInputNoPrescaling << ADC_CONFIG_INPSEL_Pos) |
shervinemami 1:c6659c8882c9 23 (ADC_CONFIG_REFSEL_VBG << ADC_CONFIG_REFSEL_Pos) |
shervinemami 1:c6659c8882c9 24 (channel << ADC_CONFIG_PSEL_Pos) |
shervinemami 1:c6659c8882c9 25 (ADC_CONFIG_EXTREFSEL_None << ADC_CONFIG_EXTREFSEL_Pos);
shervinemami 1:c6659c8882c9 26
shervinemami 1:c6659c8882c9 27 NRF_ADC->TASKS_START = 1;
shervinemami 1:c6659c8882c9 28 while (((NRF_ADC->BUSY & ADC_BUSY_BUSY_Msk) >> ADC_BUSY_BUSY_Pos) == ADC_BUSY_BUSY_Busy) {
shervinemami 1:c6659c8882c9 29 }
shervinemami 1:c6659c8882c9 30
shervinemami 1:c6659c8882c9 31 uint16_t value = NRF_ADC->RESULT;
shervinemami 1:c6659c8882c9 32
shervinemami 1:c6659c8882c9 33 NRF_ADC->ENABLE = pre_enable_register;
shervinemami 1:c6659c8882c9 34 NRF_ADC->CONFIG = pre_config_register;
shervinemami 1:c6659c8882c9 35
shervinemami 1:c6659c8882c9 36 return (float)value * (1.0f / (float)0x3FF) * 1.2 * 12.2 / 2.2;
shervinemami 1:c6659c8882c9 37 }
shervinemami 1:c6659c8882c9 38
shervinemami 1:c6659c8882c9 39 private:
shervinemami 1:c6659c8882c9 40 uint32_t channel;
shervinemami 1:c6659c8882c9 41 };
shervinemami 1:c6659c8882c9 42
shervinemami 1:c6659c8882c9 43 #endif // __BATTERY_H__