ClearCore Library
Loading...
Searching...
No Matches
SysManager.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2020 Teknic, Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 * SOFTWARE.
21 */
22
31#ifndef __SYSMANAGER_H__
32#define __SYSMANAGER_H__
33
34#include <stddef.h>
35#include <stdint.h>
36#include "Connector.h"
37#include "PeripheralRoute.h"
38#include "SysConnectors.h"
39
40#ifdef __cplusplus
41
47namespace ClearCore {
48
49#ifndef HIDE_FROM_DOXYGEN
50typedef void (*voidFuncPtr)(void);
51#endif
52
59
60public:
75
76#ifndef HIDE_FROM_DOXYGEN
80 SysManager();
81
85 void Initialize();
86
93 bool Ready() {
94 return m_readyForOperations;
95 }
96#endif
97
113
126
127#ifndef HIDE_FROM_DOXYGEN
128 // Ideally these would be private, but they need to be called from C
129 // interrupt handler functions that can't be friends without putting them
130 // in a namespace.
131 void SysTickUpdate();
132 void FastUpdate();
133#endif
134
135private:
137 bool m_readyForOperations;
138
142 void InitClocks();
143
147 void UpdateFastImpl();
148
152 void UpdateSlowImpl();
153
154}; // SysManager
155
156} // ClearCore namespace
157
158#endif // defined(__cplusplus)
159#endif // __SYSMANAGER_H__
Base class for all connector classes.
Defines the Peripheral Route structure, used in HardwareMapping.
ClearCorePins
ClearCore PIN definitions.
Definition SysConnectors.h:54
Base class for interacting with all ClearCore connector objects.
Definition Connector.h:62
ClearCore Board Supervisory System Manager.
Definition SysManager.h:58
void ResetBoard(ResetModes mode=RESET_NORMAL)
Resets the ClearCore.
Connector * ConnectorByIndex(ClearCorePins connectorIndex)
Pin-determined accessor for ClearCore Connector objects.
ResetModes
Reset modes for the ClearCore board.
Definition SysManager.h:65
@ RESET_NORMAL
Definition SysManager.h:69
@ RESET_TO_BOOTLOADER
Definition SysManager.h:73
Namespace to encompass the ClearCore board API.
Definition AdcManager.h:36
void(* voidFuncPtr)(void)
Definition DigitalIn.h:43