The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Thu Nov 08 11:45:42 2018 +0000
Revision:
171:3a7713b1edbc
mbed library. Release version 164

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 2 /*!
AnnaBridge 171:3a7713b1edbc 3 * \file main_board.h
AnnaBridge 171:3a7713b1edbc 4 *
AnnaBridge 171:3a7713b1edbc 5 * \brief Board services.
AnnaBridge 171:3a7713b1edbc 6 *
AnnaBridge 171:3a7713b1edbc 7 * Copyright (c) 2015 ARM, Ltd., all rights reserved.
AnnaBridge 171:3a7713b1edbc 8 * ARM confidential and proprietary.
AnnaBridge 171:3a7713b1edbc 9 *
AnnaBridge 171:3a7713b1edbc 10 * IMPORTANT. Your use of this file is governed by a Software License Agreement
AnnaBridge 171:3a7713b1edbc 11 * ("Agreement") that must be accepted in order to download or otherwise receive a
AnnaBridge 171:3a7713b1edbc 12 * copy of this file. You may not use or copy this file for any purpose other than
AnnaBridge 171:3a7713b1edbc 13 * as described in the Agreement. If you do not agree to all of the terms of the
AnnaBridge 171:3a7713b1edbc 14 * Agreement do not use this file and delete all copies in your possession or control;
AnnaBridge 171:3a7713b1edbc 15 * if you do not have a copy of the Agreement, you must contact ARM, Ltd. prior
AnnaBridge 171:3a7713b1edbc 16 * to any use, copying or further distribution of this software.
AnnaBridge 171:3a7713b1edbc 17 */
AnnaBridge 171:3a7713b1edbc 18 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 19
AnnaBridge 171:3a7713b1edbc 20 #ifndef __MAIN_BOARD_H
AnnaBridge 171:3a7713b1edbc 21 #define __MAIN_BOARD_H
AnnaBridge 171:3a7713b1edbc 22
AnnaBridge 171:3a7713b1edbc 23 /***************************************************************************************************
AnnaBridge 171:3a7713b1edbc 24 ** INCLUDES
AnnaBridge 171:3a7713b1edbc 25 ***************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 26
AnnaBridge 171:3a7713b1edbc 27 #include "chip.h"
AnnaBridge 171:3a7713b1edbc 28 #include "board.h"
AnnaBridge 171:3a7713b1edbc 29
AnnaBridge 171:3a7713b1edbc 30 #include "wsf_types.h"
AnnaBridge 171:3a7713b1edbc 31
AnnaBridge 171:3a7713b1edbc 32 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 33 extern "C" {
AnnaBridge 171:3a7713b1edbc 34 #endif
AnnaBridge 171:3a7713b1edbc 35
AnnaBridge 171:3a7713b1edbc 36 /***************************************************************************************************
AnnaBridge 171:3a7713b1edbc 37 ** TYPES
AnnaBridge 171:3a7713b1edbc 38 ***************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 39
AnnaBridge 171:3a7713b1edbc 40 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 41 ** enum main_board_mode
AnnaBridge 171:3a7713b1edbc 42 **
AnnaBridge 171:3a7713b1edbc 43 ** DESCRIPTION: Mode of application on board, if detectable at run-time.
AnnaBridge 171:3a7713b1edbc 44 --------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 45 enum main_board_mode {
AnnaBridge 171:3a7713b1edbc 46 MAIN_BOARD_MODE_DTM = 0,
AnnaBridge 171:3a7713b1edbc 47 MAIN_BOARD_MODE_BEACON = 1,
AnnaBridge 171:3a7713b1edbc 48 MAIN_BOARD_MODE_SENSOR = 2,
AnnaBridge 171:3a7713b1edbc 49 MAIN_BOARD_MODE_BEACON_NONCONNECTABLE = 3
AnnaBridge 171:3a7713b1edbc 50 };
AnnaBridge 171:3a7713b1edbc 51
AnnaBridge 171:3a7713b1edbc 52 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 53 ** enum main_board_settings
AnnaBridge 171:3a7713b1edbc 54 **
AnnaBridge 171:3a7713b1edbc 55 ** DESCRIPTION: Settings for board, stored in NV data. These values should not be changed once
AnnaBridge 171:3a7713b1edbc 56 ** used.
AnnaBridge 171:3a7713b1edbc 57 --------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 58 enum main_board_settings {
AnnaBridge 171:3a7713b1edbc 59 /* Major number (for beacon) [2 bytes] */
AnnaBridge 171:3a7713b1edbc 60 MAIN_BOARD_SETTING_MAJOR = 0,
AnnaBridge 171:3a7713b1edbc 61 /* Minor number (for beacon) [2 bytes] */
AnnaBridge 171:3a7713b1edbc 62 MAIN_BOARD_SETTING_MINOR = 1,
AnnaBridge 171:3a7713b1edbc 63 /* RSSI reference (for beacon) [2 bytes] */
AnnaBridge 171:3a7713b1edbc 64 MAIN_BOARD_SETTING_RSSI_REFERENCE = 2,
AnnaBridge 171:3a7713b1edbc 65 /* HCI logging level [1 byte] */
AnnaBridge 171:3a7713b1edbc 66 MAIN_BOARD_SETTING_HCI_LOGGING_LEVEL = 3,
AnnaBridge 171:3a7713b1edbc 67 /* Lock state (for UriBeacon) [1 byte] */
AnnaBridge 171:3a7713b1edbc 68 MAIN_BOARD_SETTING_LOCK_STATE = 4,
AnnaBridge 171:3a7713b1edbc 69 /* URI data (for UriBeacon) [18 bytes] */
AnnaBridge 171:3a7713b1edbc 70 MAIN_BOARD_SETTING_URI_DATA = 5,
AnnaBridge 171:3a7713b1edbc 71 /* URI flags (for UriBeacon) [1 byte] */
AnnaBridge 171:3a7713b1edbc 72 MAIN_BOARD_SETTING_URI_FLAGS = 6,
AnnaBridge 171:3a7713b1edbc 73 /* Advertised tx power levels (for UriBeacon) [4 bytes] */
AnnaBridge 171:3a7713b1edbc 74 MAIN_BOARD_SETTING_ADVERTISED_TX_POWER_LEVELS = 7,
AnnaBridge 171:3a7713b1edbc 75 /* Tx power mode (for UriBeacon) [1 byte] */
AnnaBridge 171:3a7713b1edbc 76 MAIN_BOARD_SETTING_TX_POWER_MODE = 8,
AnnaBridge 171:3a7713b1edbc 77 /* Beacon period (for beacon) [2 bytes] */
AnnaBridge 171:3a7713b1edbc 78 MAIN_BOARD_SETTING_BEACON_PERIOD = 9,
AnnaBridge 171:3a7713b1edbc 79 /* Lock [16 bytes] */
AnnaBridge 171:3a7713b1edbc 80 MAIN_BOARD_SETTING_LOCK = 10,
AnnaBridge 171:3a7713b1edbc 81 /* PIN [3 bytes] */
AnnaBridge 171:3a7713b1edbc 82 MAIN_BOARD_SETTING_PIN = 11,
AnnaBridge 171:3a7713b1edbc 83 /* Beacon type [1 byte] */
AnnaBridge 171:3a7713b1edbc 84 MAIN_BOARD_SETTING_BEACON_TYPE = 12,
AnnaBridge 171:3a7713b1edbc 85 };
AnnaBridge 171:3a7713b1edbc 86
AnnaBridge 171:3a7713b1edbc 87 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 88 ** enum main_board_muxmode
AnnaBridge 171:3a7713b1edbc 89 **
AnnaBridge 171:3a7713b1edbc 90 ** DESCRIPTION: Settings for MUX mode of MCU.
AnnaBridge 171:3a7713b1edbc 91 --------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 92 enum main_board_muxmode {
AnnaBridge 171:3a7713b1edbc 93 MAIN_BOARD_MUXMODE_NORMAL = 0,
AnnaBridge 171:3a7713b1edbc 94 MAIN_BOARD_MUXMODE_DIGITAL_TEST = 1,
AnnaBridge 171:3a7713b1edbc 95 };
AnnaBridge 171:3a7713b1edbc 96
AnnaBridge 171:3a7713b1edbc 97 /***************************************************************************************************
AnnaBridge 171:3a7713b1edbc 98 ** FUNCTIONS
AnnaBridge 171:3a7713b1edbc 99 ***************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 100
AnnaBridge 171:3a7713b1edbc 101 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 102 ** Main_BoardInit()
AnnaBridge 171:3a7713b1edbc 103 **
AnnaBridge 171:3a7713b1edbc 104 ** DESCRIPTION: Initialize board.
AnnaBridge 171:3a7713b1edbc 105 --------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 106 void Main_BoardInit(void);
AnnaBridge 171:3a7713b1edbc 107
AnnaBridge 171:3a7713b1edbc 108 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 109 ** Main_BoardI2cInit()
AnnaBridge 171:3a7713b1edbc 110 **
AnnaBridge 171:3a7713b1edbc 111 ** DESCRIPTION: Initialize I2C devices on board.
AnnaBridge 171:3a7713b1edbc 112 --------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 113 #ifdef BOARD_HAS_I2C
AnnaBridge 171:3a7713b1edbc 114 void Main_BoardI2cInit(void);
AnnaBridge 171:3a7713b1edbc 115 #endif
AnnaBridge 171:3a7713b1edbc 116
AnnaBridge 171:3a7713b1edbc 117 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 118 ** Main_BoardGetMode()
AnnaBridge 171:3a7713b1edbc 119 **
AnnaBridge 171:3a7713b1edbc 120 ** DESCRIPTION: Get board mode.
AnnaBridge 171:3a7713b1edbc 121 **
AnnaBridge 171:3a7713b1edbc 122 ** RETURNS: Board mode.
AnnaBridge 171:3a7713b1edbc 123 --------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 124 enum main_board_mode Main_BoardGetMode(void);
AnnaBridge 171:3a7713b1edbc 125
AnnaBridge 171:3a7713b1edbc 126 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 127 ** Main_BoardNvGetSize()
AnnaBridge 171:3a7713b1edbc 128 **
AnnaBridge 171:3a7713b1edbc 129 ** DESCRIPTION: Called to get size of NV memory.
AnnaBridge 171:3a7713b1edbc 130 **
AnnaBridge 171:3a7713b1edbc 131 ** RETURNS: Size of NV memory
AnnaBridge 171:3a7713b1edbc 132 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 133 #ifdef BOARD_HAS_SPIFLASH
AnnaBridge 171:3a7713b1edbc 134 size_t Main_BoardNvGetSize(void);
AnnaBridge 171:3a7713b1edbc 135 #endif /* BOARD_HAS_SPIFLASH */
AnnaBridge 171:3a7713b1edbc 136
AnnaBridge 171:3a7713b1edbc 137 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 138 ** Main_BoardNvRead()
AnnaBridge 171:3a7713b1edbc 139 **
AnnaBridge 171:3a7713b1edbc 140 ** DESCRIPTION: Called to read NV data.
AnnaBridge 171:3a7713b1edbc 141 **
AnnaBridge 171:3a7713b1edbc 142 ** PARAMETERS: addr Address from which to read
AnnaBridge 171:3a7713b1edbc 143 ** buf Pointer to buffer to receive data
AnnaBridge 171:3a7713b1edbc 144 ** length Number of bytes to read
AnnaBridge 171:3a7713b1edbc 145 **
AnnaBridge 171:3a7713b1edbc 146 ** RETURNS: Number of bytes read
AnnaBridge 171:3a7713b1edbc 147 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 148 #ifdef BOARD_HAS_SPIFLASH
AnnaBridge 171:3a7713b1edbc 149 size_t Main_BoardNvRead(size_t addr, uint8_t *buf, size_t length);
AnnaBridge 171:3a7713b1edbc 150 #endif /* BOARD_HAS_SPIFLASH */
AnnaBridge 171:3a7713b1edbc 151
AnnaBridge 171:3a7713b1edbc 152 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 153 ** Main_BoardNvWrite()
AnnaBridge 171:3a7713b1edbc 154 **
AnnaBridge 171:3a7713b1edbc 155 ** DESCRIPTION: Called to write NV data.
AnnaBridge 171:3a7713b1edbc 156 **
AnnaBridge 171:3a7713b1edbc 157 ** PARAMETERS: addr Address at which to write
AnnaBridge 171:3a7713b1edbc 158 ** buf Pointer to buffer with data to write
AnnaBridge 171:3a7713b1edbc 159 ** length Number of bytes to write
AnnaBridge 171:3a7713b1edbc 160 **
AnnaBridge 171:3a7713b1edbc 161 ** RETURNS: Number of bytes written
AnnaBridge 171:3a7713b1edbc 162 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 163 #ifdef BOARD_HAS_SPIFLASH
AnnaBridge 171:3a7713b1edbc 164 size_t Main_BoardNvWrite(size_t addr, const uint8_t *buf, size_t length);
AnnaBridge 171:3a7713b1edbc 165 #endif /* BOARD_HAS_SPIFLASH */
AnnaBridge 171:3a7713b1edbc 166
AnnaBridge 171:3a7713b1edbc 167 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 168 ** Main_BoardNvErase()
AnnaBridge 171:3a7713b1edbc 169 **
AnnaBridge 171:3a7713b1edbc 170 ** DESCRIPTION: Called to erase NV data.
AnnaBridge 171:3a7713b1edbc 171 **
AnnaBridge 171:3a7713b1edbc 172 ** RETURNS: 0 or error (if not 0)
AnnaBridge 171:3a7713b1edbc 173 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 174 #ifdef BOARD_HAS_SPIFLASH
AnnaBridge 171:3a7713b1edbc 175 int32_t Main_BoardNvErase(void);
AnnaBridge 171:3a7713b1edbc 176 #endif /* BOARD_HAS_SPIFLASH */
AnnaBridge 171:3a7713b1edbc 177
AnnaBridge 171:3a7713b1edbc 178 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 179 ** Main_BoardSettingsInit()
AnnaBridge 171:3a7713b1edbc 180 **
AnnaBridge 171:3a7713b1edbc 181 ** DESCRIPTION: Initialize settings stored in a host blob in the NV data.
AnnaBridge 171:3a7713b1edbc 182 **
AnnaBridge 171:3a7713b1edbc 183 ** RETURNS: 0 or error (if not 0)
AnnaBridge 171:3a7713b1edbc 184 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 185 #ifdef BOARD_HAS_SPIFLASH
AnnaBridge 171:3a7713b1edbc 186 int32_t Main_BoardSettingsInit(void);
AnnaBridge 171:3a7713b1edbc 187 #endif /* BOARD_HAS_SPIFLASH */
AnnaBridge 171:3a7713b1edbc 188
AnnaBridge 171:3a7713b1edbc 189 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 190 ** Main_BoardSettingsClear()
AnnaBridge 171:3a7713b1edbc 191 **
AnnaBridge 171:3a7713b1edbc 192 ** DESCRIPTION: Clear settings stored in a host blob in the NV data.
AnnaBridge 171:3a7713b1edbc 193 **
AnnaBridge 171:3a7713b1edbc 194 ** RETURNS: 0 or error (if not 0)
AnnaBridge 171:3a7713b1edbc 195 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 196 #ifdef BOARD_HAS_SPIFLASH
AnnaBridge 171:3a7713b1edbc 197 int32_t Main_BoardSettingsClear(void);
AnnaBridge 171:3a7713b1edbc 198 #endif /* BOARD_HAS_SPIFLASH */
AnnaBridge 171:3a7713b1edbc 199
AnnaBridge 171:3a7713b1edbc 200 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 201 ** Main_BoardSettingRead()
AnnaBridge 171:3a7713b1edbc 202 **
AnnaBridge 171:3a7713b1edbc 203 ** DESCRIPTION: Read a setting stored in a host blob in the NV data.
AnnaBridge 171:3a7713b1edbc 204 **
AnnaBridge 171:3a7713b1edbc 205 ** PARAMETERS: id ID of the setting
AnnaBridge 171:3a7713b1edbc 206 ** buf Pointer to buffer that will receive setting value
AnnaBridge 171:3a7713b1edbc 207 ** length Length of the buffer; if setting is longer, only this many bytes will be
AnnaBridge 171:3a7713b1edbc 208 ** stored
AnnaBridge 171:3a7713b1edbc 209 **
AnnaBridge 171:3a7713b1edbc 210 ** RETURNS: length of the setting or error (if less than or equal to zero)
AnnaBridge 171:3a7713b1edbc 211 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 212 #ifdef BOARD_HAS_SPIFLASH
AnnaBridge 171:3a7713b1edbc 213 int32_t Main_BoardSettingRead(uint8_t id, uint8_t *buf, uint8_t length);
AnnaBridge 171:3a7713b1edbc 214 #endif /* BOARD_HAS_SPIFLASH */
AnnaBridge 171:3a7713b1edbc 215
AnnaBridge 171:3a7713b1edbc 216 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 217 ** Main_BoardSettingWrite()
AnnaBridge 171:3a7713b1edbc 218 **
AnnaBridge 171:3a7713b1edbc 219 ** DESCRIPTION: Write a setting stored in a host blob in the NV data.
AnnaBridge 171:3a7713b1edbc 220 **
AnnaBridge 171:3a7713b1edbc 221 ** PARAMETERS: id ID of the setting
AnnaBridge 171:3a7713b1edbc 222 ** buf Pointer to buffer with setting value
AnnaBridge 171:3a7713b1edbc 223 ** length Length of the buffer; if setting is longer, only this many bytes will be
AnnaBridge 171:3a7713b1edbc 224 ** read
AnnaBridge 171:3a7713b1edbc 225 **
AnnaBridge 171:3a7713b1edbc 226 ** RETURNS: length of the setting or error (if less than or equal to zero)
AnnaBridge 171:3a7713b1edbc 227 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 228 #ifdef BOARD_HAS_SPIFLASH
AnnaBridge 171:3a7713b1edbc 229 int32_t Main_BoardSettingWrite(uint8_t id, const uint8_t *buf, uint8_t length);
AnnaBridge 171:3a7713b1edbc 230 #endif /* BOARD_HAS_SPIFLASH */
AnnaBridge 171:3a7713b1edbc 231
AnnaBridge 171:3a7713b1edbc 232 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 233 ** Main_BoardSetPmuFeature()
AnnaBridge 171:3a7713b1edbc 234 **
AnnaBridge 171:3a7713b1edbc 235 ** DESCRIPTION: Set PMU feature of MCU.
AnnaBridge 171:3a7713b1edbc 236 **
AnnaBridge 171:3a7713b1edbc 237 ** PARAMETERS: req Requested feature(s).
AnnaBridge 171:3a7713b1edbc 238 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 239 void Main_BoardSetPmuFeature(uint8_t req);
AnnaBridge 171:3a7713b1edbc 240
AnnaBridge 171:3a7713b1edbc 241 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 242 ** Main_BoardGetPmuFeature()
AnnaBridge 171:3a7713b1edbc 243 **
AnnaBridge 171:3a7713b1edbc 244 ** DESCRIPTION: Get PMU feature of MCU.
AnnaBridge 171:3a7713b1edbc 245 **
AnnaBridge 171:3a7713b1edbc 246 ** RETURNS: Requested feature(s).
AnnaBridge 171:3a7713b1edbc 247 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 248 uint8_t Main_BoardGetPmuFeature(void);
AnnaBridge 171:3a7713b1edbc 249
AnnaBridge 171:3a7713b1edbc 250 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 251 ** Main_BoardSetMuxMode()
AnnaBridge 171:3a7713b1edbc 252 **
AnnaBridge 171:3a7713b1edbc 253 ** DESCRIPTION: Set MUX mode of MCU.
AnnaBridge 171:3a7713b1edbc 254 **
AnnaBridge 171:3a7713b1edbc 255 ** PARAMETERS: mode Mode to set
AnnaBridge 171:3a7713b1edbc 256 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 257 void Main_BoardSetMuxMode(uint8_t mode);
AnnaBridge 171:3a7713b1edbc 258
AnnaBridge 171:3a7713b1edbc 259 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 260 ** Main_BoardWakeLockInc()
AnnaBridge 171:3a7713b1edbc 261 **
AnnaBridge 171:3a7713b1edbc 262 ** DESCRIPTION: Increment counter to keep MCU from entering deep sleep.
AnnaBridge 171:3a7713b1edbc 263 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 264 void Main_BoardWakeLockInc(void);
AnnaBridge 171:3a7713b1edbc 265
AnnaBridge 171:3a7713b1edbc 266 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 267 ** Main_BoardWakeLockDec()
AnnaBridge 171:3a7713b1edbc 268 **
AnnaBridge 171:3a7713b1edbc 269 ** DESCRIPTION: Decrement counter to allow MCU to enter deep sleep.
AnnaBridge 171:3a7713b1edbc 270 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 271 void Main_BoardWakeLockDec(void);
AnnaBridge 171:3a7713b1edbc 272
AnnaBridge 171:3a7713b1edbc 273 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 274 ** Main_Board32kTimerSleep()
AnnaBridge 171:3a7713b1edbc 275 **
AnnaBridge 171:3a7713b1edbc 276 ** DESCRIPTION: Deep sleep for a certain number of ticks of the 32k timer.
AnnaBridge 171:3a7713b1edbc 277 **
AnnaBridge 171:3a7713b1edbc 278 ** PARAMETERS: ticks Number of ticks to sleep; 0 to sleep forever
AnnaBridge 171:3a7713b1edbc 279 ** deep TRUE if sleep should be deep sleep
AnnaBridge 171:3a7713b1edbc 280 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 281 void Main_Board32kTimerSleep(uint32_t ticks, bool_t deep);
AnnaBridge 171:3a7713b1edbc 282
AnnaBridge 171:3a7713b1edbc 283 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 284 ** Main_Board32kTimerRead()
AnnaBridge 171:3a7713b1edbc 285 **
AnnaBridge 171:3a7713b1edbc 286 ** DESCRIPTION: Read the 32k timer.
AnnaBridge 171:3a7713b1edbc 287 **
AnnaBridge 171:3a7713b1edbc 288 ** Returns: The timer value
AnnaBridge 171:3a7713b1edbc 289 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 290 uint32_t Main_Board32kTimerRead(void);
AnnaBridge 171:3a7713b1edbc 291
AnnaBridge 171:3a7713b1edbc 292 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 293 ** Main_BoardSetWakeupCallback()
AnnaBridge 171:3a7713b1edbc 294 **
AnnaBridge 171:3a7713b1edbc 295 ** DESCRIPTION: Set callback for wakeup interrupt.
AnnaBridge 171:3a7713b1edbc 296 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 297 #ifdef BOARD_HAS_WAKEUP
AnnaBridge 171:3a7713b1edbc 298 void Main_BoardSetWakeupCback(void (*wakeupCback)(void));
AnnaBridge 171:3a7713b1edbc 299 #endif
AnnaBridge 171:3a7713b1edbc 300
AnnaBridge 171:3a7713b1edbc 301 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 302 ** Main_BoardWatchdogTimeout()
AnnaBridge 171:3a7713b1edbc 303 **
AnnaBridge 171:3a7713b1edbc 304 ** DESCRIPTION: Set watchdog to expire in certain number of milliseconds, after which the processor
AnnaBridge 171:3a7713b1edbc 305 ** will reset.
AnnaBridge 171:3a7713b1edbc 306 **
AnnaBridge 171:3a7713b1edbc 307 ** PARAMETERS: to_ms Milliseconds before timeout; 0 to timeout immediately
AnnaBridge 171:3a7713b1edbc 308 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 309 void Main_BoardWatchdogTimeout(uint16_t to_ms);
AnnaBridge 171:3a7713b1edbc 310
AnnaBridge 171:3a7713b1edbc 311 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 312 ** Main_BoardWatchdogCancel()
AnnaBridge 171:3a7713b1edbc 313 **
AnnaBridge 171:3a7713b1edbc 314 ** DESCRIPTION: Cancel watchdog timeout, so that the processor will not reset if it expires.
AnnaBridge 171:3a7713b1edbc 315 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 316 void Main_BoardWatchdogCancel(void);
AnnaBridge 171:3a7713b1edbc 317
AnnaBridge 171:3a7713b1edbc 318 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 319 ** Main_BoardGpioSet()
AnnaBridge 171:3a7713b1edbc 320 **
AnnaBridge 171:3a7713b1edbc 321 ** DESCRIPTION: Set GPIO output.
AnnaBridge 171:3a7713b1edbc 322 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 323 #ifdef BOARD_HAS_GPIO_OUTPUTS
AnnaBridge 171:3a7713b1edbc 324 void Main_BoardGpioSet(uint8_t num);
AnnaBridge 171:3a7713b1edbc 325 #endif
AnnaBridge 171:3a7713b1edbc 326
AnnaBridge 171:3a7713b1edbc 327 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 328 ** Main_BoardGpioClr()
AnnaBridge 171:3a7713b1edbc 329 **
AnnaBridge 171:3a7713b1edbc 330 ** DESCRIPTION: Clear GPIO output.
AnnaBridge 171:3a7713b1edbc 331 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 332 #ifdef BOARD_HAS_GPIO_OUTPUTS
AnnaBridge 171:3a7713b1edbc 333 void Main_BoardGpioClr(uint8_t num);
AnnaBridge 171:3a7713b1edbc 334 #endif
AnnaBridge 171:3a7713b1edbc 335
AnnaBridge 171:3a7713b1edbc 336 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 337 ** Main_BoardGpioToggle()
AnnaBridge 171:3a7713b1edbc 338 **
AnnaBridge 171:3a7713b1edbc 339 ** DESCRIPTION: Toggle GPIO output.
AnnaBridge 171:3a7713b1edbc 340 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 341 #ifdef BOARD_HAS_GPIO_OUTPUTS
AnnaBridge 171:3a7713b1edbc 342 void Main_BoardGpioToggle(uint8_t num);
AnnaBridge 171:3a7713b1edbc 343 #endif
AnnaBridge 171:3a7713b1edbc 344
AnnaBridge 171:3a7713b1edbc 345 /*--------------------------------------------------------------------------------------------------
AnnaBridge 171:3a7713b1edbc 346 ** Main_BoardDelayUsec()
AnnaBridge 171:3a7713b1edbc 347 **
AnnaBridge 171:3a7713b1edbc 348 ** DESCRIPTION: Delay for a certain time, in microseconds.
AnnaBridge 171:3a7713b1edbc 349 **
AnnaBridge 171:3a7713b1edbc 350 ** PARAMETERS: delay_us Microseconds to delay.
AnnaBridge 171:3a7713b1edbc 351 **------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 352 void Main_BoardDelayUsec(uint32_t delay_us);
AnnaBridge 171:3a7713b1edbc 353
AnnaBridge 171:3a7713b1edbc 354 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 355 }
AnnaBridge 171:3a7713b1edbc 356 #endif
AnnaBridge 171:3a7713b1edbc 357
AnnaBridge 171:3a7713b1edbc 358 #endif /* __MAIN_BOARD_H */