User | Revision | Line number | New contents of line |
PA |
0:e4f37b52019a
|
1
|
/*****************************************************************************
|
PA |
0:e4f37b52019a
|
2
|
** @brief controlling **
|
PA |
0:e4f37b52019a
|
3
|
** @detail **
|
PA |
0:e4f37b52019a
|
4
|
** @argument: ipwd: pwd class **
|
PA |
0:e4f37b52019a
|
5
|
*****************************************************************************/
|
PA |
0:e4f37b52019a
|
6
|
|
PA |
0:e4f37b52019a
|
7
|
#include "mbed.h"
|
PA |
0:e4f37b52019a
|
8
|
#include "LEDFunctions.h"
|
PA |
0:e4f37b52019a
|
9
|
#include "UniPWM.h"
|
PA |
0:e4f37b52019a
|
10
|
//#include "rtos.h"
|
PA |
0:e4f37b52019a
|
11
|
|
PA |
0:e4f37b52019a
|
12
|
//Serial pc(USBTX,USBRX);
|
PA |
0:e4f37b52019a
|
13
|
|
PA |
0:e4f37b52019a
|
14
|
LEDFunctions::LEDFunctions()
|
PA |
0:e4f37b52019a
|
15
|
{
|
PA |
0:e4f37b52019a
|
16
|
m_pwm.push_back(new UniPWM(p5));
|
PA |
0:e4f37b52019a
|
17
|
m_pwm[0]->duty(0);
|
PA |
0:e4f37b52019a
|
18
|
m_map.insert(std::pair<std::string, int>("p5", 0));
|
PA |
0:e4f37b52019a
|
19
|
m_pwm.push_back(new UniPWM(p6));
|
PA |
0:e4f37b52019a
|
20
|
m_pwm[1]->duty(0);
|
PA |
0:e4f37b52019a
|
21
|
m_map.insert(std::pair<std::string, int>("p6", 1));
|
PA |
0:e4f37b52019a
|
22
|
m_pwm.push_back(new UniPWM(p7));
|
PA |
0:e4f37b52019a
|
23
|
m_pwm[2]->duty(0);
|
PA |
0:e4f37b52019a
|
24
|
m_map.insert(std::pair<std::string, int>("p7", 2));
|
PA |
0:e4f37b52019a
|
25
|
m_pwm.push_back(new UniPWM(p8));
|
PA |
0:e4f37b52019a
|
26
|
m_pwm[3]->duty(0);
|
PA |
0:e4f37b52019a
|
27
|
m_map.insert(std::pair<std::string, int>("p8", 3));
|
PA |
0:e4f37b52019a
|
28
|
m_pwm.push_back(new UniPWM(p9));
|
PA |
0:e4f37b52019a
|
29
|
m_pwm[4]->duty(0);
|
PA |
0:e4f37b52019a
|
30
|
m_map.insert(std::pair<std::string, int>("p9", 4));
|
PA |
0:e4f37b52019a
|
31
|
m_pwm.push_back(new UniPWM(p10));
|
PA |
0:e4f37b52019a
|
32
|
m_pwm[5]->duty(0);
|
PA |
0:e4f37b52019a
|
33
|
m_map.insert(std::pair<std::string, int>("p10", 5));
|
PA |
0:e4f37b52019a
|
34
|
m_pwm.push_back(new UniPWM(p11));
|
PA |
0:e4f37b52019a
|
35
|
m_pwm[6]->duty(0);
|
PA |
0:e4f37b52019a
|
36
|
m_map.insert(std::pair<std::string, int>("p11", 6));
|
PA |
0:e4f37b52019a
|
37
|
m_pwm.push_back(new UniPWM(p12));
|
PA |
0:e4f37b52019a
|
38
|
m_pwm[7]->duty(0);
|
PA |
0:e4f37b52019a
|
39
|
m_map.insert(std::pair<std::string, int>("p12", 7));
|
PA |
0:e4f37b52019a
|
40
|
m_pwm.push_back(new UniPWM(p13));
|
PA |
0:e4f37b52019a
|
41
|
m_pwm[8]->duty(0);
|
PA |
0:e4f37b52019a
|
42
|
m_map.insert(std::pair<std::string, int>("p13", 8));
|
PA |
0:e4f37b52019a
|
43
|
m_pwm.push_back(new UniPWM(p14));
|
PA |
0:e4f37b52019a
|
44
|
m_pwm[9]->duty(0);
|
PA |
0:e4f37b52019a
|
45
|
m_map.insert(std::pair<std::string, int>("p14", 9));
|
PA |
0:e4f37b52019a
|
46
|
m_pwm.push_back(new UniPWM(p15)); // UniPWM(p15)
|
PA |
0:e4f37b52019a
|
47
|
m_pwm[10]->duty(0);
|
PA |
0:e4f37b52019a
|
48
|
m_map.insert(std::pair<std::string, int>("p15", 10));
|
PA |
0:e4f37b52019a
|
49
|
m_pwm.push_back(new UniPWM(p16));
|
PA |
0:e4f37b52019a
|
50
|
m_pwm[11]->duty(0);
|
PA |
0:e4f37b52019a
|
51
|
m_map.insert(std::pair<std::string, int>("p16", 11));
|
PA |
0:e4f37b52019a
|
52
|
m_pwm.push_back(new UniPWM(p17));
|
PA |
0:e4f37b52019a
|
53
|
m_pwm[12]->duty(0);
|
PA |
0:e4f37b52019a
|
54
|
m_map.insert(std::pair<std::string, int>("p17", 12));
|
PA |
0:e4f37b52019a
|
55
|
m_pwm.push_back(new UniPWM(p18));
|
PA |
0:e4f37b52019a
|
56
|
m_pwm[13]->duty(0);
|
PA |
0:e4f37b52019a
|
57
|
m_map.insert(std::pair<std::string, int>("p18", 13));
|
PA |
0:e4f37b52019a
|
58
|
m_pwm.push_back(new UniPWM(p19));
|
PA |
0:e4f37b52019a
|
59
|
m_pwm[14]->duty(0);
|
PA |
0:e4f37b52019a
|
60
|
m_map.insert(std::pair<std::string, int>("p19", 14));
|
PA |
0:e4f37b52019a
|
61
|
m_pwm.push_back(new UniPWM(p20));
|
PA |
0:e4f37b52019a
|
62
|
m_pwm[15]->duty(0);
|
PA |
0:e4f37b52019a
|
63
|
m_map.insert(std::pair<std::string, int>("p20", 15));
|
PA |
0:e4f37b52019a
|
64
|
m_pwm.push_back(new UniPWM(p21));
|
PA |
0:e4f37b52019a
|
65
|
m_pwm[16]->duty(0);
|
PA |
0:e4f37b52019a
|
66
|
m_map.insert(std::pair<std::string, int>("p21", 16));
|
PA |
0:e4f37b52019a
|
67
|
m_pwm.push_back(new UniPWM(p22));
|
PA |
0:e4f37b52019a
|
68
|
m_pwm[17]->duty(0);
|
PA |
0:e4f37b52019a
|
69
|
m_map.insert(std::pair<std::string, int>("p22", 17));
|
PA |
0:e4f37b52019a
|
70
|
m_pwm.push_back(new UniPWM(p23));
|
PA |
0:e4f37b52019a
|
71
|
m_pwm[18]->duty(0);
|
PA |
0:e4f37b52019a
|
72
|
m_map.insert(std::pair<std::string, int>("p23", 18));
|
PA |
0:e4f37b52019a
|
73
|
m_pwm.push_back(new UniPWM(p24));
|
PA |
0:e4f37b52019a
|
74
|
m_pwm[19]->duty(0);
|
PA |
0:e4f37b52019a
|
75
|
m_map.insert(std::pair<std::string, int>("p24", 19));
|
PA |
0:e4f37b52019a
|
76
|
m_pwm.push_back(new UniPWM(p25));
|
PA |
0:e4f37b52019a
|
77
|
m_pwm[20]->duty(0);
|
PA |
0:e4f37b52019a
|
78
|
m_map.insert(std::pair<std::string, int>("p25", 20));
|
PA |
0:e4f37b52019a
|
79
|
m_pwm.push_back(new UniPWM(p26));
|
PA |
0:e4f37b52019a
|
80
|
m_pwm[21]->duty(0);
|
PA |
0:e4f37b52019a
|
81
|
m_map.insert(std::pair<std::string, int>("p26", 21));
|
PA |
0:e4f37b52019a
|
82
|
m_pwm.push_back(new UniPWM(p27));
|
PA |
0:e4f37b52019a
|
83
|
m_pwm[22]->duty(0);
|
PA |
0:e4f37b52019a
|
84
|
m_map.insert(std::pair<std::string, int>("p27", 22));
|
PA |
0:e4f37b52019a
|
85
|
m_pwm.push_back(new UniPWM(p28));
|
PA |
0:e4f37b52019a
|
86
|
m_pwm[23]->duty(0);
|
PA |
0:e4f37b52019a
|
87
|
m_map.insert(std::pair<std::string, int>("p28", 23));
|
PA |
0:e4f37b52019a
|
88
|
m_pwm.push_back(new UniPWM(p29));
|
PA |
0:e4f37b52019a
|
89
|
m_pwm[24]->duty(0);
|
PA |
0:e4f37b52019a
|
90
|
m_map.insert(std::pair<std::string, int>("p29", 24));
|
PA |
0:e4f37b52019a
|
91
|
m_pwm.push_back(new UniPWM(p30));
|
PA |
0:e4f37b52019a
|
92
|
m_pwm[25]->duty(0);
|
PA |
0:e4f37b52019a
|
93
|
m_map.insert(std::pair<std::string, int>("p30", 25));
|
PA |
0:e4f37b52019a
|
94
|
m_pwm.push_back(new UniPWM(LED1));
|
PA |
0:e4f37b52019a
|
95
|
m_pwm[26]->duty(0);
|
PA |
0:e4f37b52019a
|
96
|
m_map.insert(std::pair<std::string, int>("LED1", 26));
|
PA |
0:e4f37b52019a
|
97
|
m_pwm.push_back(new UniPWM(LED2));
|
PA |
0:e4f37b52019a
|
98
|
m_pwm[27]->duty(0);
|
PA |
0:e4f37b52019a
|
99
|
m_map.insert(std::pair<std::string, int>("LED2", 27));
|
PA |
0:e4f37b52019a
|
100
|
m_pwm.push_back(new UniPWM(LED3));
|
PA |
0:e4f37b52019a
|
101
|
m_pwm[28]->duty(0);
|
PA |
0:e4f37b52019a
|
102
|
m_map.insert(std::pair<std::string, int>("LED3", 28));
|
PA |
0:e4f37b52019a
|
103
|
m_pwm.push_back(new UniPWM(LED4));
|
PA |
0:e4f37b52019a
|
104
|
m_pwm[29]->duty(0);
|
PA |
0:e4f37b52019a
|
105
|
m_map.insert(std::pair<std::string, int>("LED4", 29));
|
PA |
0:e4f37b52019a
|
106
|
}
|
PA |
0:e4f37b52019a
|
107
|
|
PA |
0:e4f37b52019a
|
108
|
void LEDFunctions::on(int n, int d, float b, float s){
|
PA |
0:e4f37b52019a
|
109
|
if(s > 1){
|
PA |
0:e4f37b52019a
|
110
|
for(float k = b/s; k < b; k += b/s){
|
PA |
0:e4f37b52019a
|
111
|
p += b/s;
|
PA |
0:e4f37b52019a
|
112
|
m_pwm[n]->duty(p);
|
PA |
0:e4f37b52019a
|
113
|
//Thread::wait(100);
|
PA |
0:e4f37b52019a
|
114
|
wait(0.1);
|
PA |
0:e4f37b52019a
|
115
|
}
|
PA |
0:e4f37b52019a
|
116
|
for(float i = s*0.1; i < d; i += 0.1){
|
PA |
0:e4f37b52019a
|
117
|
m_pwm[n]->duty(b);
|
PA |
0:e4f37b52019a
|
118
|
//Thread::wait(100);
|
PA |
0:e4f37b52019a
|
119
|
wait(0.1);
|
PA |
0:e4f37b52019a
|
120
|
}
|
PA |
0:e4f37b52019a
|
121
|
}
|
PA |
0:e4f37b52019a
|
122
|
else{
|
PA |
0:e4f37b52019a
|
123
|
for(float i = 0; i < d; i += 1){
|
PA |
0:e4f37b52019a
|
124
|
m_pwm[n]->duty(b);
|
PA |
0:e4f37b52019a
|
125
|
//Thread::wait(1000);
|
PA |
0:e4f37b52019a
|
126
|
wait(1);
|
PA |
0:e4f37b52019a
|
127
|
}
|
PA |
0:e4f37b52019a
|
128
|
}
|
PA |
0:e4f37b52019a
|
129
|
m_pwm[n]->duty(0);
|
PA |
0:e4f37b52019a
|
130
|
}
|
PA |
0:e4f37b52019a
|
131
|
|
PA |
0:e4f37b52019a
|
132
|
/*
|
PA |
0:e4f37b52019a
|
133
|
void LEDFunctions::on_abst(int n, int starttime, int endtime, float b, float s){
|
PA |
0:e4f37b52019a
|
134
|
id(n);
|
PA |
0:e4f37b52019a
|
135
|
if(time==starttime){
|
PA |
0:e4f37b52019a
|
136
|
if(s > 1){
|
PA |
0:e4f37b52019a
|
137
|
for(k = 0; k = b; k = b/s){
|
PA |
0:e4f37b52019a
|
138
|
p = p + b/s;
|
PA |
0:e4f37b52019a
|
139
|
_pin.duty(p);
|
PA |
0:e4f37b52019a
|
140
|
wait(0.1);
|
PA |
0:e4f37b52019a
|
141
|
}
|
PA |
0:e4f37b52019a
|
142
|
for(i = starttime + b; i < endtime; i += 0.1){
|
PA |
0:e4f37b52019a
|
143
|
_pin.duty(b);
|
PA |
0:e4f37b52019a
|
144
|
wait(0.1);
|
PA |
0:e4f37b52019a
|
145
|
}
|
PA |
0:e4f37b52019a
|
146
|
}
|
PA |
0:e4f37b52019a
|
147
|
else{
|
PA |
0:e4f37b52019a
|
148
|
for(i = starttime; i = endtime; i += 0.1){
|
PA |
0:e4f37b52019a
|
149
|
_pin.duty(b);
|
PA |
0:e4f37b52019a
|
150
|
wait(0.1);
|
PA |
0:e4f37b52019a
|
151
|
}
|
PA |
0:e4f37b52019a
|
152
|
}
|
PA |
0:e4f37b52019a
|
153
|
}
|
PA |
0:e4f37b52019a
|
154
|
}
|
PA |
0:e4f37b52019a
|
155
|
*/
|
PA |
0:e4f37b52019a
|
156
|
void LEDFunctions::on_forever(int n, float b, float s){
|
PA |
0:e4f37b52019a
|
157
|
if(s > 1){
|
PA |
0:e4f37b52019a
|
158
|
for(float k = b/s; k < b; k += b/s){
|
PA |
0:e4f37b52019a
|
159
|
p += b/s;
|
PA |
0:e4f37b52019a
|
160
|
m_pwm[n]->duty(p);
|
PA |
0:e4f37b52019a
|
161
|
//Thread::wait(100);
|
PA |
0:e4f37b52019a
|
162
|
wait(0.1);
|
PA |
0:e4f37b52019a
|
163
|
}
|
PA |
0:e4f37b52019a
|
164
|
}
|
PA |
0:e4f37b52019a
|
165
|
else{
|
PA |
0:e4f37b52019a
|
166
|
m_pwm[n]->duty(b);
|
PA |
0:e4f37b52019a
|
167
|
}
|
PA |
0:e4f37b52019a
|
168
|
}
|
PA |
0:e4f37b52019a
|
169
|
|
PA |
0:e4f37b52019a
|
170
|
void LEDFunctions::off_forever(int n, float b, float s){
|
PA |
0:e4f37b52019a
|
171
|
if(s > 1){
|
PA |
0:e4f37b52019a
|
172
|
for(float k = 1; k > b; k -= 1/s){
|
PA |
0:e4f37b52019a
|
173
|
p = k;
|
PA |
0:e4f37b52019a
|
174
|
m_pwm[n]->duty(p);
|
PA |
0:e4f37b52019a
|
175
|
//Thread::wait(100);
|
PA |
0:e4f37b52019a
|
176
|
wait(0.1);
|
PA |
0:e4f37b52019a
|
177
|
}
|
PA |
0:e4f37b52019a
|
178
|
m_pwm[n]->duty(b);
|
PA |
0:e4f37b52019a
|
179
|
}
|
PA |
0:e4f37b52019a
|
180
|
else{
|
PA |
0:e4f37b52019a
|
181
|
m_pwm[n]->duty(b);
|
PA |
0:e4f37b52019a
|
182
|
}
|
PA |
0:e4f37b52019a
|
183
|
}
|
PA |
0:e4f37b52019a
|
184
|
|
PA |
0:e4f37b52019a
|
185
|
void LEDFunctions::blink(int n, int f, int d, float lb, float ub, float s){
|
PA |
0:e4f37b52019a
|
186
|
float time = 1.0 / (2.0*f);
|
PA |
0:e4f37b52019a
|
187
|
float inc = 1.0/f;
|
PA |
0:e4f37b52019a
|
188
|
for(float i = 0.0; i < d; i += inc){
|
PA |
0:e4f37b52019a
|
189
|
if(s > 1){
|
PA |
0:e4f37b52019a
|
190
|
for(float k = lb; k < ub; k += (ub-lb)/s){
|
PA |
0:e4f37b52019a
|
191
|
p += (ub-lb)/s;
|
PA |
0:e4f37b52019a
|
192
|
m_pwm[n]->duty(p);
|
PA |
0:e4f37b52019a
|
193
|
//Thread::wait(time*1000/s)
|
PA |
0:e4f37b52019a
|
194
|
wait(time/s);
|
PA |
0:e4f37b52019a
|
195
|
}
|
PA |
0:e4f37b52019a
|
196
|
for(float k = ub; k > lb; k -= (ub-lb)/s){
|
PA |
0:e4f37b52019a
|
197
|
p = k;
|
PA |
0:e4f37b52019a
|
198
|
m_pwm[n]->duty(k);
|
PA |
0:e4f37b52019a
|
199
|
//Thread::wait(time*1000/s);
|
PA |
0:e4f37b52019a
|
200
|
wait(time/s);
|
PA |
0:e4f37b52019a
|
201
|
}
|
PA |
0:e4f37b52019a
|
202
|
m_pwm[n]->duty(lb);
|
PA |
0:e4f37b52019a
|
203
|
//Thread::wait(time*1000/s);
|
PA |
0:e4f37b52019a
|
204
|
wait(time/s);
|
PA |
0:e4f37b52019a
|
205
|
}
|
PA |
0:e4f37b52019a
|
206
|
else {
|
PA |
0:e4f37b52019a
|
207
|
m_pwm[n]->duty(ub);
|
PA |
0:e4f37b52019a
|
208
|
//Thread::wait(time*1000);
|
PA |
0:e4f37b52019a
|
209
|
wait(1);
|
PA |
0:e4f37b52019a
|
210
|
m_pwm[n]->duty(lb);
|
PA |
0:e4f37b52019a
|
211
|
//Thread::wait(time*1000);
|
PA |
0:e4f37b52019a
|
212
|
wait(1);
|
PA |
0:e4f37b52019a
|
213
|
}
|
PA |
0:e4f37b52019a
|
214
|
}
|
PA |
0:e4f37b52019a
|
215
|
}
|
PA |
0:e4f37b52019a
|
216
|
/*
|
PA |
0:e4f37b52019a
|
217
|
void LEDFunctions::blink_abst(int n, int f, int startime, int endtime, float ub, float lb, float s){
|
PA |
0:e4f37b52019a
|
218
|
id(n);
|
PA |
0:e4f37b52019a
|
219
|
for(i = starttime; i = endtime; i += 1/frequency){
|
PA |
0:e4f37b52019a
|
220
|
if(s > 1){
|
PA |
0:e4f37b52019a
|
221
|
for(k = lb; k = ub; k += (ub-lb)/s){
|
PA |
0:e4f37b52019a
|
222
|
lb = lb + (up-lb)/s;
|
PA |
0:e4f37b52019a
|
223
|
_pin.duty(lb);
|
PA |
0:e4f37b52019a
|
224
|
wait((1/2*f)/((ub-lb)/s));
|
PA |
0:e4f37b52019a
|
225
|
}
|
PA |
0:e4f37b52019a
|
226
|
for(k = ub; k = lb; k -= ub/s){
|
PA |
0:e4f37b52019a
|
227
|
ub = ub - (ub-lb)/s;
|
PA |
0:e4f37b52019a
|
228
|
_pin.duty(ub);
|
PA |
0:e4f37b52019a
|
229
|
wait((1/2*f)/((ub-lb)/s));
|
PA |
0:e4f37b52019a
|
230
|
}
|
PA |
0:e4f37b52019a
|
231
|
}
|
PA |
0:e4f37b52019a
|
232
|
else{
|
PA |
0:e4f37b52019a
|
233
|
_pin.duty(ub);
|
PA |
0:e4f37b52019a
|
234
|
wait(1/2*f);
|
PA |
0:e4f37b52019a
|
235
|
_pin.duty(lb);
|
PA |
0:e4f37b52019a
|
236
|
wait(1/2*f);
|
PA |
0:e4f37b52019a
|
237
|
}
|
PA |
0:e4f37b52019a
|
238
|
}
|
PA |
0:e4f37b52019a
|
239
|
}
|
PA |
0:e4f37b52019a
|
240
|
*/ |