Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
NRFDevKit.cpp@5:0d9e292a9d06, 2019-03-08 (annotated)
- Committer:
- loicguibert
- Date:
- Fri Mar 08 08:28:14 2019 +0000
- Revision:
- 5:0d9e292a9d06
- Parent:
- 4:bfe306335065
- Child:
- 11:dbc310addbf6
Libraries done, except Logger.cpp.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| loicguibert | 4:bfe306335065 | 1 | #include "NRFDevKit.h" |
| loicguibert | 4:bfe306335065 | 2 | |
| loicguibert | 4:bfe306335065 | 3 | #define VBAT_MAX_IN_MV 3300 |
| loicguibert | 4:bfe306335065 | 4 | |
| loicguibert | 4:bfe306335065 | 5 | // constructor |
| loicguibert | 4:bfe306335065 | 6 | NRFDevKit::NRFDevKit(Logger& logger) |
| loicguibert | 4:bfe306335065 | 7 | : m_logger(logger), |
| loicguibert | 4:bfe306335065 | 8 | m_led1(LED1, 0) { |
| loicguibert | 4:bfe306335065 | 9 | } |
| loicguibert | 4:bfe306335065 | 10 | |
| loicguibert | 4:bfe306335065 | 11 | void NRFDevKit::blink1(void) { |
| loicguibert | 4:bfe306335065 | 12 | m_led1 = !m_led1; |
| loicguibert | 4:bfe306335065 | 13 | } |
| loicguibert | 4:bfe306335065 | 14 | |
| loicguibert | 4:bfe306335065 | 15 | uint8_t NRFDevKit::getBatteryLevel(void) { |
| loicguibert | 4:bfe306335065 | 16 | // Configure ADC |
| loicguibert | 4:bfe306335065 | 17 | NRF_ADC->CONFIG = (ADC_CONFIG_RES_8bit << ADC_CONFIG_RES_Pos) | |
| loicguibert | 4:bfe306335065 | 18 | (ADC_CONFIG_INPSEL_SupplyOneThirdPrescaling << ADC_CONFIG_INPSEL_Pos) | |
| loicguibert | 4:bfe306335065 | 19 | (ADC_CONFIG_REFSEL_VBG << ADC_CONFIG_REFSEL_Pos) | |
| loicguibert | 4:bfe306335065 | 20 | (ADC_CONFIG_PSEL_Disabled << ADC_CONFIG_PSEL_Pos) | |
| loicguibert | 4:bfe306335065 | 21 | (ADC_CONFIG_EXTREFSEL_None << ADC_CONFIG_EXTREFSEL_Pos); |
| loicguibert | 4:bfe306335065 | 22 | |
| loicguibert | 4:bfe306335065 | 23 | NRF_ADC->EVENTS_END = 0; |
| loicguibert | 4:bfe306335065 | 24 | NRF_ADC->ENABLE = ADC_ENABLE_ENABLE_Enabled; |
| loicguibert | 4:bfe306335065 | 25 | |
| loicguibert | 4:bfe306335065 | 26 | NRF_ADC->EVENTS_END = 0; // Stop any running conversions. |
| loicguibert | 4:bfe306335065 | 27 | NRF_ADC->TASKS_START = 1; |
| loicguibert | 4:bfe306335065 | 28 | |
| loicguibert | 4:bfe306335065 | 29 | while (!NRF_ADC->EVENTS_END) { |
| loicguibert | 4:bfe306335065 | 30 | } |
| loicguibert | 4:bfe306335065 | 31 | |
| loicguibert | 4:bfe306335065 | 32 | uint16_t vbg_in_mv = 1200; |
| loicguibert | 4:bfe306335065 | 33 | uint8_t adc_max = 255; |
| loicguibert | 4:bfe306335065 | 34 | uint16_t vbat_current_in_mv = (NRF_ADC->RESULT * 3 * vbg_in_mv) / adc_max; |
| loicguibert | 4:bfe306335065 | 35 | |
| loicguibert | 4:bfe306335065 | 36 | NRF_ADC->EVENTS_END = 0; |
| loicguibert | 4:bfe306335065 | 37 | NRF_ADC->TASKS_STOP = 1; |
| loicguibert | 4:bfe306335065 | 38 | |
| loicguibert | 4:bfe306335065 | 39 | return (uint8_t) ((vbat_current_in_mv * 100) / VBAT_MAX_IN_MV); |
| loicguibert | 4:bfe306335065 | 40 | } |
| loicguibert | 4:bfe306335065 | 41 | |
| loicguibert | 4:bfe306335065 | 42 | PinName NRFDevKit::getSCL(void) { |
| loicguibert | 5:0d9e292a9d06 | 43 | return p6; |
| loicguibert | 4:bfe306335065 | 44 | } |
| loicguibert | 4:bfe306335065 | 45 | |
| loicguibert | 4:bfe306335065 | 46 | PinName NRFDevKit::getSDA(void) { |
| loicguibert | 5:0d9e292a9d06 | 47 | return p5; |
| loicguibert | 4:bfe306335065 | 48 | } |
| loicguibert | 4:bfe306335065 | 49 | |
| loicguibert | 4:bfe306335065 | 50 | PinName NRFDevKit::getDataRdy(void) { |
| loicguibert | 5:0d9e292a9d06 | 51 | return P0_15; |
| loicguibert | 4:bfe306335065 | 52 | } |
| loicguibert | 4:bfe306335065 | 53 | |
| loicguibert | 4:bfe306335065 | 54 |