Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of UART by
main.cpp@1:8eb45178d28c, 2015-12-15 (annotated)
- Committer:
- BAC
- Date:
- Tue Dec 15 01:56:41 2015 +0000
- Revision:
- 1:8eb45178d28c
- Parent:
- 0:4b741d1ca320
feedforward
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| BAC | 0:4b741d1ca320 | 1 | #include "mbed.h" |
| BAC | 0:4b741d1ca320 | 2 | |
| BAC | 0:4b741d1ca320 | 3 | AnalogIn F1p(PA_0); |
| BAC | 0:4b741d1ca320 | 4 | AnalogIn F1n(PA_1); |
| BAC | 0:4b741d1ca320 | 5 | AnalogIn F2p(PA_4); |
| BAC | 0:4b741d1ca320 | 6 | AnalogIn F2n(PB_0); |
| BAC | 0:4b741d1ca320 | 7 | AnalogIn F3p(PC_1); |
| BAC | 0:4b741d1ca320 | 8 | AnalogIn F3n(PC_0); |
| BAC | 0:4b741d1ca320 | 9 | |
| BAC | 0:4b741d1ca320 | 10 | DigitalOut myled(PA_5); |
| BAC | 0:4b741d1ca320 | 11 | PwmOut M1(PA_6); |
| BAC | 0:4b741d1ca320 | 12 | PwmOut M2(PA_7); |
| BAC | 0:4b741d1ca320 | 13 | PwmOut M3(PB_6); |
| BAC | 0:4b741d1ca320 | 14 | |
| BAC | 0:4b741d1ca320 | 15 | Serial UART(SERIAL_TX, SERIAL_RX); |
| BAC | 0:4b741d1ca320 | 16 | |
| BAC | 0:4b741d1ca320 | 17 | int main() { |
| BAC | 0:4b741d1ca320 | 18 | float w1 = 1025, w2 = 620, w3 = 1365; |
| BAC | 0:4b741d1ca320 | 19 | int i; |
| BAC | 0:4b741d1ca320 | 20 | float fb1 = 0, fb2 = 0, fb3 = 0; |
| BAC | 0:4b741d1ca320 | 21 | char c; |
| BAC | 0:4b741d1ca320 | 22 | M1.period_ms(20); |
| BAC | 0:4b741d1ca320 | 23 | M2.period_ms(20); |
| BAC | 0:4b741d1ca320 | 24 | M3.period_ms(20); |
| BAC | 1:8eb45178d28c | 25 | // Home position |
| BAC | 0:4b741d1ca320 | 26 | M1.pulsewidth_us(1900); |
| BAC | 0:4b741d1ca320 | 27 | M2.pulsewidth_us(600); |
| BAC | 0:4b741d1ca320 | 28 | M3.pulsewidth_us(2000); |
| BAC | 1:8eb45178d28c | 29 | wait(2.0); |
| BAC | 1:8eb45178d28c | 30 | |
| BAC | 1:8eb45178d28c | 31 | // first move |
| BAC | 1:8eb45178d28c | 32 | for(i=0;i<500;i++) |
| BAC | 1:8eb45178d28c | 33 | { |
| BAC | 1:8eb45178d28c | 34 | M1.pulsewidth_us(1900 - (unsigned int)(i*1.75)); |
| BAC | 1:8eb45178d28c | 35 | printf("%d",1900 - (unsigned int)(i*0.853)); |
| BAC | 1:8eb45178d28c | 36 | } |
| BAC | 1:8eb45178d28c | 37 | wait(2.0); |
| BAC | 1:8eb45178d28c | 38 | i=0; |
| BAC | 1:8eb45178d28c | 39 | for(i=0;i<1000;i++) |
| BAC | 1:8eb45178d28c | 40 | { |
| BAC | 1:8eb45178d28c | 41 | M3.pulsewidth_us(2000 - (unsigned int)(i*0.653)); |
| BAC | 1:8eb45178d28c | 42 | printf("%d",2000 - (unsigned int)(i*0.653)); |
| BAC | 1:8eb45178d28c | 43 | } |
| BAC | 1:8eb45178d28c | 44 | |
| BAC | 1:8eb45178d28c | 45 | M1.pulsewidth_us(1025); |
| BAC | 1:8eb45178d28c | 46 | M2.pulsewidth_us(591); |
| BAC | 1:8eb45178d28c | 47 | M3.pulsewidth_us(1347); |
| BAC | 1:8eb45178d28c | 48 | wait(2.0); |
| BAC | 1:8eb45178d28c | 49 | |
| BAC | 1:8eb45178d28c | 50 | M1.pulsewidth_us(1005); |
| BAC | 1:8eb45178d28c | 51 | M2.pulsewidth_us(626); |
| BAC | 1:8eb45178d28c | 52 | M3.pulsewidth_us(1371); |
| BAC | 1:8eb45178d28c | 53 | wait(2.0); |
| BAC | 1:8eb45178d28c | 54 | |
| BAC | 1:8eb45178d28c | 55 | M1.pulsewidth_us(991); |
| BAC | 1:8eb45178d28c | 56 | M2.pulsewidth_us(630); |
| BAC | 1:8eb45178d28c | 57 | M3.pulsewidth_us(1417); |
| BAC | 1:8eb45178d28c | 58 | wait(2.0); |
| BAC | 1:8eb45178d28c | 59 | |
| BAC | 1:8eb45178d28c | 60 | M1.pulsewidth_us(985); |
| BAC | 1:8eb45178d28c | 61 | M2.pulsewidth_us(636); |
| BAC | 1:8eb45178d28c | 62 | M3.pulsewidth_us(1430); |
| BAC | 1:8eb45178d28c | 63 | wait(2.0); |
| BAC | 1:8eb45178d28c | 64 | |
| BAC | 1:8eb45178d28c | 65 | M1.pulsewidth_us(963); |
| BAC | 1:8eb45178d28c | 66 | M2.pulsewidth_us(642); |
| BAC | 1:8eb45178d28c | 67 | M3.pulsewidth_us(1445); |
| BAC | 1:8eb45178d28c | 68 | wait(2.0); |
| BAC | 1:8eb45178d28c | 69 | |
| BAC | 1:8eb45178d28c | 70 | M1.pulsewidth_us(953); |
| BAC | 1:8eb45178d28c | 71 | M2.pulsewidth_us(680); |
| BAC | 1:8eb45178d28c | 72 | M3.pulsewidth_us(1451); |
| BAC | 1:8eb45178d28c | 73 | wait(2.0); |
| BAC | 0:4b741d1ca320 | 74 | |
| BAC | 1:8eb45178d28c | 75 | M1.pulsewidth_us(947); |
| BAC | 1:8eb45178d28c | 76 | M2.pulsewidth_us(688); |
| BAC | 1:8eb45178d28c | 77 | M3.pulsewidth_us(1461); |
| BAC | 1:8eb45178d28c | 78 | wait(2.0); |
| BAC | 1:8eb45178d28c | 79 | |
| BAC | 1:8eb45178d28c | 80 | M1.pulsewidth_us(935); |
| BAC | 1:8eb45178d28c | 81 | M2.pulsewidth_us(710); |
| BAC | 1:8eb45178d28c | 82 | M3.pulsewidth_us(1467); |
| BAC | 1:8eb45178d28c | 83 | wait(2.0); |
| BAC | 1:8eb45178d28c | 84 | |
| BAC | 1:8eb45178d28c | 85 | M1.pulsewidth_us(913); |
| BAC | 1:8eb45178d28c | 86 | M2.pulsewidth_us(728); |
| BAC | 1:8eb45178d28c | 87 | M3.pulsewidth_us(1485); |
| BAC | 1:8eb45178d28c | 88 | wait(2.0); |
| BAC | 1:8eb45178d28c | 89 | |
| BAC | 1:8eb45178d28c | 90 | M1.pulsewidth_us(909); |
| BAC | 1:8eb45178d28c | 91 | M2.pulsewidth_us(750); |
| BAC | 1:8eb45178d28c | 92 | M3.pulsewidth_us(1503); |
| BAC | 1:8eb45178d28c | 93 | wait(2.0); |
| BAC | 1:8eb45178d28c | 94 | |
| BAC | 1:8eb45178d28c | 95 | M1.pulsewidth_us(913); |
| BAC | 1:8eb45178d28c | 96 | M2.pulsewidth_us(774); |
| BAC | 1:8eb45178d28c | 97 | M3.pulsewidth_us(1519); |
| BAC | 1:8eb45178d28c | 98 | wait(2.0); |
| BAC | 1:8eb45178d28c | 99 | |
| BAC | 1:8eb45178d28c | 100 | M1.pulsewidth_us(977); |
| BAC | 1:8eb45178d28c | 101 | M2.pulsewidth_us(792); |
| BAC | 1:8eb45178d28c | 102 | M3.pulsewidth_us(1545); |
| BAC | 1:8eb45178d28c | 103 | wait(2.0); |
| BAC | 1:8eb45178d28c | 104 | |
| BAC | 1:8eb45178d28c | 105 | M1.pulsewidth_us(999); |
| BAC | 1:8eb45178d28c | 106 | M2.pulsewidth_us(828); |
| BAC | 1:8eb45178d28c | 107 | M3.pulsewidth_us(1545); |
| BAC | 1:8eb45178d28c | 108 | wait(2.0); |
| BAC | 1:8eb45178d28c | 109 | |
| BAC | 1:8eb45178d28c | 110 | M1.pulsewidth_us(999); |
| BAC | 1:8eb45178d28c | 111 | M2.pulsewidth_us(855); |
| BAC | 1:8eb45178d28c | 112 | M3.pulsewidth_us(1570); |
| BAC | 1:8eb45178d28c | 113 | wait(2.0); |
| BAC | 1:8eb45178d28c | 114 | |
| BAC | 1:8eb45178d28c | 115 | M1.pulsewidth_us(1023); |
| BAC | 1:8eb45178d28c | 116 | M2.pulsewidth_us(863); |
| BAC | 1:8eb45178d28c | 117 | M3.pulsewidth_us(1592); |
| BAC | 1:8eb45178d28c | 118 | wait(2.0); |
| BAC | 1:8eb45178d28c | 119 | |
| BAC | 1:8eb45178d28c | 120 | M1.pulsewidth_us(1045); |
| BAC | 1:8eb45178d28c | 121 | M2.pulsewidth_us(875); |
| BAC | 1:8eb45178d28c | 122 | M3.pulsewidth_us(1590); |
| BAC | 1:8eb45178d28c | 123 | wait(2.0); |
| BAC | 1:8eb45178d28c | 124 | |
| BAC | 1:8eb45178d28c | 125 | M1.pulsewidth_us(1071); |
| BAC | 1:8eb45178d28c | 126 | M2.pulsewidth_us(890); |
| BAC | 1:8eb45178d28c | 127 | M3.pulsewidth_us(1605); |
| BAC | 1:8eb45178d28c | 128 | wait(2.0); |
| BAC | 0:4b741d1ca320 | 129 | |
| BAC | 1:8eb45178d28c | 130 | M1.pulsewidth_us(1085); |
| BAC | 1:8eb45178d28c | 131 | M2.pulsewidth_us(898); |
| BAC | 1:8eb45178d28c | 132 | M3.pulsewidth_us(1590); |
| BAC | 1:8eb45178d28c | 133 | wait(2.0); |
| BAC | 1:8eb45178d28c | 134 | |
| BAC | 1:8eb45178d28c | 135 | M1.pulsewidth_us(1109); |
| BAC | 1:8eb45178d28c | 136 | M2.pulsewidth_us(910); |
| BAC | 1:8eb45178d28c | 137 | M3.pulsewidth_us(1590); |
| BAC | 1:8eb45178d28c | 138 | wait(2.0); |
| BAC | 1:8eb45178d28c | 139 | |
| BAC | 1:8eb45178d28c | 140 | M1.pulsewidth_us(1151); |
| BAC | 1:8eb45178d28c | 141 | M2.pulsewidth_us(930); |
| BAC | 1:8eb45178d28c | 142 | M3.pulsewidth_us(1611); |
| BAC | 1:8eb45178d28c | 143 | wait(2.0); |
| BAC | 1:8eb45178d28c | 144 | |
| BAC | 1:8eb45178d28c | 145 | M1.pulsewidth_us(1163); |
| BAC | 1:8eb45178d28c | 146 | M2.pulsewidth_us(906); |
| BAC | 1:8eb45178d28c | 147 | M3.pulsewidth_us(1575); |
| BAC | 1:8eb45178d28c | 148 | wait(2.0); |
| BAC | 1:8eb45178d28c | 149 | |
| BAC | 1:8eb45178d28c | 150 | M1.pulsewidth_us(1169); |
| BAC | 1:8eb45178d28c | 151 | M2.pulsewidth_us(864); |
| BAC | 1:8eb45178d28c | 152 | M3.pulsewidth_us(1533); |
| BAC | 1:8eb45178d28c | 153 | wait(2.0); |
| BAC | 1:8eb45178d28c | 154 | |
| BAC | 1:8eb45178d28c | 155 | M1.pulsewidth_us(1173); |
| BAC | 1:8eb45178d28c | 156 | M2.pulsewidth_us(794); |
| BAC | 1:8eb45178d28c | 157 | M3.pulsewidth_us(1519); |
| BAC | 1:8eb45178d28c | 158 | wait(2.0); |
| BAC | 1:8eb45178d28c | 159 | |
| BAC | 1:8eb45178d28c | 160 | M1.pulsewidth_us(1189); |
| BAC | 1:8eb45178d28c | 161 | M2.pulsewidth_us(790); |
| BAC | 1:8eb45178d28c | 162 | M3.pulsewidth_us(1511); |
| BAC | 1:8eb45178d28c | 163 | wait(2.0); |
| BAC | 1:8eb45178d28c | 164 | |
| BAC | 1:8eb45178d28c | 165 | M1.pulsewidth_us(1215); |
| BAC | 1:8eb45178d28c | 166 | M2.pulsewidth_us(776); |
| BAC | 1:8eb45178d28c | 167 | M3.pulsewidth_us(1479); |
| BAC | 1:8eb45178d28c | 168 | wait(2.0); |
| BAC | 1:8eb45178d28c | 169 | |
| BAC | 1:8eb45178d28c | 170 | M1.pulsewidth_us(1219); |
| BAC | 1:8eb45178d28c | 171 | M2.pulsewidth_us(752); |
| BAC | 1:8eb45178d28c | 172 | M3.pulsewidth_us(1455); |
| BAC | 1:8eb45178d28c | 173 | wait(2.0); |
| BAC | 1:8eb45178d28c | 174 | |
| BAC | 1:8eb45178d28c | 175 | M1.pulsewidth_us(1223); |
| BAC | 1:8eb45178d28c | 176 | M2.pulsewidth_us(732); |
| BAC | 1:8eb45178d28c | 177 | M3.pulsewidth_us(1429); |
| BAC | 1:8eb45178d28c | 178 | wait(2.0); |
| BAC | 0:4b741d1ca320 | 179 | |
| BAC | 1:8eb45178d28c | 180 | M1.pulsewidth_us(1225); |
| BAC | 1:8eb45178d28c | 181 | M2.pulsewidth_us(704); |
| BAC | 1:8eb45178d28c | 182 | M3.pulsewidth_us(1405); |
| BAC | 1:8eb45178d28c | 183 | wait(2.0); |
| BAC | 1:8eb45178d28c | 184 | |
| BAC | 1:8eb45178d28c | 185 | M1.pulsewidth_us(1210); |
| BAC | 1:8eb45178d28c | 186 | M2.pulsewidth_us(676); |
| BAC | 1:8eb45178d28c | 187 | M3.pulsewidth_us(1385); |
| BAC | 1:8eb45178d28c | 188 | wait(2.0); |
| BAC | 1:8eb45178d28c | 189 | |
| BAC | 1:8eb45178d28c | 190 | M1.pulsewidth_us(1180); |
| BAC | 1:8eb45178d28c | 191 | M2.pulsewidth_us(650); |
| BAC | 1:8eb45178d28c | 192 | M3.pulsewidth_us(1370); |
| BAC | 1:8eb45178d28c | 193 | wait(2.0); |
| BAC | 1:8eb45178d28c | 194 | |
| BAC | 1:8eb45178d28c | 195 | M1.pulsewidth_us(1156); |
| BAC | 1:8eb45178d28c | 196 | M2.pulsewidth_us(614); |
| BAC | 1:8eb45178d28c | 197 | M3.pulsewidth_us(1344); |
| BAC | 1:8eb45178d28c | 198 | wait(2.0); |
| BAC | 1:8eb45178d28c | 199 | |
| BAC | 1:8eb45178d28c | 200 | M1.pulsewidth_us(1122); |
| BAC | 1:8eb45178d28c | 201 | M2.pulsewidth_us(596); |
| BAC | 1:8eb45178d28c | 202 | M3.pulsewidth_us(1334); |
| BAC | 1:8eb45178d28c | 203 | wait(2.0); |
| BAC | 0:4b741d1ca320 | 204 | |
| BAC | 1:8eb45178d28c | 205 | M1.pulsewidth_us(1104); |
| BAC | 1:8eb45178d28c | 206 | M2.pulsewidth_us(586); |
| BAC | 1:8eb45178d28c | 207 | M3.pulsewidth_us(1330); |
| BAC | 1:8eb45178d28c | 208 | wait(2.0); |
| BAC | 1:8eb45178d28c | 209 | |
| BAC | 1:8eb45178d28c | 210 | M1.pulsewidth_us(1090); |
| BAC | 1:8eb45178d28c | 211 | M2.pulsewidth_us(566); |
| BAC | 1:8eb45178d28c | 212 | M3.pulsewidth_us(1328); |
| BAC | 1:8eb45178d28c | 213 | wait(2.0); |
| BAC | 1:8eb45178d28c | 214 | |
| BAC | 1:8eb45178d28c | 215 | M1.pulsewidth_us(1064); |
| BAC | 1:8eb45178d28c | 216 | M2.pulsewidth_us(560); |
| BAC | 1:8eb45178d28c | 217 | M3.pulsewidth_us(1324); |
| BAC | 1:8eb45178d28c | 218 | wait(2.0); |
| BAC | 1:8eb45178d28c | 219 | |
| BAC | 1:8eb45178d28c | 220 | M1.pulsewidth_us(1048); |
| BAC | 1:8eb45178d28c | 221 | M2.pulsewidth_us(558); |
| BAC | 1:8eb45178d28c | 222 | M3.pulsewidth_us(1320); |
| BAC | 1:8eb45178d28c | 223 | wait(2.0); |
| BAC | 1:8eb45178d28c | 224 | |
| BAC | 1:8eb45178d28c | 225 | M1.pulsewidth_us(1016); |
| BAC | 1:8eb45178d28c | 226 | M2.pulsewidth_us(580); |
| BAC | 1:8eb45178d28c | 227 | M3.pulsewidth_us(1330); |
| BAC | 1:8eb45178d28c | 228 | wait(2.0); |
| BAC | 1:8eb45178d28c | 229 | |
| BAC | 1:8eb45178d28c | 230 | w1 = 1016; |
| BAC | 1:8eb45178d28c | 231 | w2 = 580; |
| BAC | 1:8eb45178d28c | 232 | w3 = 1330; |
| BAC | 0:4b741d1ca320 | 233 | |
| BAC | 0:4b741d1ca320 | 234 | //============================================= |
| BAC | 0:4b741d1ca320 | 235 | |
| BAC | 1:8eb45178d28c | 236 | |
| BAC | 0:4b741d1ca320 | 237 | |
| BAC | 1:8eb45178d28c | 238 | |
| BAC | 1:8eb45178d28c | 239 | |
| BAC | 1:8eb45178d28c | 240 | |
| BAC | 0:4b741d1ca320 | 241 | |
| BAC | 0:4b741d1ca320 | 242 | |
| BAC | 0:4b741d1ca320 | 243 | UART.baud(9600); // Set BuadRate |
| BAC | 0:4b741d1ca320 | 244 | printf("PW1 = %f us,PW2 = %f us,PW3 = %f us \n\r",w1,w2,w3); |
| BAC | 0:4b741d1ca320 | 245 | while(1) { |
| BAC | 0:4b741d1ca320 | 246 | c = UART.getc(); |
| BAC | 0:4b741d1ca320 | 247 | if(c == '1') |
| BAC | 0:4b741d1ca320 | 248 | { |
| BAC | 0:4b741d1ca320 | 249 | w1 = w1 + 2; |
| BAC | 0:4b741d1ca320 | 250 | } |
| BAC | 0:4b741d1ca320 | 251 | else if(c == '2') |
| BAC | 0:4b741d1ca320 | 252 | { |
| BAC | 0:4b741d1ca320 | 253 | w1 = w1 - 2; |
| BAC | 0:4b741d1ca320 | 254 | } |
| BAC | 0:4b741d1ca320 | 255 | else if(c == '3') |
| BAC | 0:4b741d1ca320 | 256 | { |
| BAC | 0:4b741d1ca320 | 257 | w2 = w2 + 2; |
| BAC | 0:4b741d1ca320 | 258 | } |
| BAC | 0:4b741d1ca320 | 259 | else if(c == '4') |
| BAC | 0:4b741d1ca320 | 260 | { |
| BAC | 0:4b741d1ca320 | 261 | w2 = w2 - 2; |
| BAC | 0:4b741d1ca320 | 262 | } |
| BAC | 0:4b741d1ca320 | 263 | else if(c == '5') |
| BAC | 0:4b741d1ca320 | 264 | { |
| BAC | 0:4b741d1ca320 | 265 | w3 = w3 + 2; |
| BAC | 0:4b741d1ca320 | 266 | } |
| BAC | 0:4b741d1ca320 | 267 | else if(c == '6') |
| BAC | 0:4b741d1ca320 | 268 | { |
| BAC | 0:4b741d1ca320 | 269 | w3 = w3 - 2; |
| BAC | 0:4b741d1ca320 | 270 | } |
| BAC | 0:4b741d1ca320 | 271 | |
| BAC | 0:4b741d1ca320 | 272 | printf("PW1 = %f us,PW2 = %f us,PW3 = %f us \n\r",w1,w2,w3); |
| BAC | 0:4b741d1ca320 | 273 | M1.pulsewidth_us(w1); |
| BAC | 0:4b741d1ca320 | 274 | M2.pulsewidth_us(w2); |
| BAC | 0:4b741d1ca320 | 275 | M3.pulsewidth_us(w3); |
| BAC | 0:4b741d1ca320 | 276 | |
| BAC | 0:4b741d1ca320 | 277 | for(i=0;i<=9;i++) |
| BAC | 0:4b741d1ca320 | 278 | { |
| BAC | 0:4b741d1ca320 | 279 | fb1 = fb1 + ((F1p-F1n)*3.3f); |
| BAC | 0:4b741d1ca320 | 280 | fb2 = fb2 + ((F2p-F2n)*3.3f); |
| BAC | 0:4b741d1ca320 | 281 | fb3 = fb3 + ((F3p-F3n)*3.3f); |
| BAC | 0:4b741d1ca320 | 282 | } |
| BAC | 0:4b741d1ca320 | 283 | printf("FB1 = %f V, FB2 = %f V, FB3 = %f V\r\r\n",(fb1/10),(fb2/10),(fb3/10)); |
| BAC | 0:4b741d1ca320 | 284 | fb1 = 0; |
| BAC | 0:4b741d1ca320 | 285 | fb2 = 0; |
| BAC | 0:4b741d1ca320 | 286 | fb3 = 0; |
| BAC | 0:4b741d1ca320 | 287 | myled = !myled; |
| BAC | 0:4b741d1ca320 | 288 | } |
| BAC | 0:4b741d1ca320 | 289 | } |
