annotate Small_CPU/Inc/scheduler.h @ 217:ce05c801b002 Improve_IPC_Sync

Moved display refresh and button action function from tim callback to main loop The update of the display, especially for log book pages, may take some time causing problem because the execution of other functions (like SPI) was shifted => SPI errors.
author ideenmodellierer
date Sun, 31 Mar 2019 15:39:44 +0200
parents b95741467355
children e524a824d8f2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1 /**
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
2 ******************************************************************************
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
3 * @file scheduler.h
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
4 * @author heinrichs weikamp gmbh
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
5 * @version V0.0.5
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
6 * @date 27-March-2014
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
7 * @brief
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
8 *
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
9 ******************************************************************************
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
10 * @attention
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
11 *
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
12 * <h2><center>&copy; COPYRIGHT(c) 2015 heinrichs weikamp</center></h2>
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
13 *
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
14 ******************************************************************************
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
15 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
16
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
17
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
18 #ifndef SCHEDULER_H
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
19 #define SCHEDULER_H
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
20
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
21 #ifdef __cplusplus
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
22 extern "C" {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
23 #endif
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
24
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
25
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
26 /* Includes ------------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
27 #include "data_central.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
28 #include "data_exchange.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
29 #include "settings.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
30
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
31 /* Types -------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
32 #define SENSOR_PRESSURE_ID 0
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
33 #define MAX_SENSORS 1
181
331882a89421 Removed not suppoted wireless feature
ideenmodellierer
parents: 148
diff changeset
34
207
b95741467355 Introduce scheduler function
ideenmodellierer
parents: 181
diff changeset
35 #define SPI_SYNC_METHOD_NONE (0u)
b95741467355 Introduce scheduler function
ideenmodellierer
parents: 181
diff changeset
36 #define SPI_SYNC_METHOD_HARD (1u) /* Scheduler shall reset all counters to 0 */
b95741467355 Introduce scheduler function
ideenmodellierer
parents: 181
diff changeset
37 #define SPI_SYNC_METHOD_SOFT (2u) /* Scheduler shall reset adjust counters to 100ms SPI data exchange cycle */
b95741467355 Introduce scheduler function
ideenmodellierer
parents: 181
diff changeset
38 #define SPI_SYNC_METHOD_INVALID (4u)
b95741467355 Introduce scheduler function
ideenmodellierer
parents: 181
diff changeset
39
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
40 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
41 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
42 uint8_t mode;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
43 short conservatism;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
44 short repetitive_dive;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
45 long seconds_since_last_dive;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
46 long no_fly_time_minutes;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
47 uint8_t whichGas;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
48 SGas aktualGas[2];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
49 float ceiling_from_main_CPU_mbar;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
50 SLifeData lifeData;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
51 SVpm vpm;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
52 SSettings settings;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
53 SDevice deviceData;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
54 SDataExchangeSlaveToMasterDeviceData deviceDataSendToMaster;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
55 SDataExchangeSlaveToMaster dataSendToMaster;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
56 SDataReceiveFromMaster dataSendToSlave;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
57 _Bool demo_mode;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
58 uint8_t dataSendToSlaveIsValid;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
59 uint8_t dataSendToSlavePending;
88
Dmitry Romanov <kitt@bk.ru>
parents: 84
diff changeset
60 uint8_t dataSendToSlaveStopEval;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
61 uint32_t sync_error_count;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
62 uint32_t check_sync_not_running;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
63 uint8_t ButtonResponsiveness[4];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
64 uint8_t chargerStatus;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
65 uint8_t dataSendToSlaveIsNotValidCount;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
66 uint8_t ButtonPICdata[4];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
67 uint8_t accidentFlag;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
68 uint32_t accidentRemainingSeconds;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
69 uint8_t sensorError[MAX_SENSORS];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
70 uint8_t I2C_SystemStatus;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
71 } SGlobal;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
72
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
73 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
74 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
75 long seconds_since_last_dive;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
76 long no_fly_time_minutes;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
77 } SBackup;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
78
144
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
79 typedef struct
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
80 {
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
81 uint8_t counterSPIdata100msec;
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
82 uint8_t counterPressure100msec;
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
83 uint8_t counterCompass100msec;
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
84 uint8_t counterAmbientLight100msec;
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
85 uint32_t tickstart;
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
86 } SScheduleCtrl;
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
87
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
88
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
89 /* Variables ---------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
90 extern SGlobal global;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
91
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
92
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
93 /* Function prototypes -----------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
94
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
95 void initGlobals(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
96
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
97 void scheduleSurfaceMode(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
98 void scheduleDiveMode(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
99 void scheduleSleepMode(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
100 void scheduleCompassCalibrationMode(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
101 void scheduleTestMode(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
102
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
103 void scheduleUpdateLifeData(int32_t asynchron_milliseconds_since_last);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
104 void scheduleSpecial_Evaluate_DataSendToSlave(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
105 void scheduleUpdateDeviceDataChargerFull(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
106 void scheduleUpdateDeviceDataChargerCharging(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
107
207
b95741467355 Introduce scheduler function
ideenmodellierer
parents: 181
diff changeset
108 void Scheduler_Request_sync_with_SPI(uint8_t SyncMethod);
b95741467355 Introduce scheduler function
ideenmodellierer
parents: 181
diff changeset
109 void Scheduler_SyncToSPI(void);
b95741467355 Introduce scheduler function
ideenmodellierer
parents: 181
diff changeset
110
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
111 uint8_t scheduleSetButtonResponsiveness(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
112
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
113 void copyBatteryData(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
114
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
115 //void scheduleSurfaceMode_test(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
116 //void scheduleSleepMode_test(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
117
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
118 #ifdef __cplusplus
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
119 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
120 #endif
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
121
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
122 #endif /* SCHEDULER_H */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
123
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
124 /************************ (C) COPYRIGHT heinrichs weikamp *****END OF FILE****/