-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbuffer.c
More file actions
33 lines (25 loc) · 826 Bytes
/
buffer.c
File metadata and controls
33 lines (25 loc) · 826 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "buffer.h"
#include "motor.h"
extern int isMoving;
extern int isFinish;
void decodeMessage(serialData* b, int* forward_speed, int* left_speed) {
int forward_percentage = b->forward;
*forward_speed = (forward_percentage / 100.0) * (PWM_PERIOD - 500);
int left_percentage = b->right;
if (left_percentage < 0) left_percentage = left_percentage - 20;
else if (left_percentage > 0) left_percentage = left_percentage + 20;
if (left_percentage < -100) left_percentage = -100;
else if (left_percentage > 100) left_percentage = 100;
*left_speed = (left_percentage / 100.0) * (PWM_PERIOD - 500);
if (*forward_speed == 0 && *left_speed == 0) {
isMoving = 0;
} else {
isMoving = 1;
}
uint8_t button = b->buttons;
if (button == 2) {
isFinish = 1;
} else if (button == 4) {
isFinish = 0;
}
}