Siphon Regulator
1.0
Nanosattelite attitude determination and control system.
Loading...
Searching...
No Matches
Siphon_regulator
Core
Inc
main.h
Go to the documentation of this file.
1
/* USER CODE BEGIN Header */
2
/*
3
* Siphon Regulator library
4
* (c) Antonin Putala 2026
5
*
6
* Developed using STM32CubeIDE
7
* Tested on BluePill board and STM32F103C8T6, 32 MHz.
8
*/
9
39
/* USER CODE END Header */
40
59
/* Define to prevent recursive inclusion -------------------------------------*/
60
#ifndef __MAIN_H
61
#define __MAIN_H
62
63
#ifdef __cplusplus
64
extern
"C"
{
65
#endif
66
67
/* Includes ------------------------------------------------------------------*/
68
#include "stm32f1xx_hal.h"
69
70
/* Private includes ----------------------------------------------------------*/
71
/* USER CODE BEGIN Includes */
72
73
/* USER CODE END Includes */
74
75
/* Exported types ------------------------------------------------------------*/
76
/* USER CODE BEGIN ET */
78
typedef
struct
{
79
float
acc[3];
80
float
gyr[3];
81
float
mag[3];
82
float
pos[3];
83
}
sensor_data_t
;
84
86
typedef
struct
{
87
uint8_t
angle
;
88
uint8_t
time_r
;
89
uint8_t
time_l
;
90
uint8_t
time_a
;
91
int16_t
home
;
92
}
settings_t
;
93
/* USER CODE END ET */
94
95
/* Exported constants --------------------------------------------------------*/
96
/* USER CODE BEGIN EC */
97
98
/* USER CODE END EC */
99
100
/* Exported macro ------------------------------------------------------------*/
101
/* USER CODE BEGIN EM */
103
#define _read_BV(reg, bit) reg & (1 << bit)
104
106
#define _set_BV(reg, bit) reg = reg | (1 << bit)
107
109
#define _clr_BV(reg, bit) reg = reg & ~(1 << bit)
110
112
#define _tog_BV(reg, bit) reg = reg ^ (1 << bit)
113
118
#define _clr_time(reg) reg = reg & ~0x00FFFF00
119
122
#define _set_time(reg, time_l, time_r) reg = reg | (time_r << 8) | (time_l << 16)
123
125
#define _read_time_r(reg) ((reg & 0x0000FF00) >> 8)
126
128
#define _read_time_l(reg) ((reg & 0x00FF0000) >> 16)
129
133
#define _float2int(data_fl) ((int16_t)(data_fl*1000))
134
135
/* USER CODE END EM */
136
137
/* Exported functions prototypes ---------------------------------------------*/
138
void
Error_Handler
(
void
);
139
140
/* USER CODE BEGIN EFP */
141
142
/* USER CODE END EFP */
143
144
/* Private defines -----------------------------------------------------------*/
145
#define BOARD_LED_Pin GPIO_PIN_13
146
#define BOARD_LED_GPIO_Port GPIOC
147
#define VALVE_R_Pin GPIO_PIN_2
148
#define VALVE_R_GPIO_Port GPIOA
149
#define VALVE_L_Pin GPIO_PIN_3
150
#define VALVE_L_GPIO_Port GPIOA
151
#define LED_R_Pin GPIO_PIN_5
152
#define LED_R_GPIO_Port GPIOA
153
#define LED_Y_Pin GPIO_PIN_6
154
#define LED_Y_GPIO_Port GPIOA
155
#define LED_G_Pin GPIO_PIN_7
156
#define LED_G_GPIO_Port GPIOA
157
#define SPI2_CS_Pin GPIO_PIN_9
158
#define SPI2_CS_GPIO_Port GPIOB
159
160
/* USER CODE BEGIN Private defines */
162
#define RUN_BIT 0
163
165
#define DIR_BIT 1
166
168
#define PULSE_BIT 2
169
171
#define TURN_BIT 3
172
174
#define REG_BIT 4
175
177
#define RETURN_BIT 5
178
180
#define HOME_BIT 7
181
183
#define AUTOREAD_BIT 24
184
186
#define AUTOREAD_ACC_BIT 25
187
189
#define AUTOREAD_GYR_BIT 26
190
192
#define AUTOREAD_POS_BIT 27
193
195
#define PULSE_REPRE 10
//
196
197
198
/* Macros */
200
#define _read_valve(reg) reg & ((1 << RUN_BIT) | (1 << TURN_BIT) | (1 << PULSE_BIT) | (1 << HOME_BIT) | (1 << REG_BIT) | (1 << RETURN_BIT))
201
202
/* Calibration constant */
204
#define CAL_MUL ((360.0f/328.0f)*(360.0f/349.0f))
205
206
/* Reserved */
208
#define CMD0_BIT 28
209
211
#define CMD1_BIT 29
212
214
#define CMD2_BIT 30
215
217
#define CMD3_BIT 31
218
/* USER CODE END Private defines */
219
220
#ifdef __cplusplus
221
}
222
#endif
223
224
#endif
/* __MAIN_H */
Error_Handler
void Error_Handler(void)
This function is executed in case of error occurrence.
Definition
main.c:379
sensor_data_t
Definition
main.h:78
settings_t
Definition
main.h:86
settings_t::time_r
uint8_t time_r
Time [10*ms], right valve is open.
Definition
main.h:88
settings_t::angle
uint8_t angle
Angle [deg], cube rotate after turn cmd.
Definition
main.h:87
settings_t::home
int16_t home
Angle [deg], default orientation.
Definition
main.h:91
settings_t::time_l
uint8_t time_l
Time [10*ms], left valve is open.
Definition
main.h:89
settings_t::time_a
uint8_t time_a
Period [100*ms], sensor report will be sended.
Definition
main.h:90
Generated by
1.12.0