annotate Small_CPU/Src/baseCPU2.c @ 921:eb4109d7d1e9 Evo_2_23

Improved mix mode ADC conversion: Activity of UART sensors may have an impact to ADC measurement. To avoid the ADC trigger was moved into a time window ~300ms after last UART command request => After UART sensor performed measurement but before next measurement is requested. In addition the general ADC measurement cycle has been changed to one second to avoid jitter in the value updates on the display.
author Ideenmodellierer
date Sun, 03 Nov 2024 18:19:51 +0100
parents 0d6c4b40fae4
children 7c996354b8ac
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 * @copyright heinrichs weikamp
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
4 * @file base.c including main()
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
5 * @author heinrichs weikamp gmbh
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
6 * @date 15-Aug-2014
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
7 * @version V1.0.3
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
8 * @since 21-Nov-2014
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
9 * @brief The beginning of it all. main() is part of this.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
10 * + Do the inits for hardware
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
11 * + Do the inits for sub-systems like menu, dive screen etc.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
12 * + Start IRQs
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
13 * + Start MainTasks not in IRQs
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
14 * @bug
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
15 * @warning
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
16 @verbatim
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
17 ==============================================================================
286
733877ab87d9 Minor: Some Texts fixed, allign RTErequired* values with RTE firmware
heinrichsweikamp
parents: 280
diff changeset
18 ##### What about hardware without 8 MHz oscillator #####
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
19 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
20 [..] modify OTP Byte 1 at 0x1FFF7800 with ST-Link utility
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
21
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
22 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
23 ##### Where is the RTE Firmware version #####
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
24 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
25 [..] in baseCPU2.c <just here below :->
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
26
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
27 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
28 ##### What to do with the RTE Firmware version #####
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
29 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
30 [..] change the values RTErequiredHigh and RTErequiredLow in settings.c
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
31 to start warning via the firmware if not updated
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
32
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
33 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
34 ##### What it does #####
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
35 ==============================================================================
286
733877ab87d9 Minor: Some Texts fixed, allign RTErequired* values with RTE firmware
heinrichsweikamp
parents: 280
diff changeset
36 [..] All realtime stuff and all what has to be done during sleep
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
37
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
38 [..] RealTimeClock. The entire time and date handling (including divetime)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
39 [..] Hardware control for pressure sensor, compass, battery monitor
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
40 [..] Calculations of tissue load, critical radius, otu, cns
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
41 [..] Switching off the power of the main CPU after request from it.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
42
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
43 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
44 ##### IRQs #####
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
45 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
46 [..] The IRQs are are only used for SystemTick and SPI TransferComplete after
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
47 DMA data reception.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
48
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
49 [..] HAL_SPI_TxRxCpltCallback() restarts DMA and will call
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
50 scheduleSpecial_Evaluate_DataSendToSlave() only if it is not blocked
239
e4207f0aaa4b cleanup: factor out dataSendToSlaveStopEval
Jan Mulder <jlmulder@xs4all.nl>
parents: 207
diff changeset
51 by I2C.
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
52 If the evaluation is blocked it has to be tested and executed afterwards.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
53 I2C is executed _without_ the usage of interrupts.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
54
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
55 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
56 ##### Main loop #####
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
57 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
58 [..] is a combination of the while loop below in main.c and code in scheduler.c
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
59 It is similar to the DR5 code / logic - in contrast to the main CPU
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
60 Switching the state is done via global.mode
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
61 The loops in scheduler all run in the main execution thread without
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
62 any job stacks (like it was in the DR5).
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
63
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
64 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
65 ##### Real Time Clock #####
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
66 ==============================================================================
286
733877ab87d9 Minor: Some Texts fixed, allign RTErequired* values with RTE firmware
heinrichsweikamp
parents: 280
diff changeset
67 The RTC is a separate part of hardware inside the CPU and is not affected
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
68 by reset. Only power-on reset does change something.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
69 This is fine but the RTC is vital for the Sleep mode as Wakeuptimer.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
70 This is the only date/time system in the OSTC. The main CPU is passive.
286
733877ab87d9 Minor: Some Texts fixed, allign RTErequired* values with RTE firmware
heinrichsweikamp
parents: 280
diff changeset
71 Data transfer is done with localtime_rtc_tr and localtime_rtc_dr
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
72 in HAL_RTC format to the main CPU and as HAL_RTC structs the way back for
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
73 setting the actual time and date.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
74 The RTC unit has 20 Byte of V_bat powered SRAM. It could be used
286
733877ab87d9 Minor: Some Texts fixed, allign RTErequired* values with RTE firmware
heinrichsweikamp
parents: 280
diff changeset
75 for something useful in both CPUs.
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
76
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
77 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
78 ##### File system #####
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
79 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
80 [..] some files are used for both CPUs, like decom.c/.h, data_central.h, ...
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
81
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
82
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
83 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
84 ##### Unique device ID register (96 bits) #####
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
85 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
86 [..] some files are used for both CPUs, like decom.c/.h, data_central.h, ...
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
87
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
88
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
89 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
90 ##### I2C #####
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
91 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
92 [..] used for pressure, compass, (accelerator) and battery gauge
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
93 main cpu and pic (button) is spi
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
94
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
95
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
96 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
97 ##### Firmware Update Info #####
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
98 ==============================================================================
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
99 V0.85 160531 scheduleCheck_pressure_reached_dive_mode_level() changes
286
733877ab87d9 Minor: Some Texts fixed, allign RTErequired* values with RTE firmware
heinrichsweikamp
parents: 280
diff changeset
100 160606 global.no_fly_time_minutes is at least 24h after the dive
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
101 160613 ambient light fixed
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
102 160720 compass calib to Flash (8000 writes max. as erase has problems)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
103 160829 do not reset main CPU on power on!
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
104 V0.91 161018 pressure_calculation_AN520_004_mod_MS5803_30BA__09_2015();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
105 V0.92+ 161020 global.sensorError[MAX_SENSORS]
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
106 fix missing init_pressure(); at powerUp of RTE
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
107 added HAL_StatusTypeDef for many functions in pressure.c
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
108 161024 no_fly_time_minutes Backup FIX
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
109 seconds_since_last_dive now related to RTC clock
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
110 161121 close to surface starts at 1 meter below last known surface pressure
286
733877ab87d9 Minor: Some Texts fixed, allign RTErequired* values with RTE firmware
heinrichsweikamp
parents: 280
diff changeset
111 161121 in surface mode dive mode starts @1 mtr difference if surface 880 hPa instead of 700 hPa before
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
112 V0.97+ 170213 added global.dataSendToSlave.diveModeInfo for DIVEMODE_Apnea
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
113 added global.dataSendToSlave.setEndDive
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
114 DIVEMODE_Apnea special in scheduler.c (ticksdiff >= 1000) -> no tissue, cns, otu, no change in noFly Time etc.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
115 V0.99 170320 new HAL Driver Repository
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
116 V1.01 170509 old HAL Driver Repository
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
117
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
118 @endverbatim
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
119 ******************************************************************************
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
120 * @attention
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
121 *
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
122 * <h2><center>&copy; COPYRIGHT(c) 2017 heinrichs weikamp</center></h2>
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
123 *
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
124 ******************************************************************************
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
125 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
126
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
127 //#define DEBUG_PIN_ACTIVE
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
128 /* Includes ------------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
129
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
130 #include "baseCPU2.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
131
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
132 // From Small_CPU/Inc:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
133 #include "dma.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
134 #include "i2c.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
135 #include "spi.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
136 #include "rtc.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
137 #include "adc.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
138 #include "compass.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
139 #include "pressure.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
140 #include "batteryGasGauge.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
141 #include "batteryCharger.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
142 #include "scheduler.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
143 #include "tm_stm32f4_otp.h"
554
3328189786e7 Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents: 533
diff changeset
144 #include "externalInterface.h"
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
145 #include "uart.h"
889
cf3967fe6924 GNSS work in progress
heinrichsweikamp
parents: 887
diff changeset
146 #include "GNSS.h"
cf3967fe6924 GNSS work in progress
heinrichsweikamp
parents: 887
diff changeset
147
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
148
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
149 // From Common/Inc:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
150 #include "calc_crush.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
151 #include "decom.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
152 #include "FirmwareData.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
153
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
154 // From Common/Drivers/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
155 #include <stdio.h>
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
156
889
cf3967fe6924 GNSS work in progress
heinrichsweikamp
parents: 887
diff changeset
157
433
aa286a4926c2 Detect startup after power off:
ideenmodellierer
parents: 417
diff changeset
158 uint8_t coldstart __attribute__((section (".noinit")));
aa286a4926c2 Detect startup after power off:
ideenmodellierer
parents: 417
diff changeset
159
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
160 uint8_t hasExternalClock(void) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
161 if ((TM_OTP_Read(0, 0) > 0) && (TM_OTP_Read(0, 0) < 0xFF))
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
162 return 1;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
163 else
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
164 return 0;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
165 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
166
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
167 // SHALL LOAD AT 0x08000000 + 0x00005000 = 0x08005000.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
168 // See CPU2-RTE.ld
100
b364c75005bb Stable.fix.
Dmitry Romanov <kitt@bk.ru>
parents: 90
diff changeset
169 const SFirmwareData cpu2_FirmwareData __attribute__(( section(".firmware_data") ))= {
728
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 713
diff changeset
170 .versionFirst = 3,
899
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents: 890
diff changeset
171 .versionSecond = 4,
762
32529dfea3b0 Preparing a 1.6.2 release candidate
heinrichsweikamp
parents: 738
diff changeset
172 .versionThird = 0,
843
2cab242c9a4a Update version number and set beta state
Ideenmodellierer
parents: 839
diff changeset
173 .versionBeta = 1,
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
174
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
175 /* 4 bytes with trailing 0 */
100
b364c75005bb Stable.fix.
Dmitry Romanov <kitt@bk.ru>
parents: 90
diff changeset
176 .signature = "mh",
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
177
762
32529dfea3b0 Preparing a 1.6.2 release candidate
heinrichsweikamp
parents: 738
diff changeset
178 .release_year = 23,
818
40e951cfa443 1.6.4 release
heinrichsweikamp
parents: 801
diff changeset
179 .release_month = 9,
40e951cfa443 1.6.4 release
heinrichsweikamp
parents: 801
diff changeset
180 .release_day = 14,
100
b364c75005bb Stable.fix.
Dmitry Romanov <kitt@bk.ru>
parents: 90
diff changeset
181 .release_sub = 0,
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
182
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
183 /* max 48 with trailing 0 */
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
184 //release_info ="12345678901234567890123456789012345678901"
768
dfdfea8897f3 1.6.2 release
heinrichsweikamp
parents: 763
diff changeset
185 .release_info = "stable April 2023",
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
186
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
187 /* for safety reasons and coming functions */
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
188 .magic[0] = FIRMWARE_MAGIC_FIRST, .magic[1] = FIRMWARE_MAGIC_SECOND,
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
189 .magic[2] = FIRMWARE_MAGIC_CPU2_RTE, /* the magic byte for RTE */
433
aa286a4926c2 Detect startup after power off:
ideenmodellierer
parents: 417
diff changeset
190 .magic[3] = FIRMWARE_MAGIC_END
aa286a4926c2 Detect startup after power off:
ideenmodellierer
parents: 417
diff changeset
191 };
aa286a4926c2 Detect startup after power off:
ideenmodellierer
parents: 417
diff changeset
192
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
193
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
194 uint8_t firmwareVersionHigh(void) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
195 return cpu2_FirmwareData.versionFirst;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
196 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
197
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
198 uint8_t firmwareVersionLow(void) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
199 return cpu2_FirmwareData.versionSecond;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
200 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
201
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
202 /** @addtogroup OSTC4
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
203 * @{
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
204 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
205
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
206 /** @addtogroup CPU2
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
207 * @{
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
208 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
209
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
210 /* Private typedef -----------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
211 /* Private define ------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
212 #define BUTTON_OSTC_GPIO_PIN GPIO_PIN_0
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
213 #define BUTTON_OSTC_GPIO_PORT GPIOA
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
214 #define BUTTON_OSTC_HAL_RCC_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
215 #define BUTTON_OSTC_IRQn EXTI0_IRQn
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
216
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
217 #define VIBRATION_CONTROL_PIN GPIO_PIN_3 /* PortA */
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
218 #define LED_CONTROL_PIN_RED GPIO_PIN_2 /* PortA */
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
219 #define LED_CONTROL_PIN_GREEN GPIO_PIN_1 /* PortA */
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
220 #define MAINCPU_CONTROL_PIN GPIO_PIN_0 /* PortC */
887
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
221 #define GPS_POWER_CONTROL_PIN GPIO_PIN_15 /* PortB */
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
222 #define GPS_BCKP_CONTROL_PIN GPIO_PIN_14 /* PortB */
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
223
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
224 /* Private macro -------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
225
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
226 /* Private variables ---------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
227 uint32_t global_test_time_counter = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
228 SBackup backup;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
229
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
230 /* Private function prototypes -----------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
231 static void EXTI_Wakeup_Button_Init(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
232 static void EXTI_Wakeup_Button_DeInit(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
233
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
234 static void GPIO_LEDs_VIBRATION_Init(void);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
235 static void GPIO_Power_MainCPU_Init(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
236 static void GPIO_Power_MainCPU_ON(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
237 static void GPIO_Power_MainCPU_OFF(void);
903
0f2e5a166d40 Disable GNSS operations using compile switch:
Ideenmodellierer
parents: 900
diff changeset
238 #ifdef ENABLE_GNSS
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
239 static void GPIO_LED_RED_OFF(void);
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
240 static void GPIO_LED_RED_ON(void);
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
241 static void GPIO_LED_GREEN_OFF(void);
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
242 static void GPIO_LED_GREEN_ON(void);
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
243 static void GPIO_VIBRATION_OFF(void);
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
244 static void GPIO_VIBRATION_ON(void);
887
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
245 static void GPIO_GPS_OFF(void);
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
246 static void GPIO_GPS_ON(void);
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
247 static void GPIO_GPS_BCKP_OFF(void);
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
248 static void GPIO_GPS_BCKP_ON(void);
903
0f2e5a166d40 Disable GNSS operations using compile switch:
Ideenmodellierer
parents: 900
diff changeset
249 #endif
183
9baecc0c24b2 Cleanup compiler warnings
ideenmodellierer
parents: 181
diff changeset
250 #ifdef DEBUG_I2C_LINES
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
251 void GPIO_test_I2C_lines(void);
183
9baecc0c24b2 Cleanup compiler warnings
ideenmodellierer
parents: 181
diff changeset
252 #endif
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
253
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
254 void sleep_prepare(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
255
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
256 void SystemClock_Config(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
257 void SystemClock_Config_HSI(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
258 void SystemClock_Config_HSE(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
259 void SYSCLKConfig_STOP_HSI(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
260 void SYSCLKConfig_STOP_HSE(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
261
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
262 void GPIO_new_DEBUG_Init(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
263 void GPIO_new_DEBUG_LOW(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
264 void GPIO_new_DEBUG_HIGH(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
265
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
266 #define REGULAR_RUN
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
267
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
268 int __io_putchar(int ch) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
269 ITM_SendChar(ch);
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
270 return ch;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
271 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
272
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
273 /* Private functions ---------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
274
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
275 /**
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
276 * @brief Main program
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
277 * @param None
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
278 * @retval None
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
279 */
120
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
280 /* #define DEBUG_RUNTIME TRUE */
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
281 #ifdef DEBUG_RUNTIME
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
282 #define MEASURECNT 60 /* number of measuremets to be stored */
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
283 static uint32_t loopcnt[MEASURECNT];
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
284 extern RTC_HandleTypeDef RTCHandle;
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
285 #endif
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
286
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
287 int main(void) {
120
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
288
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
289 #ifdef DEBUG_RUNTIME
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
290 RTC_TimeTypeDef Stime;
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
291 uint8_t measurementindex = 0;
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
292 uint8_t lastsecond = 0xFF;
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
293 #endif
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
294
917
0d6c4b40fae4 Bugfix external interface power up after sleep:
Ideenmodellierer
parents: 909
diff changeset
295 uint8_t extInterfaceActive = 0;
0d6c4b40fae4 Bugfix external interface power up after sleep:
Ideenmodellierer
parents: 909
diff changeset
296
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
297 HAL_Init();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
298 SystemClock_Config();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
299
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
300 HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq() / 1000);
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
301 HAL_SYSTICK_CLKSourceConfig( SYSTICK_CLKSOURCE_HCLK);
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
302 HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
303
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
304 MX_RTC_init();
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
305 GPIO_LEDs_VIBRATION_Init();
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
306 GPIO_new_DEBUG_Init(); // added 170322 hw
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
307 initGlobals();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
308
120
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
309 /* printf("CPU2-RTE running...\n"); */
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
310
329
da5b91b1e20e Improved startup robustness
ideenmodellierer
parents: 324
diff changeset
311 HAL_Delay(100);
da5b91b1e20e Improved startup robustness
ideenmodellierer
parents: 324
diff changeset
312
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
313 MX_I2C1_Init();
329
da5b91b1e20e Improved startup robustness
ideenmodellierer
parents: 324
diff changeset
314 if (global.I2C_SystemStatus != HAL_OK)
da5b91b1e20e Improved startup robustness
ideenmodellierer
parents: 324
diff changeset
315 {
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
316 if (MX_I2C1_TestAndClear() == GPIO_PIN_RESET) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
317 MX_I2C1_TestAndClear(); // do it a second time
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
318 }
488
9eeab3fead8f Added "I2C_DeInit();" in hardware detection routines. It's the recommended way
heinrichsweikamp
parents: 473
diff changeset
319 HAL_Delay(100);
9eeab3fead8f Added "I2C_DeInit();" in hardware detection routines. It's the recommended way
heinrichsweikamp
parents: 473
diff changeset
320 I2C_DeInit();
9eeab3fead8f Added "I2C_DeInit();" in hardware detection routines. It's the recommended way
heinrichsweikamp
parents: 473
diff changeset
321 HAL_Delay(100);
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
322 MX_I2C1_Init();
488
9eeab3fead8f Added "I2C_DeInit();" in hardware detection routines. It's the recommended way
heinrichsweikamp
parents: 473
diff changeset
323 HAL_Delay(100);
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
324 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
325
329
da5b91b1e20e Improved startup robustness
ideenmodellierer
parents: 324
diff changeset
326
da5b91b1e20e Improved startup robustness
ideenmodellierer
parents: 324
diff changeset
327
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
328 //dangerous: TM_OTP_Write(0,0, 0x01);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
329 #ifdef REGULAR_RUN
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
330 global.sensorError[SENSOR_PRESSURE_ID] = init_pressure();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
331 global.I2C_SystemStatus = global.sensorError[SENSOR_PRESSURE_ID];
329
da5b91b1e20e Improved startup robustness
ideenmodellierer
parents: 324
diff changeset
332 if (global.I2C_SystemStatus != HAL_OK)
da5b91b1e20e Improved startup robustness
ideenmodellierer
parents: 324
diff changeset
333 {
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
334 if (MX_I2C1_TestAndClear() == GPIO_PIN_RESET) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
335 MX_I2C1_TestAndClear(); // do it a second time
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
336 }
488
9eeab3fead8f Added "I2C_DeInit();" in hardware detection routines. It's the recommended way
heinrichsweikamp
parents: 473
diff changeset
337 HAL_Delay(100);
9eeab3fead8f Added "I2C_DeInit();" in hardware detection routines. It's the recommended way
heinrichsweikamp
parents: 473
diff changeset
338 I2C_DeInit();
9eeab3fead8f Added "I2C_DeInit();" in hardware detection routines. It's the recommended way
heinrichsweikamp
parents: 473
diff changeset
339 HAL_Delay(100);
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
340 MX_I2C1_Init();
488
9eeab3fead8f Added "I2C_DeInit();" in hardware detection routines. It's the recommended way
heinrichsweikamp
parents: 473
diff changeset
341 HAL_Delay(100);
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
342 global.sensorError[SENSOR_PRESSURE_ID] = init_pressure();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
343 global.I2C_SystemStatus = global.sensorError[SENSOR_PRESSURE_ID];
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
344 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
345
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
346 global.dataSendToMaster.sensorErrors =
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
347 global.sensorError[SENSOR_PRESSURE_ID];
329
da5b91b1e20e Improved startup robustness
ideenmodellierer
parents: 324
diff changeset
348
da5b91b1e20e Improved startup robustness
ideenmodellierer
parents: 324
diff changeset
349 if(is_init_pressure_done())
da5b91b1e20e Improved startup robustness
ideenmodellierer
parents: 324
diff changeset
350 {
339
37f45300bc2e Apply averaging to pressure measurement: In pre versions calculated pressure value jittered +/-10hPa. Since we measure the pressure several time a second but only use one value a second, calc average including not used values
ideenmodellierer
parents: 334
diff changeset
351 init_surface_ring(0);
329
da5b91b1e20e Improved startup robustness
ideenmodellierer
parents: 324
diff changeset
352 }
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
353 init_battery_gas_gauge();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
354 HAL_Delay(10);
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
355 battery_gas_gauge_get_data();
473
edfc1a464b42 Do not signal power on reset in case of a "warm" reset:
ideenmodellierer
parents: 439
diff changeset
356
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
357 global.lifeData.battery_voltage = get_voltage();
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
358 global.lifeData.battery_charge = get_charge();
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
359 copyBatteryData();
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
360
473
edfc1a464b42 Do not signal power on reset in case of a "warm" reset:
ideenmodellierer
parents: 439
diff changeset
361 MX_SPI3_Init();
edfc1a464b42 Do not signal power on reset in case of a "warm" reset:
ideenmodellierer
parents: 439
diff changeset
362
edfc1a464b42 Do not signal power on reset in case of a "warm" reset:
ideenmodellierer
parents: 439
diff changeset
363 if(coldstart != 0xA5) /* Not reading a 0xA5 means the memory cells has not been initialized before => cold start */
433
aa286a4926c2 Detect startup after power off:
ideenmodellierer
parents: 417
diff changeset
364 {
aa286a4926c2 Detect startup after power off:
ideenmodellierer
parents: 417
diff changeset
365 coldstart = 0xA5;
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
366
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
367 set_charge_state(Charger_ColdStart);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
368
473
edfc1a464b42 Do not signal power on reset in case of a "warm" reset:
ideenmodellierer
parents: 439
diff changeset
369 global.dataSendToMaster.power_on_reset = 1;
edfc1a464b42 Do not signal power on reset in case of a "warm" reset:
ideenmodellierer
parents: 439
diff changeset
370 global.deviceDataSendToMaster.power_on_reset = 1;
edfc1a464b42 Do not signal power on reset in case of a "warm" reset:
ideenmodellierer
parents: 439
diff changeset
371
edfc1a464b42 Do not signal power on reset in case of a "warm" reset:
ideenmodellierer
parents: 439
diff changeset
372 if (!scheduleSetButtonResponsiveness())
edfc1a464b42 Do not signal power on reset in case of a "warm" reset:
ideenmodellierer
parents: 439
diff changeset
373 {
763
aa6006975e76 increase HAL_Delay to 10ms for cold-start-button reset
heinrichsweikamp
parents: 762
diff changeset
374 HAL_Delay(10);
473
edfc1a464b42 Do not signal power on reset in case of a "warm" reset:
ideenmodellierer
parents: 439
diff changeset
375 if (!scheduleSetButtonResponsiveness()) // send again, if problem it's not my problem here.
edfc1a464b42 Do not signal power on reset in case of a "warm" reset:
ideenmodellierer
parents: 439
diff changeset
376 {
763
aa6006975e76 increase HAL_Delay to 10ms for cold-start-button reset
heinrichsweikamp
parents: 762
diff changeset
377 HAL_Delay(10);
473
edfc1a464b42 Do not signal power on reset in case of a "warm" reset:
ideenmodellierer
parents: 439
diff changeset
378 scheduleSetButtonResponsiveness(); // init
763
aa6006975e76 increase HAL_Delay to 10ms for cold-start-button reset
heinrichsweikamp
parents: 762
diff changeset
379 HAL_Delay(10);
473
edfc1a464b42 Do not signal power on reset in case of a "warm" reset:
ideenmodellierer
parents: 439
diff changeset
380 }
edfc1a464b42 Do not signal power on reset in case of a "warm" reset:
ideenmodellierer
parents: 439
diff changeset
381 }
433
aa286a4926c2 Detect startup after power off:
ideenmodellierer
parents: 417
diff changeset
382 }
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
383 else
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
384 {
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
385 set_charge_state(Charger_NotConnected);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
386 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
387
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
388 ADCx_Init();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
389 GPIO_Power_MainCPU_Init();
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
390
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
391 externalInterface_InitPower33();
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
392
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
393 global.mode = MODE_POWERUP;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
394 #else
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
395 init_pressure();
339
37f45300bc2e Apply averaging to pressure measurement: In pre versions calculated pressure value jittered +/-10hPa. Since we measure the pressure several time a second but only use one value a second, calc average including not used values
ideenmodellierer
parents: 334
diff changeset
396 init_surface_ring(0);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
397
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
398 ADCx_Init();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
399 GPIO_Power_MainCPU_Init();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
400 global.mode = MODE_TEST;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
401 #endif
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
402 while (1) {
120
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
403 /* printf("Global mode = %d\n", global.mode); */
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
404
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
405 switch (global.mode) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
406 case MODE_POWERUP:
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
407 case MODE_BOOT:
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
408 // ReInit_battery_charger_status_pins();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
409 compass_init(0, 7);
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
410 accelerator_init();
554
3328189786e7 Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents: 533
diff changeset
411 externalInterface_Init();
181
331882a89421 Removed not suppoted wireless feature
ideenmodellierer
parents: 172
diff changeset
412
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
413 if (global.mode == MODE_BOOT) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
414 GPIO_Power_MainCPU_OFF();
903
0f2e5a166d40 Disable GNSS operations using compile switch:
Ideenmodellierer
parents: 900
diff changeset
415 #ifdef ENABLE_GNSS
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
416 GPIO_LED_GREEN_ON();
903
0f2e5a166d40 Disable GNSS operations using compile switch:
Ideenmodellierer
parents: 900
diff changeset
417 #endif
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
418 HAL_Delay(100); // for GPIO_Power_MainCPU_ON();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
419 GPIO_Power_MainCPU_ON();
903
0f2e5a166d40 Disable GNSS operations using compile switch:
Ideenmodellierer
parents: 900
diff changeset
420 #ifdef ENABLE_GNSS
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
421 GPIO_LED_GREEN_OFF();
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
422
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
423 GPIO_LED_RED_ON();
900
6a7701f66b16 minor: LED/Vibration behavior on wake-up
heinrichsweikamp
parents: 899
diff changeset
424 GPIO_VIBRATION_ON();
903
0f2e5a166d40 Disable GNSS operations using compile switch:
Ideenmodellierer
parents: 900
diff changeset
425 #endif
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
426 HAL_Delay(100);
903
0f2e5a166d40 Disable GNSS operations using compile switch:
Ideenmodellierer
parents: 900
diff changeset
427 #ifdef ENABLE_GNSS
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
428 GPIO_LED_RED_OFF();
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
429 GPIO_VIBRATION_OFF();
903
0f2e5a166d40 Disable GNSS operations using compile switch:
Ideenmodellierer
parents: 900
diff changeset
430 #endif
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
431 }
903
0f2e5a166d40 Disable GNSS operations using compile switch:
Ideenmodellierer
parents: 900
diff changeset
432 #ifdef ENABLE_GNSS
900
6a7701f66b16 minor: LED/Vibration behavior on wake-up
heinrichsweikamp
parents: 899
diff changeset
433 GPIO_LED_RED_OFF();
6a7701f66b16 minor: LED/Vibration behavior on wake-up
heinrichsweikamp
parents: 899
diff changeset
434 GPIO_LED_GREEN_OFF();
6a7701f66b16 minor: LED/Vibration behavior on wake-up
heinrichsweikamp
parents: 899
diff changeset
435 GPIO_VIBRATION_OFF();
903
0f2e5a166d40 Disable GNSS operations using compile switch:
Ideenmodellierer
parents: 900
diff changeset
436 #endif
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
437 SPI_synchronize_with_Master();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
438 MX_DMA_Init();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
439 MX_SPI1_Init();
134
0586ae83a243 Removed cyclic (by timer) send on slave side
Ideenmodellierer
parents: 120
diff changeset
440 SPI_Start_single_TxRx_with_Master(); /* be prepared for the first data exchange */
207
b95741467355 Introduce scheduler function
ideenmodellierer
parents: 183
diff changeset
441 Scheduler_Request_sync_with_SPI(SPI_SYNC_METHOD_HARD);
889
cf3967fe6924 GNSS work in progress
heinrichsweikamp
parents: 887
diff changeset
442
900
6a7701f66b16 minor: LED/Vibration behavior on wake-up
heinrichsweikamp
parents: 899
diff changeset
443 #ifdef ENABLE_GNSS
889
cf3967fe6924 GNSS work in progress
heinrichsweikamp
parents: 887
diff changeset
444 // GNSS tests
cf3967fe6924 GNSS work in progress
heinrichsweikamp
parents: 887
diff changeset
445 GNSS_IO_init();
900
6a7701f66b16 minor: LED/Vibration behavior on wake-up
heinrichsweikamp
parents: 899
diff changeset
446 GPIO_GPS_ON();
6a7701f66b16 minor: LED/Vibration behavior on wake-up
heinrichsweikamp
parents: 899
diff changeset
447 GPIO_GPS_BCKP_ON();
889
cf3967fe6924 GNSS work in progress
heinrichsweikamp
parents: 887
diff changeset
448 MX_USART6_UART_Init();
cf3967fe6924 GNSS work in progress
heinrichsweikamp
parents: 887
diff changeset
449 GNSS_Init(&GNSS_Handle, &huart6);
900
6a7701f66b16 minor: LED/Vibration behavior on wake-up
heinrichsweikamp
parents: 899
diff changeset
450 #endif
899
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents: 890
diff changeset
451
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents: 890
diff changeset
452 #if 0
889
cf3967fe6924 GNSS work in progress
heinrichsweikamp
parents: 887
diff changeset
453 HAL_Delay(1000);
cf3967fe6924 GNSS work in progress
heinrichsweikamp
parents: 887
diff changeset
454 GNSS_LoadConfig(&GNSS_Handle);
890
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
455 HAL_Delay(250);
889
cf3967fe6924 GNSS work in progress
heinrichsweikamp
parents: 887
diff changeset
456 GNSS_GetUniqID(&GNSS_Handle);
cf3967fe6924 GNSS work in progress
heinrichsweikamp
parents: 887
diff changeset
457 GNSS_ParseBuffer(&GNSS_Handle);
890
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
458 HAL_Delay(250);
889
cf3967fe6924 GNSS work in progress
heinrichsweikamp
parents: 887
diff changeset
459 GNSS_GetPVTData(&GNSS_Handle);
cf3967fe6924 GNSS work in progress
heinrichsweikamp
parents: 887
diff changeset
460 GNSS_ParseBuffer(&GNSS_Handle);
899
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents: 890
diff changeset
461 #endif
890
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
462 /*
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
463 * Demo code from SimpleMethod
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
464 * called 1/second
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
465 while (1) {
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
466
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
467 if ((HAL_GetTick() - Timer) > 1000) {
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
468 GNSS_GetUniqID(&GNSS_Handle);
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
469 GNSS_ParseBuffer(&GNSS_Handle);
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
470 HAL_Delay(250);
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
471 GNSS_GetPVTData(&GNSS_Handle);
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
472 GNSS_ParseBuffer(&GNSS_Handle);
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
473 printf("Day: %d-%d-%d \r\n", GNSS_Handle.day, GNSS_Handle.month,GNSS_Handle.year);
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
474 printf("Time: %d:%d:%d \r\n", GNSS_Handle.hour, GNSS_Handle.min,GNSS_Handle.sec);
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
475 printf("Status of fix: %d \r\n", GNSS_Handle.fixType);
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
476 printf("Latitude: %f \r\n", GNSS_Handle.fLat);
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
477 printf("Longitude: %f \r\n",(float) GNSS_Handle.lon / 10000000.0);
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
478 printf("Height above ellipsoid: %d \r\n", GNSS_Handle.height);
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
479 printf("Height above mean sea level: %d \r\n", GNSS_Handle.hMSL);
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
480 printf("Ground Speed (2-D): %d \r\n", GNSS_Handle.gSpeed);
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
481 printf("Unique ID: %04X %04X %04X %04X %04X \n\r",
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
482 GNSS_Handle.uniqueID[0], GNSS_Handle.uniqueID[1],
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
483 GNSS_Handle.uniqueID[2], GNSS_Handle.uniqueID[3],
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
484 GNSS_Handle.uniqueID[4], GNSS_Handle.uniqueID[5]);
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
485 Timer = HAL_GetTick();
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
486 }
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
487 */
889
cf3967fe6924 GNSS work in progress
heinrichsweikamp
parents: 887
diff changeset
488
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
489 global.mode = MODE_SURFACE;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
490 break;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
491
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
492 case MODE_CALIB:
90
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
493 scheduleCompassCalibrationMode();
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
494 break;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
495
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
496 case MODE_SURFACE:
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
497 scheduleSurfaceMode();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
498 break;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
499
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
500 case MODE_TEST:
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
501 break;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
502
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
503 case MODE_DIVE:
90
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
504 backup.no_fly_time_minutes = global.no_fly_time_minutes;
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
505 backup.seconds_since_last_dive = global.seconds_since_last_dive;
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
506
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
507 vpm_init( &global.vpm, global.conservatism, global.repetitive_dive,
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
508 global.seconds_since_last_dive );
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
509 global.no_fly_time_minutes = 0;
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
510 global.lifeData.dive_time_seconds = 0;
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
511 global.lifeData.dive_time_seconds_without_surface_time = 0;
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
512 scheduleDiveMode();
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
513 // done now in scheduler prior to change mode: global.seconds_since_last_dive = 1;
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
514
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
515 if( global.lifeData.dive_time_seconds > 60 )
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
516 {
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
517 //No Fly time 60% of desaturationtime after dive
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
518 global.no_fly_time_minutes = decom_calc_desaturation_time(
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
519 global.lifeData.tissue_nitrogen_bar,
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
520 global.lifeData.tissue_helium_bar,
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
521 global.lifeData.pressure_surface_bar ) * 60 / 100;
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
522 if( global.no_fly_time_minutes < (24 * 60) )
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
523 global.no_fly_time_minutes = 24 * 60;
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
524 }
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
525 else
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
526 {
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
527 global.no_fly_time_minutes = backup.no_fly_time_minutes;
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
528 global.seconds_since_last_dive = backup.seconds_since_last_dive;
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
529 }
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
530
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
531 global.lifeData.dive_time_seconds = 0;
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
532 global.lifeData.dive_time_seconds_without_surface_time = 0;
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
533 global.lifeData.counterSecondsShallowDepth = 0;
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
534
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
535 backup.no_fly_time_minutes = 0;
83857eb3b12b +- stable
Dmitry Romanov <kitt@bk.ru>
parents: 89
diff changeset
536 backup.seconds_since_last_dive = 0;
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
537 break;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
538
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
539 case MODE_SHUTDOWN:
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
540 HAL_Delay(200);
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
541 global.mode = MODE_SLEEP;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
542 MX_SPI3_Init();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
543 break;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
544
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
545 case MODE_SLEEP:
917
0d6c4b40fae4 Bugfix external interface power up after sleep:
Ideenmodellierer
parents: 909
diff changeset
546 extInterfaceActive = externalInterface_isEnabledPower33();
839
061174d88af9 Code cleanup: UART protocol definitions
Ideenmodellierer
parents: 818
diff changeset
547 externalInterface_SwitchUART(EXT_INTERFACE_UART_OFF);
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
548 externalInterface_SwitchPower33(false);
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
549 if (hasExternalClock())
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
550 SystemClock_Config_HSI();
887
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
551 GPIO_LEDs_VIBRATION_Init();
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
552 sleep_prepare();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
553
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
554 scheduleSleepMode();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
555 if (hasExternalClock())
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
556 SystemClock_Config_HSE();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
557 EXTI_Wakeup_Button_DeInit();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
558 ADCx_Init();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
559 GPIO_Power_MainCPU_Init();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
560 GPIO_Power_MainCPU_ON();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
561 compass_init(0, 7);
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
562 accelerator_init();
148
ee744c7160ce Use SPI TX callback to synchronize to main CPU
Ideenmodellierer
parents: 134
diff changeset
563 SPI_synchronize_with_Master();
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
564 MX_DMA_Init();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
565 MX_SPI1_Init();
148
ee744c7160ce Use SPI TX callback to synchronize to main CPU
Ideenmodellierer
parents: 134
diff changeset
566 SPI_Start_single_TxRx_with_Master();
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
567
917
0d6c4b40fae4 Bugfix external interface power up after sleep:
Ideenmodellierer
parents: 909
diff changeset
568 if(extInterfaceActive)
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
569 {
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
570 externalInterface_SwitchPower33(true);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
571 }
738
30717de00f3a Added data init function for external interface:
Ideenmodellierer
parents: 728
diff changeset
572 externalInterface_InitDatastruct();
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
573 // EXTILine0_Button_DeInit(); not now, later after testing
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
574 break;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
575 }
120
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
576
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
577 #ifdef DEBUG_RUNTIME
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
578 HAL_RTC_GetTime(&RTCHandle, &Stime, RTC_FORMAT_BCD);
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
579
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
580 if(lastsecond == 0xFF)
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
581 {
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
582 measurementindex = 0;
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
583 loopcnt[measurementindex] = 0;
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
584 lastsecond = Stime.Seconds;
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
585 }
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
586 loopcnt[measurementindex]++;
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
587
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
588 if(lastsecond != Stime.Seconds)
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
589 {
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
590 measurementindex++;
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
591 if (measurementindex == MEASURECNT) measurementindex = 0;
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
592 loopcnt[measurementindex] = 0;
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
593 lastsecond = Stime.Seconds;
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
594 if(measurementindex +1 < MEASURECNT) loopcnt[measurementindex +1] = 0xffff; /* helps to identify the latest value */
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
595 }
6347a86caa18 Cleanup warning and disable printf calls
Ideenmodellierer
parents: 105
diff changeset
596 #endif
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
597 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
598 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
599
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
600 /** @brief Button feedback - EXTI line detection callbacks
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
601 * @param GPIO_Pin: Specifies the pins connected EXTI line
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
602 * @retval None
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
603 */
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
604 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
605
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
606 if (GPIO_Pin == BUTTON_OSTC_GPIO_PIN) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
607 if (global.mode == MODE_SLEEP) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
608 global.mode = MODE_BOOT;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
609 }
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
610 }
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
611 else
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
612 {
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
613
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
614 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
615 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
616
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
617 /**
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
618 * @brief System Clock Configuration
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
619 * The system Clock is configured as follow :
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
620 * System Clock source = PLL (HSI)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
621 * SYSCLK(Hz) = 100 MHz
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
622 * HCLK(Hz) = 100 MHz
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
623 * AHB Prescaler = 1
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
624 * APB1 Prescaler = 2
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
625 * APB2 Prescaler = 1
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
626 * HSI Frequency(Hz) = 16 MHz
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
627 * PLL_M = 16
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
628 * PLL_N = 400
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
629 * PLL_P = 4
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
630 * PLL_Q = 7 // no USB
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
631 * VDD(V) = 3.3
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
632 * Main regulator output voltage = Scale1 mode
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
633 * Flash Latency(WS) = 3
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
634 * @param None
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
635 * @retval None
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
636 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
637
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
638 void SystemClock_Config(void) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
639 if (hasExternalClock())
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
640 SystemClock_Config_HSE();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
641 else
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
642 SystemClock_Config_HSI();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
643 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
644
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
645 void SYSCLKConfig_STOP(void) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
646 SYSCLKConfig_STOP_HSI();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
647 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
648
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
649 void SystemClock_Config_HSE(void) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
650 RCC_OscInitTypeDef RCC_OscInitStruct;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
651 RCC_ClkInitTypeDef RCC_ClkInitStruct;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
652 // RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
653
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
654 __PWR_CLK_ENABLE(); // is identical to __HAL_RCC_PWR_CLK_ENABLE();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
655
887
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
656 __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
657
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
658 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; //|RCC_OSCILLATORTYPE_LSE;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
659 RCC_OscInitStruct.HSEState = RCC_HSE_ON;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
660 //RCC_OscInitStruct.LSEState = RCC_LSE_ON;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
661 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
662 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
663 RCC_OscInitStruct.PLL.PLLM = 8;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
664 RCC_OscInitStruct.PLL.PLLN = 320;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
665 RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
666 RCC_OscInitStruct.PLL.PLLQ = 4;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
667 HAL_RCC_OscConfig(&RCC_OscInitStruct);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
668
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
669 RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
670 | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
671 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
672 RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
673 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
674 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
675 HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
676
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
677 // PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
678 // PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
679 // HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
680
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
681 // HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
682
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
683 // HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
684
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
685 /* SysTick_IRQn interrupt configuration */
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
686 // HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
687 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
688
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
689 void SystemClock_Config_HSI(void) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
690 RCC_ClkInitTypeDef RCC_ClkInitStruct;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
691 RCC_OscInitTypeDef RCC_OscInitStruct;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
692
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
693 /* Enable Power Control clock */
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
694 __HAL_RCC_PWR_CLK_ENABLE();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
695
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
696 /* The voltage scaling allows optimizing the power consumption when the device is
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
697 clocked below the maximum system frequency, to update the voltage scaling value
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
698 regarding system frequency refer to product datasheet. */
887
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
699 __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
700
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
701 /* Enable HSI Oscillator and activate PLL with HSI as source */
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
702 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
703 RCC_OscInitStruct.HSIState = RCC_HSI_ON;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
704 RCC_OscInitStruct.HSICalibrationValue = 0x10;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
705 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
706 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
707 RCC_OscInitStruct.PLL.PLLM = 16;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
708 RCC_OscInitStruct.PLL.PLLN = 320;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
709 RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
710 RCC_OscInitStruct.PLL.PLLQ = 4;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
711 HAL_RCC_OscConfig(&RCC_OscInitStruct);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
712
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
713 /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
714 clocks dividers */
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
715 RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
716 | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
717 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
718 RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
719 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
720 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
721 HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
722 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
723
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
724
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
725 /**
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
726 * @brief Configures system clock after wake-up from STOP: enable HSI, PLL
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
727 * and select PLL as system clock source.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
728 * @param None
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
729 * @retval None
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
730 */
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
731 void SYSCLKConfig_STOP_HSE(void) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
732 RCC_ClkInitTypeDef RCC_ClkInitStruct;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
733 RCC_OscInitTypeDef RCC_OscInitStruct;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
734 uint32_t pFLatency = 0;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
735
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
736 /* Get the Oscillators configuration according to the internal RCC registers */
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
737 HAL_RCC_GetOscConfig(&RCC_OscInitStruct);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
738
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
739 /* After wake-up from STOP reconfigure the system clock: Enable HSI and PLL */
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
740 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
741 RCC_OscInitStruct.HSIState = RCC_HSE_ON;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
742 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
743 HAL_RCC_OscConfig(&RCC_OscInitStruct);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
744
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
745 /* Get the Clocks configuration according to the internal RCC registers */
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
746 HAL_RCC_GetClockConfig(&RCC_ClkInitStruct, &pFLatency);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
747
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
748 /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
749 clocks dividers */
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
750 RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
751 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
752 HAL_RCC_ClockConfig(&RCC_ClkInitStruct, pFLatency);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
753 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
754
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
755 void SYSCLKConfig_STOP_HSI(void) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
756 RCC_ClkInitTypeDef RCC_ClkInitStruct;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
757 RCC_OscInitTypeDef RCC_OscInitStruct;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
758 uint32_t pFLatency = 0;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
759
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
760 /* Get the Oscillators configuration according to the internal RCC registers */
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
761 HAL_RCC_GetOscConfig(&RCC_OscInitStruct);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
762
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
763 /* After wake-up from STOP reconfigure the system clock: Enable HSI and PLL */
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
764 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
765 RCC_OscInitStruct.HSIState = RCC_HSI_ON;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
766 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
767 RCC_OscInitStruct.HSICalibrationValue = 0x10;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
768 HAL_RCC_OscConfig(&RCC_OscInitStruct);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
769
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
770 /* Get the Clocks configuration according to the internal RCC registers */
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
771 HAL_RCC_GetClockConfig(&RCC_ClkInitStruct, &pFLatency);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
772
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
773 /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
774 clocks dividers */
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
775 RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
776 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
777 HAL_RCC_ClockConfig(&RCC_ClkInitStruct, pFLatency);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
778 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
779
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
780 /**
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
781 * @brief SYSTICK callback
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
782 * @param None
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
783 * @retval None
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
784 */
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
785 void HAL_SYSTICK_Callback(void) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
786 HAL_IncTick();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
787 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
788
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
789 /**
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
790 * @brief Configures GPIO for LED
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
791 * Might move with STM32Cube usage
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
792 * @param None
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
793 * @retval None
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
794 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
795 /*
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
796 void GPIO_test_I2C_lines(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
797 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
798 GPIO_InitTypeDef GPIO_InitStructure;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
799 __GPIOB_CLK_ENABLE();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
800 GPIO_InitStructure.Pin = GPIO_PIN_8;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
801 GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
802 GPIO_InitStructure.Pull = GPIO_PULLUP;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
803 GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
804 HAL_GPIO_Init(GPIOB, &GPIO_InitStructure);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
805 GPIO_InitStructure.Pin = GPIO_PIN_9;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
806 HAL_GPIO_Init(GPIOB, &GPIO_InitStructure);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
807
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
808 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_SET);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
809 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
810 HAL_Delay(10);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
811 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
812 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_RESET);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
813 HAL_Delay(10);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
814 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
815 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
816
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
817 static void GPIO_LEDs_VIBRATION_Init(void) {
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
818 GPIO_InitTypeDef GPIO_InitStructure;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
819
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
820 __GPIOA_CLK_ENABLE();
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
821 GPIO_InitStructure.Pin = LED_CONTROL_PIN_RED;
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
822 GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
823 GPIO_InitStructure.Pull = GPIO_PULLUP;
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
824 GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
825 HAL_GPIO_Init( GPIOA, &GPIO_InitStructure);
909
6902bb4b6b2e Define state of new GPIO out pins:
Ideenmodellierer
parents: 903
diff changeset
826 HAL_GPIO_WritePin( GPIOA, LED_CONTROL_PIN_RED, GPIO_PIN_SET);
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
827
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
828 GPIO_InitStructure.Pin = LED_CONTROL_PIN_GREEN;
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
829 GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
830 GPIO_InitStructure.Pull = GPIO_PULLUP;
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
831 GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
832 HAL_GPIO_Init( GPIOA, &GPIO_InitStructure);
909
6902bb4b6b2e Define state of new GPIO out pins:
Ideenmodellierer
parents: 903
diff changeset
833 HAL_GPIO_WritePin( GPIOA, LED_CONTROL_PIN_GREEN, GPIO_PIN_SET);
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
834
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
835 GPIO_InitStructure.Pin = VIBRATION_CONTROL_PIN;
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
836 GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
837 GPIO_InitStructure.Pull = GPIO_PULLDOWN;
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
838 GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
839 HAL_GPIO_Init( GPIOA, &GPIO_InitStructure);
909
6902bb4b6b2e Define state of new GPIO out pins:
Ideenmodellierer
parents: 903
diff changeset
840 HAL_GPIO_WritePin( GPIOA, VIBRATION_CONTROL_PIN, GPIO_PIN_RESET);
887
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
841
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
842 __GPIOB_CLK_ENABLE();
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
843 GPIO_InitStructure.Pin = GPS_POWER_CONTROL_PIN;
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
844 GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
845 GPIO_InitStructure.Pull = GPIO_PULLUP;
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
846 GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
847 HAL_GPIO_Init( GPIOB, &GPIO_InitStructure);
909
6902bb4b6b2e Define state of new GPIO out pins:
Ideenmodellierer
parents: 903
diff changeset
848 HAL_GPIO_WritePin( GPIOB, GPS_POWER_CONTROL_PIN, GPIO_PIN_SET);
887
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
849
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
850 GPIO_InitStructure.Pin = GPS_BCKP_CONTROL_PIN;
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
851 GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
852 GPIO_InitStructure.Pull = GPIO_PULLDOWN;
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
853 GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
854 HAL_GPIO_Init( GPIOB, &GPIO_InitStructure);
909
6902bb4b6b2e Define state of new GPIO out pins:
Ideenmodellierer
parents: 903
diff changeset
855 HAL_GPIO_WritePin( GPIOB, GPS_BCKP_CONTROL_PIN, GPIO_PIN_RESET);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
856 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
857
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
858 void GPIO_new_DEBUG_Init(void) {
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
859 #ifdef DEBUG_PIN_ACTIVE
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
860 GPIO_InitTypeDef GPIO_InitStructure;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
861
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
862 __GPIOC_CLK_ENABLE();
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
863 GPIO_InitStructure.Pin = LED_CONTROL_PIN;
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
864 GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
865 GPIO_InitStructure.Pull = GPIO_PULLUP;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
866 GPIO_InitStructure.Speed = GPIO_SPEED_FAST;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
867 HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
868 #endif
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
869 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
870
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
871 void GPIO_new_DEBUG_LOW(void) {
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
872 #ifdef DEBUG_PIN_ACTIVE
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
873 HAL_GPIO_WritePin(GPIOC,LED_CONTROL_PIN,GPIO_PIN_RESET);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
874 #endif
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
875 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
876
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
877 void GPIO_new_DEBUG_HIGH(void) {
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
878 #ifdef DEBUG_PIN_ACTIVE
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
879 HAL_GPIO_WritePin(GPIOC,LED_CONTROL_PIN,GPIO_PIN_SET);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
880 #endif
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
881 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
882
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
883 static void GPIO_Power_MainCPU_Init(void) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
884 GPIO_InitTypeDef GPIO_InitStructure;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
885 __GPIOC_CLK_ENABLE();
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
886 GPIO_InitStructure.Pin = MAINCPU_CONTROL_PIN;
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
887 GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
888 GPIO_InitStructure.Pull = GPIO_PULLUP;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
889 GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
890 HAL_GPIO_Init( GPIOC, &GPIO_InitStructure);
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
891 HAL_GPIO_WritePin( GPIOC, MAINCPU_CONTROL_PIN, GPIO_PIN_RESET);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
892 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
893
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
894 static void GPIO_Power_MainCPU_ON(void) {
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
895 HAL_GPIO_WritePin( GPIOC, MAINCPU_CONTROL_PIN, GPIO_PIN_RESET);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
896 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
897
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
898 static void GPIO_Power_MainCPU_OFF(void) {
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
899 HAL_GPIO_WritePin( GPIOC, MAINCPU_CONTROL_PIN, GPIO_PIN_SET);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
900 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
901
903
0f2e5a166d40 Disable GNSS operations using compile switch:
Ideenmodellierer
parents: 900
diff changeset
902 #ifdef ENABLE_GNSS
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
903 static void GPIO_LED_GREEN_ON(void) {
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
904 HAL_GPIO_WritePin( GPIOA, LED_CONTROL_PIN_GREEN, GPIO_PIN_RESET);
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
905 }
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
906
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
907 static void GPIO_LED_GREEN_OFF(void) {
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
908 HAL_GPIO_WritePin( GPIOA, LED_CONTROL_PIN_GREEN, GPIO_PIN_SET);
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
909 }
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
910
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
911 static void GPIO_LED_RED_ON(void) {
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
912 HAL_GPIO_WritePin( GPIOA, LED_CONTROL_PIN_RED, GPIO_PIN_RESET);
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
913 }
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
914
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
915 static void GPIO_LED_RED_OFF(void) {
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
916 HAL_GPIO_WritePin( GPIOA, LED_CONTROL_PIN_RED, GPIO_PIN_SET);
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
917 }
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
918
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
919 static void GPIO_VIBRATION_ON(void) {
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
920 HAL_GPIO_WritePin( GPIOA, VIBRATION_CONTROL_PIN, GPIO_PIN_SET);
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
921 }
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
922
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
923 static void GPIO_VIBRATION_OFF(void) {
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
924 HAL_GPIO_WritePin( GPIOA, VIBRATION_CONTROL_PIN, GPIO_PIN_RESET);
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
925 }
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
926
887
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
927 static void GPIO_GPS_ON(void) {
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
928 HAL_GPIO_WritePin( GPIOB, GPS_POWER_CONTROL_PIN, GPIO_PIN_RESET);
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
929 }
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
930
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
931 static void GPIO_GPS_OFF(void) {
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
932 HAL_GPIO_WritePin( GPIOB, GPS_POWER_CONTROL_PIN, GPIO_PIN_SET);
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
933 }
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
934
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
935 static void GPIO_GPS_BCKP_ON(void) {
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
936 HAL_GPIO_WritePin( GPIOB, GPS_BCKP_CONTROL_PIN, GPIO_PIN_SET);
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
937 }
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
938
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
939 static void GPIO_GPS_BCKP_OFF(void) {
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
940 HAL_GPIO_WritePin( GPIOB, GPS_BCKP_CONTROL_PIN, GPIO_PIN_RESET);
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
941 }
903
0f2e5a166d40 Disable GNSS operations using compile switch:
Ideenmodellierer
parents: 900
diff changeset
942 #endif
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
943
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
944 /**
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
945 * @brief Configures EXTI Line0 (connected to PA0 + PA1 pin) in interrupt mode
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
946 * @param None
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
947 * @retval None
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
948 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
949
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
950 static void EXTI_Wakeup_Button_Init(void) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
951 GPIO_InitTypeDef GPIO_InitStructure;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
952
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
953 __HAL_RCC_GPIOA_CLK_ENABLE();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
954 BUTTON_OSTC_HAL_RCC_GPIO_CLK_ENABLE();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
955 GPIO_InitStructure.Pin = BUTTON_OSTC_GPIO_PIN;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
956 GPIO_InitStructure.Mode = GPIO_MODE_IT_FALLING;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
957 GPIO_InitStructure.Pull = GPIO_NOPULL;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
958 HAL_GPIO_Init( BUTTON_OSTC_GPIO_PORT, &GPIO_InitStructure);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
959
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
960 HAL_NVIC_SetPriority( BUTTON_OSTC_IRQn, 0x0F, 0);
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
961 HAL_NVIC_EnableIRQ( BUTTON_OSTC_IRQn);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
962 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
963
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
964 static void EXTI_Wakeup_Button_DeInit(void) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
965 GPIO_InitTypeDef GPIO_InitStructure;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
966
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
967 GPIO_InitStructure.Mode = GPIO_MODE_ANALOG;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
968 GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
969 GPIO_InitStructure.Pull = GPIO_NOPULL;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
970
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
971 GPIO_InitStructure.Pin = BUTTON_OSTC_GPIO_PIN;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
972 HAL_GPIO_Init( BUTTON_OSTC_GPIO_PORT, &GPIO_InitStructure);
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
973 HAL_NVIC_DisableIRQ( BUTTON_OSTC_IRQn);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
974 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
975
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
976 /**
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
977 * @brief Wake Up Timer callback
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
978 * @param hrtc: RTC handle
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
979 * @retval None
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
980 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
981
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
982 /*
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
983 void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
984 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
985 static uint8_t uwCounter = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
986 uwCounter = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
987 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
988 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
989
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
990 void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *I2cHandle) {
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
991
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
992 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
993
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
994 void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *I2cHandle) {
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
995
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
996 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
997
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
998 void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *I2cHandle) {
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
999
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1000 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1001
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1002 void sleep_prepare(void) {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1003 EXTI_Wakeup_Button_Init();
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
1004
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1005 compass_sleep();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1006 HAL_Delay(100);
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1007 accelerator_sleep();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1008 HAL_Delay(100);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1009
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1010 I2C_DeInit();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1011 MX_SPI_DeInit();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1012 MX_SPI3_DeInit();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1013 ADCx_DeInit();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1014
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1015 GPIO_InitTypeDef GPIO_InitStruct;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1016
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1017 __HAL_RCC_GPIOA_CLK_ENABLE();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1018 __HAL_RCC_GPIOB_CLK_ENABLE();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1019 __HAL_RCC_GPIOC_CLK_ENABLE();
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1020 __HAL_RCC_GPIOH_CLK_ENABLE();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1021
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1022 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
887
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
1023 GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1024 GPIO_InitStruct.Pull = GPIO_NOPULL;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1025 GPIO_InitStruct.Pin = GPIO_PIN_All;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1026 HAL_GPIO_Init( GPIOH, &GPIO_InitStruct);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1027 #ifdef DEBUGMODE
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1028 GPIO_InitStruct.Pin = GPIO_PIN_All ^ ( GPIO_PIN_3 | GPIO_PIN_8 | GPIO_PIN_9); /* debug */
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1029 #endif
887
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
1030
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
1031 GPIO_InitStruct.Pin = GPIO_PIN_All ^ (GPS_POWER_CONTROL_PIN | GPS_BCKP_CONTROL_PIN);
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1032 HAL_GPIO_Init( GPIOB, &GPIO_InitStruct);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1033
887
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
1034 GPIO_InitStruct.Pin = GPIO_PIN_All ^ ( MAINCPU_CONTROL_PIN | CHARGE_OUT_PIN | EXT33V_CONTROL_PIN); /* power off & charger in & charge out & OSC32 & ext33Volt */
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 657
diff changeset
1035
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1036 HAL_GPIO_Init( GPIOC, &GPIO_InitStruct);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1037
887
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
1038 GPIO_InitStruct.Pin = GPIO_PIN_All ^ ( GPIO_PIN_0 | VIBRATION_CONTROL_PIN | LED_CONTROL_PIN_RED | LED_CONTROL_PIN_GREEN);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1039 #ifdef DEBUGMODE
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1040 GPIO_InitStruct.Pin = GPIO_PIN_All ^ ( GPIO_PIN_0 | GPIO_PIN_13 | GPIO_PIN_14); /* wake up button & debug */
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1041 #endif
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1042 HAL_GPIO_Init( GPIOA, &GPIO_InitStruct);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1043
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1044 GPIO_InitStruct.Pin = GPIO_PIN_All;
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1045 HAL_GPIO_Init( GPIOH, &GPIO_InitStruct);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1046
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1047 GPIO_Power_MainCPU_OFF();
903
0f2e5a166d40 Disable GNSS operations using compile switch:
Ideenmodellierer
parents: 900
diff changeset
1048 #ifdef ENABLE_GNSS
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
1049 GPIO_LED_GREEN_OFF();
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
1050 GPIO_LED_RED_OFF();
887
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
1051 GPIO_VIBRATION_OFF();
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
1052 GPIO_GPS_BCKP_ON(); // mH : costs 100µA in sleep - beware
17f02ac9da67 adding GNSS code
heinrichsweikamp
parents: 880
diff changeset
1053 GPIO_GPS_OFF();
880
f012fcd7f465 support for led and vibration
heinrichsweikamp
parents: 843
diff changeset
1054
890
651d21777b61 cleanup and disable function for GNSS uart and DMA
heinrichsweikamp
parents: 889
diff changeset
1055 MX_USART6_UART_DeInit();
903
0f2e5a166d40 Disable GNSS operations using compile switch:
Ideenmodellierer
parents: 900
diff changeset
1056 #endif
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1057 #ifndef DEBUGMODE
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1058 __HAL_RCC_GPIOB_CLK_DISABLE();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1059 #endif
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1060 __HAL_RCC_GPIOH_CLK_DISABLE();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1061
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1062 HAL_Delay(1000);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1063 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1064
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1065 /*
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1066 void sleep_test(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1067 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1068 GPIO_InitTypeDef GPIO_InitStruct;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1069
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1070 __HAL_RCC_GPIOA_CLK_ENABLE();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1071 __HAL_RCC_GPIOB_CLK_ENABLE();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1072 __HAL_RCC_GPIOC_CLK_ENABLE();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1073 __HAL_RCC_GPIOH_CLK_ENABLE();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1074
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1075 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1076 GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1077 GPIO_InitStruct.Pull = GPIO_NOPULL;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1078 GPIO_InitStruct.Pin = GPIO_PIN_All;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1079 HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1080 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1081
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1082 GPIO_InitStruct.Pin = GPIO_PIN_All ^ ( GPIO_PIN_0 | GPIO_PIN_15 | GPIO_PIN_14);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1083 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1084
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1085 GPIO_InitStruct.Pin = GPIO_PIN_All ^ ( GPIO_PIN_0);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1086 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1087
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1088 GPIO_Power_MainCPU_OFF();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1089
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1090 GPIO_InitStruct.Pull = GPIO_PULLUP;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1091 GPIO_InitStruct.Pin = GPIO_PIN_0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1092 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1093
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1094 // __HAL_RCC_GPIOA_CLK_DISABLE();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1095 __HAL_RCC_GPIOB_CLK_DISABLE();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1096 // __HAL_RCC_GPIOC_CLK_DISABLE();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1097 __HAL_RCC_GPIOH_CLK_DISABLE();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1098
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1099
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1100 HAL_Delay(5000);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1101 while(1)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1102 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1103 RTC_StopMode_2seconds();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1104 HAL_Delay(200);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1105 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1106 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1107 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1108
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1109 #ifdef USE_FULL_ASSERT
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1110
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1111 /**
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1112 * @brief Reports the name of the source file and the source line number
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1113 * where the assert_param error has occurred.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1114 * @param file: pointer to the source file name
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1115 * @param line: assert_param error line source number
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1116 * @retval None
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1117 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1118 void assert_failed(uint8_t* file, uint32_t line)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1119 {
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1120 /* User can add his own implementation to report the file name and line number,
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1121 ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1122
89
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1123 /* Infinite loop */
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1124 while (1)
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1125 {
ff7775cc34c4 temp! full cyclic SPI
Dmitry Romanov <kitt@bk.ru>
parents: 88
diff changeset
1126 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1127 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1128 #endif
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1129
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1130 /**
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1131 * @}
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1132 */
104
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 103
diff changeset
1133 /**
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 103
diff changeset
1134 * @brief This function handles SysTick Handler.
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 103
diff changeset
1135 * @param None
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 103
diff changeset
1136 * @retval None
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 103
diff changeset
1137 */
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1138
104
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 103
diff changeset
1139 /*TxRx only here. Every 100 ms.*/
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 103
diff changeset
1140 uint8_t ticks100ms=0;
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 103
diff changeset
1141 void SysTick_Handler(void)
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 103
diff changeset
1142 {
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 103
diff changeset
1143 HAL_IncTick();
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 103
diff changeset
1144 if(ticks100ms<100){
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 103
diff changeset
1145 ticks100ms++;
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 103
diff changeset
1146 }else
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 103
diff changeset
1147 {
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 103
diff changeset
1148 ticks100ms=0;
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 103
diff changeset
1149 }
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 103
diff changeset
1150 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1151 /**
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1152 * @}
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1153 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1154
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1155 /************************ (C) COPYRIGHT heinrichs weikamp *****END OF FILE****/