Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
car-controlserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wenzhongjian
car-controlserver
Commits
1e65c941
Commit
1e65c941
authored
Aug 07, 2025
by
957dd
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
加入了坦克调速,每种坦克速度不同。驱动也不同
parent
a2d093f8
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
118 additions
and
305 deletions
+118
-305
CMakeLists.txt
CMakeLists.txt
+1
-1
main
build/main
+0
-0
car0103_control.c
drivers/devicecontrol/car0103_control.c
+34
-140
car0104_control.c
drivers/devicecontrol/car0104_control.c
+14
-10
tank0202_control.c
drivers/devicecontrol/tank0202_control.c
+4
-4
tank0203_control.c
drivers/devicecontrol/tank0203_control.c
+4
-0
tank0206_control.c
drivers/devicecontrol/tank0206_control.c
+43
-138
gpio_control.c
drivers/gpio/gpio_control.c
+4
-4
tank_angle.c
drivers/sensors/tank_angle.c
+8
-8
tank_angle.h
drivers/sensors/tank_angle.h
+6
-0
No files found.
CMakeLists.txt
View file @
1e65c941
cmake_minimum_required
(
VERSION 3.10
)
cmake_minimum_required
(
VERSION 3.10
)
project
(
car
project
(
car
VERSION 1.2.
1
VERSION 1.2.
3
LANGUAGES C
LANGUAGES C
)
)
...
...
build/main
View file @
1e65c941
No preview for this file type
drivers/devicecontrol/car0103_control.c
View file @
1e65c941
...
@@ -2,194 +2,89 @@
...
@@ -2,194 +2,89 @@
#include "gpio_init.h"
#include "gpio_init.h"
#include "common.h"
#include "common.h"
int
modecount_car0103
=
0
;
void
car0103_middle
()
{
void
car0103_middle
()
{
pwmWrite
(
PWM_PIN_SPEED
,
75
);
pwmWrite
(
PWM_PIN_SPEED
,
75
);
pwmWrite
(
PWM_PIN_CHANGE
,
75
);
pwmWrite
(
PWM_PIN_CHANGE
,
75
);
}
}
void
mode_car0103_lift_flont
(
unsigned
char
gval
)
{
void
mode_car0103_lift_flont
(
unsigned
char
gval
)
{
int
b
=
0
;
if
(
gval
<
50
)
{
if
(
gval
<
50
)
{
pwmWrite
(
PWM_PIN_SPEED
,
75
);
pwmWrite
(
PWM_PIN_SPEED
,
75
);
}
else
if
(
gval
<=
55
)
{
}
pwmWrite
(
PWM_PIN_SPEED
,
78
);
else
if
(
gval
<=
60
)
{
}
else
if
(
gval
<=
60
)
{
pwmWrite
(
PWM_PIN_SPEED
,
79
);
pwmWrite
(
PWM_PIN_SPEED
,
79
);
}
else
if
(
gval
<=
65
)
{
}
else
if
(
gval
<=
70
)
{
pwmWrite
(
PWM_PIN_SPEED
,
80
);
pwmWrite
(
PWM_PIN_SPEED
,
80
);
}
else
if
(
gval
<=
70
)
{
}
else
if
(
gval
>
70
){
pwmWrite
(
PWM_PIN_SPEED
,
81
);
int
flont_speed
=
80
+
(
gval
-
70
)
/
10
+
b
;
}
else
if
(
gval
<=
75
)
{
pwmWrite
(
PWM_PIN_SPEED
,
flont_speed
);
pwmWrite
(
PWM_PIN_SPEED
,
82
);
}
}
else
if
(
gval
<=
90
)
{
pwmWrite
(
PWM_PIN_SPEED
,
83
);
}
else
if
(
gval
<=
100
)
{
pwmWrite
(
PWM_PIN_SPEED
,
84
);
}
else
if
(
gval
<=
110
)
{
pwmWrite
(
PWM_PIN_SPEED
,
85
);
}
else
if
(
gval
<=
120
)
{
pwmWrite
(
PWM_PIN_SPEED
,
86
);
}
else
if
(
gval
<=
130
)
{
pwmWrite
(
PWM_PIN_SPEED
,
87
);
}
else
if
(
gval
<=
140
)
{
pwmWrite
(
PWM_PIN_SPEED
,
88
);
}
else
if
(
gval
<=
150
)
{
pwmWrite
(
PWM_PIN_SPEED
,
89
);
}
else
if
(
gval
<=
160
)
{
pwmWrite
(
PWM_PIN_SPEED
,
90
);
}
else
if
(
gval
<=
170
)
{
pwmWrite
(
PWM_PIN_SPEED
,
91
);
}
else
if
(
gval
<=
180
)
{
pwmWrite
(
PWM_PIN_SPEED
,
92
);
}
else
if
(
gval
<=
190
)
{
pwmWrite
(
PWM_PIN_SPEED
,
93
);
}
else
if
(
gval
<=
200
)
{
pwmWrite
(
PWM_PIN_SPEED
,
94
);
}
}
}
void
mode_car0103_lift_back
(
unsigned
char
gval
)
{
void
mode_car0103_lift_back
(
unsigned
char
gval
)
{
int
b
=
0
;
if
(
gval
<
50
)
{
if
(
gval
<
50
)
{
pwmWrite
(
PWM_PIN_SPEED
,
75
);
pwmWrite
(
PWM_PIN_SPEED
,
75
);
}
else
if
(
gval
<=
55
)
{
pwmWrite
(
PWM_PIN_SPEED
,
72
);
}
else
if
(
gval
<=
60
)
{
}
else
if
(
gval
<=
60
)
{
pwmWrite
(
PWM_PIN_SPEED
,
71
);
pwmWrite
(
PWM_PIN_SPEED
,
71
);
}
else
if
(
gval
<=
65
)
{
}
else
if
(
gval
<=
70
)
{
pwmWrite
(
PWM_PIN_SPEED
,
70
);
pwmWrite
(
PWM_PIN_SPEED
,
70
);
}
else
if
(
gval
<=
70
)
{
}
else
if
(
gval
>
70
){
pwmWrite
(
PWM_PIN_SPEED
,
69
);
int
back_speed
=
70
-
(
gval
-
70
)
/
10
-
b
;
}
else
if
(
gval
<=
75
)
{
pwmWrite
(
PWM_PIN_SPEED
,
back_speed
);
pwmWrite
(
PWM_PIN_SPEED
,
68
);
}
}
else
if
(
gval
<=
90
)
{
pwmWrite
(
PWM_PIN_SPEED
,
67
);
}
else
if
(
gval
<=
100
)
{
pwmWrite
(
PWM_PIN_SPEED
,
66
);
}
else
if
(
gval
<=
110
)
{
pwmWrite
(
PWM_PIN_SPEED
,
65
);
}
else
if
(
gval
<=
120
)
{
pwmWrite
(
PWM_PIN_SPEED
,
64
);
}
else
if
(
gval
<=
130
)
{
pwmWrite
(
PWM_PIN_SPEED
,
63
);
}
else
if
(
gval
<=
140
)
{
pwmWrite
(
PWM_PIN_SPEED
,
62
);
}
else
if
(
gval
<=
150
)
{
pwmWrite
(
PWM_PIN_SPEED
,
61
);
}
else
if
(
gval
<=
160
)
{
pwmWrite
(
PWM_PIN_SPEED
,
60
);
}
else
if
(
gval
<=
170
)
{
pwmWrite
(
PWM_PIN_SPEED
,
59
);
}
else
if
(
gval
<=
180
)
{
pwmWrite
(
PWM_PIN_SPEED
,
58
);
}
else
if
(
gval
<=
190
)
{
pwmWrite
(
PWM_PIN_SPEED
,
57
);
}
else
if
(
gval
<=
200
)
{
pwmWrite
(
PWM_PIN_SPEED
,
56
);
}
}
}
void
mode_car0103_right_flont
(
unsigned
char
gval
)
{
void
mode_car0103_right_flont
(
unsigned
char
gval
)
{
int
b
=
0
;
if
(
gval
<
50
)
{
if
(
gval
<
50
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
75
);
pwmWrite
(
PWM_PIN_CHANGE
,
75
);
}
else
if
(
gval
<=
55
)
{
}
else
if
(
gval
<=
60
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
78
);
}
else
if
(
gval
<=
60
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
79
);
pwmWrite
(
PWM_PIN_CHANGE
,
79
);
}
else
if
(
gval
<=
65
)
{
}
else
if
(
gval
<=
70
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
80
);
pwmWrite
(
PWM_PIN_CHANGE
,
80
);
}
else
if
(
gval
<=
70
)
{
}
else
if
(
gval
>
70
){
pwmWrite
(
PWM_PIN_CHANGE
,
81
);
int
flont_speed
=
80
+
(
gval
-
70
)
/
10
+
b
;
}
else
if
(
gval
<=
75
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
flont_speed
);
pwmWrite
(
PWM_PIN_CHANGE
,
82
);
}
}
else
if
(
gval
<=
90
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
83
);
}
else
if
(
gval
<=
100
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
84
);
}
else
if
(
gval
<=
110
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
85
);
}
else
if
(
gval
<=
120
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
86
);
}
else
if
(
gval
<=
130
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
87
);
}
else
if
(
gval
<=
140
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
88
);
}
else
if
(
gval
<=
150
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
89
);
}
else
if
(
gval
<=
160
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
90
);
}
else
if
(
gval
<=
170
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
91
);
}
else
if
(
gval
<=
180
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
92
);
}
else
if
(
gval
<=
190
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
93
);
}
else
if
(
gval
<=
200
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
94
);
}
}
}
void
mode_car0103_right_back
(
unsigned
char
gval
)
{
void
mode_car0103_right_back
(
unsigned
char
gval
)
{
int
b
=
0
;
if
(
gval
<
50
)
{
if
(
gval
<
50
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
75
);
pwmWrite
(
PWM_PIN_CHANGE
,
75
);
}
else
if
(
gval
<=
55
)
{
}
else
if
(
gval
<=
60
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
71
);
pwmWrite
(
PWM_PIN_CHANGE
,
71
);
}
else
if
(
gval
<=
60
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
70
);
}
else
if
(
gval
<=
65
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
70
);
}
else
if
(
gval
<=
70
)
{
}
else
if
(
gval
<=
70
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
70
);
pwmWrite
(
PWM_PIN_CHANGE
,
70
);
}
else
if
(
gval
<=
75
)
{
}
else
if
(
gval
>
70
){
pwmWrite
(
PWM_PIN_CHANGE
,
69
);
int
back_speed
=
70
-
(
gval
-
70
)
/
10
-
b
;
}
else
if
(
gval
<=
90
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
back_speed
);
pwmWrite
(
PWM_PIN_CHANGE
,
68
);
}
}
else
if
(
gval
<=
100
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
68
);
}
else
if
(
gval
<=
110
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
66
);
}
else
if
(
gval
<=
120
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
65
);
}
else
if
(
gval
<=
130
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
64
);
}
else
if
(
gval
<=
140
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
62
);
}
else
if
(
gval
<=
150
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
60
);
}
else
if
(
gval
<=
160
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
59
);
}
else
if
(
gval
<=
170
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
58
);
}
else
if
(
gval
<=
180
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
57
);
}
else
if
(
gval
<=
190
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
56
);
}
else
if
(
gval
<=
200
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
55
);
}
}
}
void
car0103_change
(
unsigned
char
*
buf
)
{
void
car0103_change
(
unsigned
char
*
buf
)
{
unsigned
char
mode
=
buf
[
1
];
unsigned
char
mode
=
buf
[
1
];
unsigned
char
val
=
buf
[
2
];
unsigned
char
val
=
buf
[
2
];
static
int
modecount_car0103
=
0
;
if
(
mode
==
1
)
{
if
(
mode
==
1
)
{
//mode_lift_flont(val);
//mode_lift_flont(val);
mode_car0103_right_back
(
val
);
mode_car0103_right_flont
(
val
);
modecount_car0103
=
0
;
modecount_car0103
=
0
;
}
else
if
(
mode
==
2
)
{
}
else
if
(
mode
==
2
)
{
//mode_lift_back(val);
//mode_lift_back(val);
mode_car0103_right_
flont
(
val
);
mode_car0103_right_
back
(
val
);
modecount_car0103
=
1
;
modecount_car0103
=
1
;
}
}
if
((
mode
==
1
||
mode
==
2
)
&&
val
==
0
)
modecount_car0103
=
0
;
if
((
mode
==
1
||
mode
==
2
)
&&
val
==
0
)
modecount_car0103
=
0
;
if
(
mode
==
3
)
{
if
(
mode
==
3
)
{
if
(
modecount_car0103
==
0
)
mode_car0103_lift_back
(
val
+
25
);
if
(
modecount_car0103
==
0
)
mode_car0103_lift_back
(
val
);
if
(
modecount_car0103
==
1
)
mode_car0103_lift_flont
(
val
+
25
);
if
(
modecount_car0103
==
1
)
mode_car0103_lift_flont
(
val
);
}
else
if
(
mode
==
4
)
{
}
else
if
(
mode
==
4
)
{
if
(
modecount_car0103
==
0
)
mode_car0103_lift_flont
(
val
+
25
);
if
(
modecount_car0103
==
0
)
mode_car0103_lift_flont
(
val
);
if
(
modecount_car0103
==
1
)
mode_car0103_lift_back
(
val
+
25
);
if
(
modecount_car0103
==
1
)
mode_car0103_lift_back
(
val
);
}
}
}
}
\ No newline at end of file
drivers/devicecontrol/car0104_control.c
View file @
1e65c941
...
@@ -9,30 +9,34 @@ void car0104_stop() {
...
@@ -9,30 +9,34 @@ void car0104_stop() {
}
}
void
car0104_back
(
unsigned
char
gval
)
{
void
car0104_back
(
unsigned
char
gval
)
{
int
b
=
0
;
int
b
=
7
;
int
c
=
2
;
if
(
gval
<
50
)
{
if
(
gval
<
50
)
{
pwmWrite
(
PWM_PIN_SPEED
,
75
);
pwmWrite
(
PWM_PIN_SPEED
,
75
);
}
}
else
if
(
gval
<=
60
)
{
else
if
(
gval
<=
60
)
{
pwmWrite
(
PWM_PIN_SPEED
,
79
);
pwmWrite
(
PWM_PIN_SPEED
,
85
);
}
else
if
(
gval
<=
70
)
{
}
else
if
(
gval
<=
70
)
{
pwmWrite
(
PWM_PIN_SPEED
,
8
0
);
pwmWrite
(
PWM_PIN_SPEED
,
8
7
);
}
else
if
(
gval
>
70
){
}
else
if
(
gval
>
70
){
int
flont_speed
=
80
+
(
gval
-
70
)
/
10
+
b
;
int
flont_speed
=
80
+
(
gval
-
70
)
/
10
+
b
;
if
(
flont_speed
>
95
)
flont_speed
=
95
;
pwmWrite
(
PWM_PIN_SPEED
,
flont_speed
);
pwmWrite
(
PWM_PIN_SPEED
,
flont_speed
);
}
}
}
}
void
car0104_flont
(
unsigned
char
gval
)
{
void
car0104_flont
(
unsigned
char
gval
)
{
int
b
=
0
;
int
b
=
7
;
int
c
=
2
;
if
(
gval
<
50
)
{
if
(
gval
<
50
)
{
pwmWrite
(
PWM_PIN_SPEED
,
75
);
pwmWrite
(
PWM_PIN_SPEED
,
75
);
}
else
if
(
gval
<=
60
)
{
}
else
if
(
gval
<=
60
)
{
pwmWrite
(
PWM_PIN_SPEED
,
71
);
pwmWrite
(
PWM_PIN_SPEED
,
65
);
}
else
if
(
gval
<=
70
)
{
}
else
if
(
gval
<=
70
)
{
pwmWrite
(
PWM_PIN_SPEED
,
70
);
pwmWrite
(
PWM_PIN_SPEED
,
63
);
}
else
if
(
gval
>
70
){
}
else
if
(
gval
>
70
){
int
back_speed
=
70
-
(
gval
-
70
)
/
10
-
b
;
int
back_speed
=
70
-
(
gval
-
70
)
/
10
-
b
;
if
(
back_speed
<
55
)
back_speed
=
55
;
pwmWrite
(
PWM_PIN_SPEED
,
back_speed
);
pwmWrite
(
PWM_PIN_SPEED
,
back_speed
);
}
}
}
}
...
@@ -122,14 +126,14 @@ void car0104_change(unsigned char *buf) {
...
@@ -122,14 +126,14 @@ void car0104_change(unsigned char *buf) {
unsigned
char
val
=
buf
[
2
];
unsigned
char
val
=
buf
[
2
];
if
(
mode
==
1
)
{
if
(
mode
==
1
)
{
car0104_flont
(
val
+
20
);
car0104_flont
(
val
);
}
else
if
(
mode
==
2
)
{
}
else
if
(
mode
==
2
)
{
car0104_back
(
val
+
20
);
car0104_back
(
val
);
}
else
if
(
mode
==
3
)
{
}
else
if
(
mode
==
3
)
{
if
(
val
!=
0
)
car0104_lift
(
90
);
if
(
val
!=
0
)
car0104_lift
(
85
);
else
car0104_lift
(
0
);
else
car0104_lift
(
0
);
}
else
if
(
mode
==
4
)
{
}
else
if
(
mode
==
4
)
{
if
(
val
!=
0
)
car0104_right
(
90
);
if
(
val
!=
0
)
car0104_right
(
85
);
else
car0104_lift
(
0
);
else
car0104_lift
(
0
);
}
}
...
...
drivers/devicecontrol/tank0202_control.c
View file @
1e65c941
...
@@ -186,11 +186,11 @@ void tank0202_change(unsigned char *buf) {
...
@@ -186,11 +186,11 @@ void tank0202_change(unsigned char *buf) {
if
((
mode
==
1
||
mode
==
2
)
&&
val
==
0
)
g_modecount_tank0202
=
0
;
if
((
mode
==
1
||
mode
==
2
)
&&
val
==
0
)
g_modecount_tank0202
=
0
;
if
(
mode
==
3
)
{
if
(
mode
==
3
)
{
if
(
g_modecount_tank0202
==
0
)
mode_lift_back
(
val
+
20
);
if
(
g_modecount_tank0202
==
0
)
mode_lift_back
(
val
+
15
);
if
(
g_modecount_tank0202
==
1
)
mode_lift_flont
(
val
+
20
);
if
(
g_modecount_tank0202
==
1
)
mode_lift_flont
(
val
+
15
);
}
else
if
(
mode
==
4
)
{
}
else
if
(
mode
==
4
)
{
if
(
g_modecount_tank0202
==
0
)
mode_lift_flont
(
val
+
20
);
if
(
g_modecount_tank0202
==
0
)
mode_lift_flont
(
val
+
15
);
if
(
g_modecount_tank0202
==
1
)
mode_lift_back
(
val
+
20
);
if
(
g_modecount_tank0202
==
1
)
mode_lift_back
(
val
+
15
);
}
}
}
}
drivers/devicecontrol/tank0203_control.c
View file @
1e65c941
...
@@ -23,6 +23,7 @@ void tank0203_mode_lift_flont(unsigned char gval) {
...
@@ -23,6 +23,7 @@ void tank0203_mode_lift_flont(unsigned char gval) {
pwmWrite
(
PWM_PIN_SPEED
,
80
);
pwmWrite
(
PWM_PIN_SPEED
,
80
);
}
else
if
(
gval
>
70
){
}
else
if
(
gval
>
70
){
int
flont_speed
=
80
+
(
gval
-
70
)
/
10
+
b
;
int
flont_speed
=
80
+
(
gval
-
70
)
/
10
+
b
;
if
(
flont_speed
>
95
)
flont_speed
=
95
;
pwmWrite
(
PWM_PIN_SPEED
,
flont_speed
);
pwmWrite
(
PWM_PIN_SPEED
,
flont_speed
);
}
}
}
}
...
@@ -37,6 +38,7 @@ void tank0203_mode_lift_back(unsigned char gval) {
...
@@ -37,6 +38,7 @@ void tank0203_mode_lift_back(unsigned char gval) {
pwmWrite
(
PWM_PIN_SPEED
,
70
);
pwmWrite
(
PWM_PIN_SPEED
,
70
);
}
else
if
(
gval
>
70
){
}
else
if
(
gval
>
70
){
int
back_speed
=
70
-
(
gval
-
70
)
/
10
-
b
;
int
back_speed
=
70
-
(
gval
-
70
)
/
10
-
b
;
if
(
back_speed
<
55
)
back_speed
=
55
;
pwmWrite
(
PWM_PIN_SPEED
,
back_speed
);
pwmWrite
(
PWM_PIN_SPEED
,
back_speed
);
}
}
}
}
...
@@ -51,6 +53,7 @@ void tank0203_mode_right_back(unsigned char gval) {
...
@@ -51,6 +53,7 @@ void tank0203_mode_right_back(unsigned char gval) {
pwmWrite
(
PWM_PIN_CHANGE
,
80
);
pwmWrite
(
PWM_PIN_CHANGE
,
80
);
}
else
if
(
gval
>
70
){
}
else
if
(
gval
>
70
){
int
flont_speed
=
80
+
(
gval
-
70
)
/
10
+
b
;
int
flont_speed
=
80
+
(
gval
-
70
)
/
10
+
b
;
if
(
flont_speed
>
95
)
flont_speed
=
95
;
pwmWrite
(
PWM_PIN_CHANGE
,
flont_speed
);
pwmWrite
(
PWM_PIN_CHANGE
,
flont_speed
);
}
}
}
}
...
@@ -65,6 +68,7 @@ void tank0203_mode_right_flont(unsigned char gval) {
...
@@ -65,6 +68,7 @@ void tank0203_mode_right_flont(unsigned char gval) {
pwmWrite
(
PWM_PIN_CHANGE
,
70
);
pwmWrite
(
PWM_PIN_CHANGE
,
70
);
}
else
if
(
gval
>
70
){
}
else
if
(
gval
>
70
){
int
back_speed
=
70
-
(
gval
-
70
)
/
10
-
b
;
int
back_speed
=
70
-
(
gval
-
70
)
/
10
-
b
;
if
(
back_speed
<
55
)
back_speed
=
55
;
pwmWrite
(
PWM_PIN_CHANGE
,
back_speed
);
pwmWrite
(
PWM_PIN_CHANGE
,
back_speed
);
}
}
}
}
...
...
drivers/devicecontrol/tank0206_control.c
View file @
1e65c941
...
@@ -9,163 +9,68 @@ void tank0206_middle() {
...
@@ -9,163 +9,68 @@ void tank0206_middle() {
}
}
void
tank0206_mode_lift_flont
(
unsigned
char
gval
)
{
void
tank0206_mode_lift_flont
(
unsigned
char
gval
)
{
int
b
=
0
;
if
(
gval
<
50
)
{
if
(
gval
<
50
)
{
pwmWrite
(
PWM_PIN_SPEED
,
75
);
pwmWrite
(
PWM_PIN_SPEED
,
75
);
}
else
if
(
gval
<=
55
)
{
}
pwmWrite
(
PWM_PIN_SPEED
,
76
);
else
if
(
gval
<=
55
)
{
}
else
if
(
gval
<=
60
)
{
pwmWrite
(
PWM_PIN_SPEED
,
77
);
}
else
if
(
gval
<=
65
)
{
pwmWrite
(
PWM_PIN_SPEED
,
78
);
}
else
if
(
gval
<=
70
)
{
pwmWrite
(
PWM_PIN_SPEED
,
79
);
}
else
if
(
gval
<=
75
)
{
pwmWrite
(
PWM_PIN_SPEED
,
80
);
pwmWrite
(
PWM_PIN_SPEED
,
80
);
}
else
if
(
gval
<=
90
)
{
}
else
if
(
gval
<=
90
)
{
pwmWrite
(
PWM_PIN_SPEED
,
81
);
pwmWrite
(
PWM_PIN_SPEED
,
79
);
}
else
if
(
gval
<=
100
)
{
}
else
if
(
gval
<=
100
)
{
pwmWrite
(
PWM_PIN_SPEED
,
82
);
pwmWrite
(
PWM_PIN_SPEED
,
79
);
}
else
if
(
gval
<=
110
)
{
}
else
if
(
gval
>
100
){
pwmWrite
(
PWM_PIN_SPEED
,
83
);
int
flont_speed
=
79
+
(
gval
-
70
)
/
10
+
b
;
}
else
if
(
gval
<=
120
)
{
if
(
flont_speed
>
95
)
flont_speed
=
95
;
pwmWrite
(
PWM_PIN_SPEED
,
84
);
pwmWrite
(
PWM_PIN_SPEED
,
flont_speed
);
}
else
if
(
gval
<=
130
)
{
}
pwmWrite
(
PWM_PIN_SPEED
,
85
);
}
else
if
(
gval
<=
140
)
{
pwmWrite
(
PWM_PIN_SPEED
,
86
);
}
else
if
(
gval
<=
150
)
{
pwmWrite
(
PWM_PIN_SPEED
,
87
);
}
else
if
(
gval
<=
160
)
{
pwmWrite
(
PWM_PIN_SPEED
,
88
);
}
else
if
(
gval
<=
170
)
{
pwmWrite
(
PWM_PIN_SPEED
,
89
);
}
else
if
(
gval
<=
180
)
{
pwmWrite
(
PWM_PIN_SPEED
,
90
);
}
else
if
(
gval
<=
190
)
{
pwmWrite
(
PWM_PIN_SPEED
,
91
);
}
else
if
(
gval
<=
200
)
{
pwmWrite
(
PWM_PIN_SPEED
,
94
);
}
}
}
void
tank0206_mode_lift_back
(
unsigned
char
gval
)
{
void
tank0206_mode_lift_back
(
unsigned
char
gval
)
{
int
b
=
0
;
if
(
gval
<
50
)
{
if
(
gval
<
50
)
{
pwmWrite
(
PWM_PIN_SPEED
,
75
);
pwmWrite
(
PWM_PIN_SPEED
,
75
);
}
else
if
(
gval
<=
55
)
{
pwmWrite
(
PWM_PIN_SPEED
,
74
);
}
else
if
(
gval
<=
60
)
{
}
else
if
(
gval
<=
60
)
{
pwmWrite
(
PWM_PIN_SPEED
,
73
);
}
else
if
(
gval
<=
65
)
{
pwmWrite
(
PWM_PIN_SPEED
,
72
);
}
else
if
(
gval
<=
70
)
{
pwmWrite
(
PWM_PIN_SPEED
,
71
);
}
else
if
(
gval
<=
75
)
{
pwmWrite
(
PWM_PIN_SPEED
,
70
);
pwmWrite
(
PWM_PIN_SPEED
,
70
);
}
else
if
(
gval
<=
90
)
{
}
else
if
(
gval
<=
90
)
{
pwmWrite
(
PWM_PIN_SPEED
,
69
);
pwmWrite
(
PWM_PIN_SPEED
,
71
);
}
else
if
(
gval
<=
100
)
{
}
else
if
(
gval
<=
100
)
{
pwmWrite
(
PWM_PIN_SPEED
,
68
);
pwmWrite
(
PWM_PIN_SPEED
,
71
);
}
else
if
(
gval
<=
110
)
{
}
else
if
(
gval
>
100
){
pwmWrite
(
PWM_PIN_SPEED
,
67
);
int
back_speed
=
71
-
(
gval
-
70
)
/
10
-
b
;
}
else
if
(
gval
<=
120
)
{
if
(
back_speed
<
55
)
back_speed
=
55
;
pwmWrite
(
PWM_PIN_SPEED
,
66
);
pwmWrite
(
PWM_PIN_SPEED
,
back_speed
);
}
else
if
(
gval
<=
130
)
{
}
pwmWrite
(
PWM_PIN_SPEED
,
65
);
}
else
if
(
gval
<=
140
)
{
pwmWrite
(
PWM_PIN_SPEED
,
64
);
}
else
if
(
gval
<=
150
)
{
pwmWrite
(
PWM_PIN_SPEED
,
63
);
}
else
if
(
gval
<=
160
)
{
pwmWrite
(
PWM_PIN_SPEED
,
62
);
}
else
if
(
gval
<=
170
)
{
pwmWrite
(
PWM_PIN_SPEED
,
61
);
}
else
if
(
gval
<=
180
)
{
pwmWrite
(
PWM_PIN_SPEED
,
60
);
}
else
if
(
gval
<=
190
)
{
pwmWrite
(
PWM_PIN_SPEED
,
59
);
}
else
if
(
gval
<=
200
)
{
pwmWrite
(
PWM_PIN_SPEED
,
56
);
}
}
}
void
tank0206_mode_right_flont
(
unsigned
char
gval
)
{
void
tank0206_mode_right_flont
(
unsigned
char
gval
)
{
int
b
=
0
;
if
(
gval
<
50
)
{
if
(
gval
<
50
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
75
);
pwmWrite
(
PWM_PIN_CHANGE
,
75
);
}
else
if
(
gval
<=
55
)
{
}
else
if
(
gval
<=
60
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
76
);
}
else
if
(
gval
<=
60
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
77
);
}
else
if
(
gval
<=
65
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
78
);
}
else
if
(
gval
<=
70
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
79
);
pwmWrite
(
PWM_PIN_CHANGE
,
79
);
}
else
if
(
gval
<=
75
)
{
}
else
if
(
gval
<=
100
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
80
);
pwmWrite
(
PWM_PIN_CHANGE
,
79
);
}
else
if
(
gval
<=
90
)
{
}
else
if
(
gval
>
100
){
pwmWrite
(
PWM_PIN_CHANGE
,
81
);
int
flont_speed
=
80
+
(
gval
-
70
)
/
10
+
b
;
}
else
if
(
gval
<=
100
)
{
if
(
flont_speed
>
95
)
flont_speed
=
95
;
pwmWrite
(
PWM_PIN_CHANGE
,
82
);
pwmWrite
(
PWM_PIN_CHANGE
,
flont_speed
);
}
else
if
(
gval
<=
110
)
{
}
pwmWrite
(
PWM_PIN_CHANGE
,
83
);
}
else
if
(
gval
<=
120
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
84
);
}
else
if
(
gval
<=
130
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
85
);
}
else
if
(
gval
<=
140
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
86
);
}
else
if
(
gval
<=
150
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
87
);
}
else
if
(
gval
<=
160
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
88
);
}
else
if
(
gval
<=
170
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
89
);
}
else
if
(
gval
<=
180
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
90
);
}
else
if
(
gval
<=
190
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
91
);
}
else
if
(
gval
<=
200
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
94
);
}
}
}
void
tank0206_mode_right_back
(
unsigned
char
gval
)
{
void
tank0206_mode_right_back
(
unsigned
char
gval
)
{
int
b
=
0
;
if
(
gval
<
50
)
{
if
(
gval
<
50
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
75
);
pwmWrite
(
PWM_PIN_CHANGE
,
75
);
}
else
if
(
gval
<=
55
)
{
}
else
if
(
gval
<=
60
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
74
);
}
else
if
(
gval
<=
60
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
73
);
}
else
if
(
gval
<=
65
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
72
);
}
else
if
(
gval
<=
70
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
71
);
}
else
if
(
gval
<=
75
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
70
);
pwmWrite
(
PWM_PIN_CHANGE
,
70
);
}
else
if
(
gval
<=
90
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
69
);
}
else
if
(
gval
<=
100
)
{
}
else
if
(
gval
<=
100
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
68
);
pwmWrite
(
PWM_PIN_CHANGE
,
71
);
}
else
if
(
gval
<=
110
)
{
}
else
if
(
gval
>
100
){
pwmWrite
(
PWM_PIN_CHANGE
,
67
);
int
back_speed
=
70
-
(
gval
-
70
)
/
10
-
b
;
}
else
if
(
gval
<=
120
)
{
if
(
back_speed
<
55
)
back_speed
=
55
;
pwmWrite
(
PWM_PIN_CHANGE
,
66
);
pwmWrite
(
PWM_PIN_CHANGE
,
back_speed
);
}
else
if
(
gval
<=
130
)
{
}
pwmWrite
(
PWM_PIN_CHANGE
,
65
);
}
else
if
(
gval
<=
140
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
64
);
}
else
if
(
gval
<=
150
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
63
);
}
else
if
(
gval
<=
160
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
62
);
}
else
if
(
gval
<=
170
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
61
);
}
else
if
(
gval
<=
180
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
60
);
}
else
if
(
gval
<=
190
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
59
);
}
else
if
(
gval
<=
200
)
{
pwmWrite
(
PWM_PIN_CHANGE
,
55
);
}
}
}
void
tank0206_change
(
unsigned
char
*
buf
)
{
void
tank0206_change
(
unsigned
char
*
buf
)
{
...
@@ -186,12 +91,12 @@ void tank0206_change(unsigned char *buf) {
...
@@ -186,12 +91,12 @@ void tank0206_change(unsigned char *buf) {
if
((
mode
==
1
||
mode
==
2
)
&&
val
==
0
)
modecount_tank0206
=
0
;
if
((
mode
==
1
||
mode
==
2
)
&&
val
==
0
)
modecount_tank0206
=
0
;
if
(
mode
==
3
)
{
if
(
mode
==
3
)
{
if
(
modecount_tank0206
==
0
)
tank0206_mode_lift_flont
(
val
+
10
);
if
(
modecount_tank0206
==
0
)
tank0206_mode_lift_flont
(
val
);
if
(
modecount_tank0206
==
1
)
tank0206_mode_lift_back
(
val
+
10
);
if
(
modecount_tank0206
==
1
)
tank0206_mode_lift_back
(
val
);
}
else
if
(
mode
==
4
)
{
}
else
if
(
mode
==
4
)
{
if
(
modecount_tank0206
==
0
)
tank0206_mode_lift_back
(
val
+
10
);
if
(
modecount_tank0206
==
0
)
tank0206_mode_lift_back
(
val
);
if
(
modecount_tank0206
==
1
)
tank0206_mode_lift_flont
(
val
+
10
);
if
(
modecount_tank0206
==
1
)
tank0206_mode_lift_flont
(
val
);
}
}
}
}
...
...
drivers/gpio/gpio_control.c
View file @
1e65c941
...
@@ -191,9 +191,9 @@ void tank0202_pwm_value(int pin,int value) { //软件陪我们控制调速
...
@@ -191,9 +191,9 @@ void tank0202_pwm_value(int pin,int value) { //软件陪我们控制调速
if
(
value
==
1
)
{
if
(
value
==
1
)
{
if
(
pin
==
27
){
if
(
pin
==
27
){
softPwmWrite
(
pin
,
50
);
softPwmWrite
(
pin
,
45
);
}
else
{
}
else
{
softPwmWrite
(
pin
,
3
0
);
softPwmWrite
(
pin
,
4
0
);
my_zlog_debug
(
"pwm:%d"
,
pin
);
my_zlog_debug
(
"pwm:%d"
,
pin
);
}
}
...
@@ -218,7 +218,7 @@ void tank0203_pwm_value(int pin,int value) { //软件陪我们控制调速
...
@@ -218,7 +218,7 @@ void tank0203_pwm_value(int pin,int value) { //软件陪我们控制调速
if
(
pin
==
27
){
if
(
pin
==
27
){
softPwmWrite
(
pin
,
45
);
softPwmWrite
(
pin
,
45
);
}
else
{
}
else
{
softPwmWrite
(
pin
,
3
0
);
softPwmWrite
(
pin
,
3
5
);
my_zlog_debug
(
"pwm:%d"
,
pin
);
my_zlog_debug
(
"pwm:%d"
,
pin
);
}
}
...
@@ -241,7 +241,7 @@ void tank0206_pwm_value(int pin,int value) { //软件陪我们控制调速
...
@@ -241,7 +241,7 @@ void tank0206_pwm_value(int pin,int value) { //软件陪我们控制调速
if
(
value
==
1
)
{
if
(
value
==
1
)
{
if
(
pin
==
27
){
if
(
pin
==
27
){
softPwmWrite
(
pin
,
45
);
softPwmWrite
(
pin
,
50
);
}
else
{
}
else
{
softPwmWrite
(
pin
,
35
);
softPwmWrite
(
pin
,
35
);
my_zlog_debug
(
"pwm:%d"
,
pin
);
my_zlog_debug
(
"pwm:%d"
,
pin
);
...
...
drivers/sensors/tank_angle.c
View file @
1e65c941
...
@@ -2,10 +2,6 @@
...
@@ -2,10 +2,6 @@
#include "common.h"
#include "common.h"
#include "ads1115.h"
#include "ads1115.h"
#define LIFT_LIMIT 170
#define MIDDLE_LIMIT 180
#define RIGHT_LIMIT 205
double
tank_angle
(){
double
tank_angle
(){
double
angle
=
0
;
double
angle
=
0
;
float
angle_shot
=
ads1115_read_channel
(
2
);
float
angle_shot
=
ads1115_read_channel
(
2
);
...
@@ -20,8 +16,11 @@ double tank_angle(){
...
@@ -20,8 +16,11 @@ double tank_angle(){
int
angle_limit
(){
int
angle_limit
(){
int
tank_limit_angele
=
tank_angle
();
if
(
ANGLE_LIMIT_INDEX
==
1
){
if
(
tank_limit_angele
>=
LIFT_LIMIT
&&
tank_limit_angele
<=
MIDDLE_LIMIT
)
return
1
;
int
tank_limit_angele
=
tank_angle
();
else
if
(
tank_limit_angele
>=
MIDDLE_LIMIT
&&
tank_limit_angele
<=
RIGHT_LIMIT
)
return
2
;
if
(
tank_limit_angele
>=
LIFT_LIMIT
&&
tank_limit_angele
<=
MIDDLE_LIMIT
)
return
1
;
return
0
;
else
if
(
tank_limit_angele
>=
MIDDLE_LIMIT
&&
tank_limit_angele
<=
RIGHT_LIMIT
)
return
2
;
return
0
;
}
else
return
0
;
}
}
\ No newline at end of file
drivers/sensors/tank_angle.h
View file @
1e65c941
#ifndef TANK_ANGLE_H
#ifndef TANK_ANGLE_H
#define TANK_ANGLE_H
#define TANK_ANGLE_H
#define LIFT_LIMIT 160
#define MIDDLE_LIMIT 180
#define RIGHT_LIMIT 210
#define ANGLE_LIMIT_INDEX 1 //是否开启角度旋转
double
tank_angle
();
double
tank_angle
();
int
angle_limit
();
int
angle_limit
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment