1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
30
31
32
33
43
46
47
48
54
69
70
75
76
77
78
79
80
81
82
83
84
85
86
87
106
125
126
127
128
129
130
131
132
135
136
/* ... */
#include "mems.h"
/* ... */
/* ... */
Includes
extern __IO uint8_t UserPressButton;
/* ... */
int16_t ThresholdHigh = 200;
int16_t ThresholdLow = -200;
Private variables
static void ACCELERO_ReadAcc(void);
Private function prototypes
/* ... */
void ACCELERO_MEMS_Test(void)
{
if(BSP_ACCELERO_Init() != HAL_OK)
{
Error_Handler();
}if (BSP_ACCELERO_Init() != HAL_OK) { ... }
UserPressButton = 0;
while(!UserPressButton)
{
ACCELERO_ReadAcc();
}while (!UserPressButton) { ... }
}{ ... }
/* ... */
static void ACCELERO_ReadAcc(void)
{
int16_t buffer[3] = {0};
int16_t xval, yval = 0x00;
BSP_ACCELERO_GetXYZ(buffer);
xval = buffer[0];
yval = buffer[1];
if((ABS(xval))>(ABS(yval)))
{
if(xval > ThresholdHigh)
{
BSP_LED_On(LED5);
HAL_Delay(10);
}if (xval > ThresholdHigh) { ... }
else if(xval < ThresholdLow)
{
BSP_LED_On(LED4);
HAL_Delay(10);
}else if (xval < ThresholdLow) { ... }
else
{
HAL_Delay(10);
}else { ... }
}if ((ABS(xval))>(ABS(yval))) { ... }
else
{
if(yval < ThresholdLow)
{
BSP_LED_On(LED6);
HAL_Delay(10);
}if (yval < ThresholdLow) { ... }
else if(yval > ThresholdHigh)
{
BSP_LED_On(LED3);
HAL_Delay(10);
}else if (yval > ThresholdHigh) { ... }
else
{
HAL_Delay(10);
}else { ... }
}else { ... }
BSP_LED_Off(LED3);
BSP_LED_Off(LED4);
BSP_LED_Off(LED5);
BSP_LED_Off(LED6);
}{ ... }
/* ... */
/* ... */