test

Dependencies:   BSP_DISCO_F429ZI LCD_DISCO_F429ZI Motor PID TS_DISCO_F429ZI mbed

Committer:
levkovigor
Date:
Tue Sep 26 16:23:36 2017 +0000
Revision:
0:4a219a0d6583
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
levkovigor 0:4a219a0d6583 1 #include "mbed.h"
levkovigor 0:4a219a0d6583 2 #include "TS_DISCO_F429ZI.h"
levkovigor 0:4a219a0d6583 3 #include "LCD_DISCO_F429ZI.h"
levkovigor 0:4a219a0d6583 4 #include "Motor.h"
levkovigor 0:4a219a0d6583 5 #include "PID.h"
levkovigor 0:4a219a0d6583 6
levkovigor 0:4a219a0d6583 7 LCD_DISCO_F429ZI lcd;
levkovigor 0:4a219a0d6583 8 TS_DISCO_F429ZI ts;
levkovigor 0:4a219a0d6583 9
levkovigor 0:4a219a0d6583 10 PwmOut right_sk(PE_5);
levkovigor 0:4a219a0d6583 11 PwmOut left_sk(PE_6);
levkovigor 0:4a219a0d6583 12
levkovigor 0:4a219a0d6583 13 DigitalOut right_en(PE_4); //Enable
levkovigor 0:4a219a0d6583 14 DigitalOut right_fr(PE_3); //Direction
levkovigor 0:4a219a0d6583 15 DigitalOut right_bk(PE_2); //Break
levkovigor 0:4a219a0d6583 16
levkovigor 0:4a219a0d6583 17 DigitalOut left_en(PD_2); //Enable
levkovigor 0:4a219a0d6583 18 DigitalOut left_fr(PD_4); //Direction
levkovigor 0:4a219a0d6583 19 DigitalOut left_bk(PD_5); //Break
levkovigor 0:4a219a0d6583 20
levkovigor 0:4a219a0d6583 21
levkovigor 0:4a219a0d6583 22 //Serial pc(PG_14, PG_9, 115200); // tx, rx
levkovigor 0:4a219a0d6583 23 //Serial pc(PC_12, PD_2, 115200); // tx, rx
levkovigor 0:4a219a0d6583 24
levkovigor 0:4a219a0d6583 25 DigitalOut led1(LED1);
levkovigor 0:4a219a0d6583 26 char buffer[20];
levkovigor 0:4a219a0d6583 27 char buffer2[20];
levkovigor 0:4a219a0d6583 28
levkovigor 0:4a219a0d6583 29 class Counter {
levkovigor 0:4a219a0d6583 30 public:
levkovigor 0:4a219a0d6583 31 Counter(PinName pin) : _interrupt(pin) { // create the InterruptIn on the pin specified to Counter
levkovigor 0:4a219a0d6583 32 _interrupt.fall(this, &Counter::increment); // attach increment function of this counter instance
levkovigor 0:4a219a0d6583 33 }
levkovigor 0:4a219a0d6583 34
levkovigor 0:4a219a0d6583 35 void increment() {
levkovigor 0:4a219a0d6583 36 _count++;
levkovigor 0:4a219a0d6583 37 }
levkovigor 0:4a219a0d6583 38
levkovigor 0:4a219a0d6583 39 long read() {
levkovigor 0:4a219a0d6583 40 return _count;
levkovigor 0:4a219a0d6583 41 }
levkovigor 0:4a219a0d6583 42
levkovigor 0:4a219a0d6583 43 void zero(){
levkovigor 0:4a219a0d6583 44 _count = 0;
levkovigor 0:4a219a0d6583 45 }
levkovigor 0:4a219a0d6583 46
levkovigor 0:4a219a0d6583 47 private:
levkovigor 0:4a219a0d6583 48 InterruptIn _interrupt;
levkovigor 0:4a219a0d6583 49 volatile long _count;
levkovigor 0:4a219a0d6583 50 };
levkovigor 0:4a219a0d6583 51
levkovigor 0:4a219a0d6583 52
levkovigor 0:4a219a0d6583 53 Counter counterLeft(PC_13);
levkovigor 0:4a219a0d6583 54 Counter counterRight(PC_12);
levkovigor 0:4a219a0d6583 55
levkovigor 0:4a219a0d6583 56
levkovigor 0:4a219a0d6583 57
levkovigor 0:4a219a0d6583 58 Motor leftMotor(PE_5, PB_3, PB_3); //pwm, inB, inA
levkovigor 0:4a219a0d6583 59 Motor rightMotor(PE_6, PB_4, PB_4); //pwm, inA, inB
levkovigor 0:4a219a0d6583 60 PID leftPid(0.4, 0.1, 0.0, 0.01); //Kc, Ti, Td
levkovigor 0:4a219a0d6583 61 PID rightPid(0.4, 0.1, 0.0, 0.01); //Kc, Ti, Td
levkovigor 0:4a219a0d6583 62
levkovigor 0:4a219a0d6583 63 //-------------------------------
levkovigor 0:4a219a0d6583 64
levkovigor 0:4a219a0d6583 65
levkovigor 0:4a219a0d6583 66
levkovigor 0:4a219a0d6583 67
levkovigor 0:4a219a0d6583 68 int main()
levkovigor 0:4a219a0d6583 69 {
levkovigor 0:4a219a0d6583 70 TS_StateTypeDef TS_State;
levkovigor 0:4a219a0d6583 71 uint16_t x, y;
levkovigor 0:4a219a0d6583 72 uint8_t text[30];
levkovigor 0:4a219a0d6583 73 uint8_t status;
levkovigor 0:4a219a0d6583 74
levkovigor 0:4a219a0d6583 75 BSP_LCD_SetFont(&Font20);
levkovigor 0:4a219a0d6583 76
levkovigor 0:4a219a0d6583 77 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
levkovigor 0:4a219a0d6583 78 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"DEMO", CENTER_MODE);
levkovigor 0:4a219a0d6583 79 wait(1);
levkovigor 0:4a219a0d6583 80
levkovigor 0:4a219a0d6583 81 status = ts.Init(lcd.GetXSize(), lcd.GetYSize());
levkovigor 0:4a219a0d6583 82
levkovigor 0:4a219a0d6583 83 if (status != TS_OK)
levkovigor 0:4a219a0d6583 84 {
levkovigor 0:4a219a0d6583 85 lcd.Clear(LCD_COLOR_RED);
levkovigor 0:4a219a0d6583 86 lcd.SetBackColor(LCD_COLOR_RED);
levkovigor 0:4a219a0d6583 87 lcd.SetTextColor(LCD_COLOR_WHITE);
levkovigor 0:4a219a0d6583 88 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
levkovigor 0:4a219a0d6583 89 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT FAIL", CENTER_MODE);
levkovigor 0:4a219a0d6583 90 }
levkovigor 0:4a219a0d6583 91 else
levkovigor 0:4a219a0d6583 92 {
levkovigor 0:4a219a0d6583 93 lcd.Clear(LCD_COLOR_GREEN);
levkovigor 0:4a219a0d6583 94 lcd.SetBackColor(LCD_COLOR_GREEN);
levkovigor 0:4a219a0d6583 95 lcd.SetTextColor(LCD_COLOR_WHITE);
levkovigor 0:4a219a0d6583 96 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
levkovigor 0:4a219a0d6583 97 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT OK", CENTER_MODE);
levkovigor 0:4a219a0d6583 98 }
levkovigor 0:4a219a0d6583 99
levkovigor 0:4a219a0d6583 100 wait(1);
levkovigor 0:4a219a0d6583 101 lcd.Clear(LCD_COLOR_BLUE);
levkovigor 0:4a219a0d6583 102 lcd.SetBackColor(LCD_COLOR_BLUE);
levkovigor 0:4a219a0d6583 103 lcd.SetTextColor(LCD_COLOR_WHITE);
levkovigor 0:4a219a0d6583 104
levkovigor 0:4a219a0d6583 105 /*
levkovigor 0:4a219a0d6583 106 do1 = 0;
levkovigor 0:4a219a0d6583 107 do2 = 1;
levkovigor 0:4a219a0d6583 108 do3 = 1;
levkovigor 0:4a219a0d6583 109 //do1 = 0;
levkovigor 0:4a219a0d6583 110 pwm1.period(1.0/10000); // 4 second period
levkovigor 0:4a219a0d6583 111 pwm1.write(0.50f); // 50% duty cycle, relative to period
levkovigor 0:4a219a0d6583 112
levkovigor 0:4a219a0d6583 113 while(1)
levkovigor 0:4a219a0d6583 114 {
levkovigor 0:4a219a0d6583 115
levkovigor 0:4a219a0d6583 116 ts.GetState(&TS_State);
levkovigor 0:4a219a0d6583 117 if (TS_State.TouchDetected)
levkovigor 0:4a219a0d6583 118 {
levkovigor 0:4a219a0d6583 119 x = TS_State.X;
levkovigor 0:4a219a0d6583 120 y = TS_State.Y;
levkovigor 0:4a219a0d6583 121 sprintf((char*)text, "x=%d y=%d ", x, y);
levkovigor 0:4a219a0d6583 122 lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
levkovigor 0:4a219a0d6583 123 if (x <= 120) { do2 = 0;} else { do2 = 1;}
levkovigor 0:4a219a0d6583 124 float k = float(y)/320.00f;
levkovigor 0:4a219a0d6583 125 pwm1.write(k);
levkovigor 0:4a219a0d6583 126 }
levkovigor 0:4a219a0d6583 127 sprintf((char*)text, "c=%d ", counter.read());
levkovigor 0:4a219a0d6583 128 lcd.DisplayStringAt(0, LINE(1), (uint8_t *)&text, LEFT_MODE);
levkovigor 0:4a219a0d6583 129 }
levkovigor 0:4a219a0d6583 130 */
levkovigor 0:4a219a0d6583 131
levkovigor 0:4a219a0d6583 132 //right_en = 0;
levkovigor 0:4a219a0d6583 133 //left_en = 0;
levkovigor 0:4a219a0d6583 134 right_bk = 1;
levkovigor 0:4a219a0d6583 135 right_en = 0;
levkovigor 0:4a219a0d6583 136 //right_fr = 1;
levkovigor 0:4a219a0d6583 137 //right_sk.period(0.00005);
levkovigor 0:4a219a0d6583 138 //right_sk.write(0.50f);
levkovigor 0:4a219a0d6583 139 left_bk = 1;
levkovigor 0:4a219a0d6583 140 left_en = 0;
levkovigor 0:4a219a0d6583 141 //left_fr = 1;
levkovigor 0:4a219a0d6583 142 //left_sk.period(0.00005);
levkovigor 0:4a219a0d6583 143 //left_sk.write(0.50f);
levkovigor 0:4a219a0d6583 144 leftMotor.period(0.00005); //Set motor PWM periods to 20KHz.
levkovigor 0:4a219a0d6583 145 rightMotor.period(0.00005);
levkovigor 0:4a219a0d6583 146
levkovigor 0:4a219a0d6583 147 //Input and output limits have been determined
levkovigor 0:4a219a0d6583 148 //empirically with the specific motors being used.
levkovigor 0:4a219a0d6583 149 //Change appropriately for different motors.
levkovigor 0:4a219a0d6583 150 //Input units: counts per second.
levkovigor 0:4a219a0d6583 151 //Output units: PwmOut duty cycle as %.
levkovigor 0:4a219a0d6583 152 //Default limits are for moving forward.
levkovigor 0:4a219a0d6583 153 leftPid.setInputLimits(0, 1500);
levkovigor 0:4a219a0d6583 154 leftPid.setOutputLimits(0.2, 0.9);
levkovigor 0:4a219a0d6583 155 leftPid.setMode(AUTO_MODE);
levkovigor 0:4a219a0d6583 156 rightPid.setInputLimits(0, 1500);
levkovigor 0:4a219a0d6583 157 rightPid.setOutputLimits(0.2, 0.9);
levkovigor 0:4a219a0d6583 158 rightPid.setMode(AUTO_MODE);
levkovigor 0:4a219a0d6583 159
levkovigor 0:4a219a0d6583 160
levkovigor 0:4a219a0d6583 161 long leftPulses = 0; //How far the left wheel has travelled.
levkovigor 0:4a219a0d6583 162 long leftPrevPulses = 0; //The previous reading of how far the left wheel
levkovigor 0:4a219a0d6583 163 //has travelled.
levkovigor 0:4a219a0d6583 164 float leftVelocity = 0.0; //The velocity of the left wheel in pulses per
levkovigor 0:4a219a0d6583 165 //second.
levkovigor 0:4a219a0d6583 166 long rightPulses = 0; //How far the right wheel has travelled.
levkovigor 0:4a219a0d6583 167 long rightPrevPulses = 0; //The previous reading of how far the right wheel
levkovigor 0:4a219a0d6583 168 //has travelled.
levkovigor 0:4a219a0d6583 169 float rightVelocity = 0.0; //The velocity of the right wheel in pulses per
levkovigor 0:4a219a0d6583 170 //second.
levkovigor 0:4a219a0d6583 171 long distance = 3000; //Number of pulses to travel.
levkovigor 0:4a219a0d6583 172 //while(1){
levkovigor 0:4a219a0d6583 173 right_bk = 1;
levkovigor 0:4a219a0d6583 174 left_bk = 1;
levkovigor 0:4a219a0d6583 175 leftPulses = 0; //How far the left wheel has travelled.
levkovigor 0:4a219a0d6583 176 leftPrevPulses = 0; //The previous reading of how far the left wheel
levkovigor 0:4a219a0d6583 177 //has travelled.
levkovigor 0:4a219a0d6583 178 leftVelocity = 0.0; //The velocity of the left wheel in pulses per
levkovigor 0:4a219a0d6583 179 //second.
levkovigor 0:4a219a0d6583 180 rightPulses = 0; //How far the right wheel has travelled.
levkovigor 0:4a219a0d6583 181 rightPrevPulses = 0; //The previous reading of how far the right wheel
levkovigor 0:4a219a0d6583 182 //has travelled.
levkovigor 0:4a219a0d6583 183 rightVelocity = 0.0; //The velocity of the right wheel in pulses per
levkovigor 0:4a219a0d6583 184 counterLeft.zero();
levkovigor 0:4a219a0d6583 185 counterRight.zero();
levkovigor 0:4a219a0d6583 186 distance = 3000; //Number of pulses to travel.
levkovigor 0:4a219a0d6583 187 right_fr = 1;
levkovigor 0:4a219a0d6583 188 left_fr = 0;
levkovigor 0:4a219a0d6583 189
levkovigor 0:4a219a0d6583 190 //wait(5); //Wait a few seconds before we start moving.
levkovigor 0:4a219a0d6583 191
levkovigor 0:4a219a0d6583 192 //Velocity to mantain in pulses per second.
levkovigor 0:4a219a0d6583 193 leftPid.setSetPoint(1000);
levkovigor 0:4a219a0d6583 194 rightPid.setSetPoint(1000);
levkovigor 0:4a219a0d6583 195
levkovigor 0:4a219a0d6583 196
levkovigor 0:4a219a0d6583 197 while ((leftPulses < distance) || (rightPulses < distance)) {
levkovigor 0:4a219a0d6583 198
levkovigor 0:4a219a0d6583 199 //Get the current pulse count and subtract the previous one to
levkovigor 0:4a219a0d6583 200 //calculate the current velocity in counts per second.
levkovigor 0:4a219a0d6583 201 leftPulses = counterLeft.read();
levkovigor 0:4a219a0d6583 202 leftVelocity = (leftPulses - leftPrevPulses) / 0.01;
levkovigor 0:4a219a0d6583 203 leftPrevPulses = leftPulses;
levkovigor 0:4a219a0d6583 204 //Use the absolute value of velocity as the PID controller works
levkovigor 0:4a219a0d6583 205 //in the % (unsigned) domain and will get confused with -ve values.
levkovigor 0:4a219a0d6583 206 leftPid.setProcessValue(fabs(leftVelocity));
levkovigor 0:4a219a0d6583 207 leftMotor.speed(leftPid.compute());
levkovigor 0:4a219a0d6583 208
levkovigor 0:4a219a0d6583 209 rightPulses = counterRight.read();
levkovigor 0:4a219a0d6583 210 rightVelocity = (rightPulses - rightPrevPulses) / 0.01;
levkovigor 0:4a219a0d6583 211 rightPrevPulses = rightPulses;
levkovigor 0:4a219a0d6583 212 rightPid.setProcessValue(fabs(rightVelocity));
levkovigor 0:4a219a0d6583 213 rightMotor.speed(rightPid.compute());
levkovigor 0:4a219a0d6583 214
levkovigor 0:4a219a0d6583 215 wait(0.01);
levkovigor 0:4a219a0d6583 216 sprintf((char*)text, "left=%d ", leftPulses);
levkovigor 0:4a219a0d6583 217 lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
levkovigor 0:4a219a0d6583 218 sprintf((char*)text, "right=%d ", rightPulses);
levkovigor 0:4a219a0d6583 219 lcd.DisplayStringAt(0, LINE(1), (uint8_t *)&text, LEFT_MODE);
levkovigor 0:4a219a0d6583 220
levkovigor 0:4a219a0d6583 221 }
levkovigor 0:4a219a0d6583 222
levkovigor 0:4a219a0d6583 223 leftMotor.brake();
levkovigor 0:4a219a0d6583 224 rightMotor.brake();
levkovigor 0:4a219a0d6583 225
levkovigor 0:4a219a0d6583 226
levkovigor 0:4a219a0d6583 227
levkovigor 0:4a219a0d6583 228
levkovigor 0:4a219a0d6583 229
levkovigor 0:4a219a0d6583 230 right_bk = 0;
levkovigor 0:4a219a0d6583 231 left_bk = 0;
levkovigor 0:4a219a0d6583 232
levkovigor 0:4a219a0d6583 233
levkovigor 0:4a219a0d6583 234 /*
levkovigor 0:4a219a0d6583 235 right_bk = 1;
levkovigor 0:4a219a0d6583 236 left_bk = 1;
levkovigor 0:4a219a0d6583 237 leftPulses = 0; //How far the left wheel has travelled.
levkovigor 0:4a219a0d6583 238 leftPrevPulses = 0; //The previous reading of how far the left wheel
levkovigor 0:4a219a0d6583 239 //has travelled.
levkovigor 0:4a219a0d6583 240 leftVelocity = 0.0; //The velocity of the left wheel in pulses per
levkovigor 0:4a219a0d6583 241 //second.
levkovigor 0:4a219a0d6583 242 rightPulses = 0; //How far the right wheel has travelled.
levkovigor 0:4a219a0d6583 243 rightPrevPulses = 0; //The previous reading of how far the right wheel
levkovigor 0:4a219a0d6583 244 //has travelled.
levkovigor 0:4a219a0d6583 245 rightVelocity = 0.0; //The velocity of the right wheel in pulses per
levkovigor 0:4a219a0d6583 246 counterLeft.zero();
levkovigor 0:4a219a0d6583 247 counterRight.zero();
levkovigor 0:4a219a0d6583 248 distance = 30000; //Number of pulses to travel.
levkovigor 0:4a219a0d6583 249
levkovigor 0:4a219a0d6583 250 right_fr = 1;
levkovigor 0:4a219a0d6583 251 left_fr = 1;
levkovigor 0:4a219a0d6583 252
levkovigor 0:4a219a0d6583 253 //wait(5); //Wait a few seconds before we start moving.
levkovigor 0:4a219a0d6583 254
levkovigor 0:4a219a0d6583 255 //Velocity to mantain in pulses per second.
levkovigor 0:4a219a0d6583 256 leftPid.setSetPoint(100000);
levkovigor 0:4a219a0d6583 257 rightPid.setSetPoint(100000);
levkovigor 0:4a219a0d6583 258
levkovigor 0:4a219a0d6583 259
levkovigor 0:4a219a0d6583 260 while ((leftPulses < distance) || (rightPulses < distance)) {
levkovigor 0:4a219a0d6583 261
levkovigor 0:4a219a0d6583 262 //Get the current pulse count and subtract the previous one to
levkovigor 0:4a219a0d6583 263 //calculate the current velocity in counts per second.
levkovigor 0:4a219a0d6583 264 leftPulses = counterLeft.read();
levkovigor 0:4a219a0d6583 265 leftVelocity = (leftPulses - leftPrevPulses) / 0.01;
levkovigor 0:4a219a0d6583 266 leftPrevPulses = leftPulses;
levkovigor 0:4a219a0d6583 267 //Use the absolute value of velocity as the PID controller works
levkovigor 0:4a219a0d6583 268 //in the % (unsigned) domain and will get confused with -ve values.
levkovigor 0:4a219a0d6583 269 leftPid.setProcessValue(fabs(leftVelocity));
levkovigor 0:4a219a0d6583 270 leftMotor.speed(leftPid.compute());
levkovigor 0:4a219a0d6583 271
levkovigor 0:4a219a0d6583 272 rightPulses = counterRight.read();
levkovigor 0:4a219a0d6583 273 rightVelocity = (rightPulses - rightPrevPulses) / 0.01;
levkovigor 0:4a219a0d6583 274 rightPrevPulses = rightPulses;
levkovigor 0:4a219a0d6583 275 rightPid.setProcessValue(fabs(rightVelocity));
levkovigor 0:4a219a0d6583 276 rightMotor.speed(rightPid.compute());
levkovigor 0:4a219a0d6583 277
levkovigor 0:4a219a0d6583 278 wait(0.01);
levkovigor 0:4a219a0d6583 279 sprintf((char*)text, "left=%d ", leftPulses);
levkovigor 0:4a219a0d6583 280 lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
levkovigor 0:4a219a0d6583 281 sprintf((char*)text, "right=%d ", rightPulses);
levkovigor 0:4a219a0d6583 282 lcd.DisplayStringAt(0, LINE(1), (uint8_t *)&text, LEFT_MODE);
levkovigor 0:4a219a0d6583 283
levkovigor 0:4a219a0d6583 284 }
levkovigor 0:4a219a0d6583 285
levkovigor 0:4a219a0d6583 286 leftMotor.brake();
levkovigor 0:4a219a0d6583 287 rightMotor.brake();
levkovigor 0:4a219a0d6583 288 right_bk = 0;
levkovigor 0:4a219a0d6583 289 left_bk = 0;
levkovigor 0:4a219a0d6583 290
levkovigor 0:4a219a0d6583 291
levkovigor 0:4a219a0d6583 292
levkovigor 0:4a219a0d6583 293 */
levkovigor 0:4a219a0d6583 294
levkovigor 0:4a219a0d6583 295
levkovigor 0:4a219a0d6583 296
levkovigor 0:4a219a0d6583 297 //}
levkovigor 0:4a219a0d6583 298
levkovigor 0:4a219a0d6583 299
levkovigor 0:4a219a0d6583 300
levkovigor 0:4a219a0d6583 301 /* while(1){
levkovigor 0:4a219a0d6583 302 sprintf((char*)text, "left=%d ", counterLeft.read());
levkovigor 0:4a219a0d6583 303 lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
levkovigor 0:4a219a0d6583 304 sprintf((char*)text, "right=%d ", counterRight.read());
levkovigor 0:4a219a0d6583 305 lcd.DisplayStringAt(0, LINE(1), (uint8_t *)&text, LEFT_MODE);
levkovigor 0:4a219a0d6583 306
levkovigor 0:4a219a0d6583 307 }*/
levkovigor 0:4a219a0d6583 308
levkovigor 0:4a219a0d6583 309 //lcd.Clear(LCD_COLOR_BLUE);
levkovigor 0:4a219a0d6583 310 //lcd.SetBackColor(LCD_COLOR_BLUE);
levkovigor 0:4a219a0d6583 311 //lcd.SetTextColor(LCD_COLOR_WHITE);
levkovigor 0:4a219a0d6583 312 //wait(0.3);
levkovigor 0:4a219a0d6583 313
levkovigor 0:4a219a0d6583 314 //led = 0.5f; // shorthand for led.write()
levkovigor 0:4a219a0d6583 315 //led.pulsewidth(2); // alternative to led.write, set duty cycle time in seconds
levkovigor 0:4a219a0d6583 316
levkovigor 0:4a219a0d6583 317
levkovigor 0:4a219a0d6583 318 /*gyro.GetXYZ(GyroBuffer);
levkovigor 0:4a219a0d6583 319 int ret = snprintf(buffer2, sizeof buffer2, " %.1f ", GyroBuffer[0]);
levkovigor 0:4a219a0d6583 320 lcd.DisplayStringAt(0, LINE(3), (uint8_t *)buffer2, CENTER_MODE);
levkovigor 0:4a219a0d6583 321 ret = snprintf(buffer2, sizeof buffer2, " %.1f ", GyroBuffer[1]);
levkovigor 0:4a219a0d6583 322 lcd.DisplayStringAt(0, LINE(4), (uint8_t *)buffer2, CENTER_MODE);
levkovigor 0:4a219a0d6583 323 ret = snprintf(buffer2, sizeof buffer2, " %.1f ", GyroBuffer[2]);
levkovigor 0:4a219a0d6583 324 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)buffer2, CENTER_MODE);*/
levkovigor 0:4a219a0d6583 325
levkovigor 0:4a219a0d6583 326
levkovigor 0:4a219a0d6583 327 //wait(1);
levkovigor 0:4a219a0d6583 328 //pc.printf("Hello World!\n");
levkovigor 0:4a219a0d6583 329 // while(1) {
levkovigor 0:4a219a0d6583 330
levkovigor 0:4a219a0d6583 331 /* if (pc.readable())
levkovigor 0:4a219a0d6583 332 {
levkovigor 0:4a219a0d6583 333 pc.scanf("%s", &buffer);
levkovigor 0:4a219a0d6583 334 pc.printf("%s\r\n", &buffer);
levkovigor 0:4a219a0d6583 335 }
levkovigor 0:4a219a0d6583 336 */
levkovigor 0:4a219a0d6583 337 //}
levkovigor 0:4a219a0d6583 338
levkovigor 0:4a219a0d6583 339
levkovigor 0:4a219a0d6583 340 }