prueba serial

Dependencies:   mbed

Committer:
danielgarciag
Date:
Tue Sep 04 01:32:43 2018 +0000
Revision:
1:938a0b8e42b8
Parent:
0:bf9cd7e28dd9
aaa

Who changed what in which revision?

UserRevisionLine numberNew contents of line
danielgarciag 0:bf9cd7e28dd9 1 #include "mbed.h"
danielgarciag 1:938a0b8e42b8 2
danielgarciag 1:938a0b8e42b8 3 PwmOut myservo1(PB_3);
danielgarciag 1:938a0b8e42b8 4 PwmOut myserv21(PB_5);
danielgarciag 1:938a0b8e42b8 5 DigitalOut myled(LED1);
danielgarciag 0:bf9cd7e28dd9 6 Serial pc(USBTX,USBRX);
danielgarciag 1:938a0b8e42b8 7 void RX();
danielgarciag 1:938a0b8e42b8 8 void servo1();
danielgarciag 0:bf9cd7e28dd9 9
danielgarciag 1:938a0b8e42b8 10 int main() {
danielgarciag 1:938a0b8e42b8 11 myservo2.period_ms(20);
danielgarciag 1:938a0b8e42b8 12 int dpulse2=500;
danielgarciag 1:938a0b8e42b8 13 myservo2.pulsewidth_us(dpulse2);
danielgarciag 1:938a0b8e42b8 14
danielgarciag 1:938a0b8e42b8 15 myservo1.period_ms(20);
danielgarciag 1:938a0b8e42b8 16 int dpulse=500;
danielgarciag 1:938a0b8e42b8 17 myservo1.pulsewidth_us(dpulse);
danielgarciag 1:938a0b8e42b8 18
danielgarciag 1:938a0b8e42b8 19 pc.printf ("ingrese # de servo\n");
danielgarciag 1:938a0b8e42b8 20 while (1)
danielgarciag 1:938a0b8e42b8 21 {
danielgarciag 1:938a0b8e42b8 22 pc.attach(&RX, Serial::RxIrq);}
danielgarciag 1:938a0b8e42b8 23
danielgarciag 1:938a0b8e42b8 24 }
danielgarciag 0:bf9cd7e28dd9 25
danielgarciag 1:938a0b8e42b8 26 void RX() {
danielgarciag 1:938a0b8e42b8 27
danielgarciag 1:938a0b8e42b8 28 char a = pc.getc();
danielgarciag 1:938a0b8e42b8 29 pc.printf("servo %c\n",a);
danielgarciag 1:938a0b8e42b8 30 while (a=='1'){
danielgarciag 1:938a0b8e42b8 31 myled = 1;
danielgarciag 1:938a0b8e42b8 32 pc.printf(" presiona la opcion:\n1=posicion servo 45°\n2=posicion servo 90°\n3=posicion servo 135°\n4=posicion servo 180°\n0=posicion servo 0°\n");
danielgarciag 1:938a0b8e42b8 33 char z= pc.getc();
danielgarciag 1:938a0b8e42b8 34
danielgarciag 1:938a0b8e42b8 35 if (z=='1'){
danielgarciag 1:938a0b8e42b8 36 int i= 450;
danielgarciag 1:938a0b8e42b8 37 myservo1.period_ms(20);
danielgarciag 1:938a0b8e42b8 38 int pos =500;
danielgarciag 1:938a0b8e42b8 39 pos += i;
danielgarciag 1:938a0b8e42b8 40 myservo1.pulsewidth_us(pos);
danielgarciag 1:938a0b8e42b8 41 myled = 0;
danielgarciag 1:938a0b8e42b8 42 pc.printf("comando ok \n ingrese # de servo\n");
danielgarciag 1:938a0b8e42b8 43 }
danielgarciag 1:938a0b8e42b8 44 if (z=='2'){
danielgarciag 1:938a0b8e42b8 45 int i= 900;
danielgarciag 1:938a0b8e42b8 46 myservo1.period_ms(20);
danielgarciag 1:938a0b8e42b8 47 int pos =500;
danielgarciag 1:938a0b8e42b8 48 pos += i;
danielgarciag 1:938a0b8e42b8 49 myservo1.pulsewidth_us(pos);
danielgarciag 1:938a0b8e42b8 50 myled = 0;
danielgarciag 1:938a0b8e42b8 51 pc.printf("comando ok \n ingrese # de servo\n");
danielgarciag 1:938a0b8e42b8 52 }
danielgarciag 1:938a0b8e42b8 53 if (z=='3'){
danielgarciag 1:938a0b8e42b8 54 int i= 1350;
danielgarciag 1:938a0b8e42b8 55 myservo1.period_ms(20);
danielgarciag 1:938a0b8e42b8 56 int pos =500;
danielgarciag 1:938a0b8e42b8 57 pos += i;
danielgarciag 1:938a0b8e42b8 58 myservo1.pulsewidth_us(pos);
danielgarciag 1:938a0b8e42b8 59 myled = 0;
danielgarciag 1:938a0b8e42b8 60 pc.printf("comando ok \n ingrese # de servo\n");
danielgarciag 1:938a0b8e42b8 61 }
danielgarciag 1:938a0b8e42b8 62 if (z=='4'){
danielgarciag 1:938a0b8e42b8 63 int i= 1800;
danielgarciag 1:938a0b8e42b8 64 myservo1.period_ms(20);
danielgarciag 1:938a0b8e42b8 65 int pos =500;
danielgarciag 1:938a0b8e42b8 66 pos += i;
danielgarciag 1:938a0b8e42b8 67 myservo1.pulsewidth_us(pos);
danielgarciag 1:938a0b8e42b8 68 myled = 0;
danielgarciag 1:938a0b8e42b8 69 pc.printf("comando ok \n ingrese # de servo\n");
danielgarciag 1:938a0b8e42b8 70 }
danielgarciag 1:938a0b8e42b8 71 if (z=='0'){
danielgarciag 1:938a0b8e42b8 72 int i= 50;
danielgarciag 1:938a0b8e42b8 73 myservo1.period_ms(20);
danielgarciag 1:938a0b8e42b8 74 int pos = 500;
danielgarciag 1:938a0b8e42b8 75 pos += i;
danielgarciag 1:938a0b8e42b8 76 myservo1.pulsewidth_us(pos);
danielgarciag 1:938a0b8e42b8 77 myled = 0;
danielgarciag 1:938a0b8e42b8 78 pc.printf("comando ok \n ingrese # de servo\n");
danielgarciag 1:938a0b8e42b8 79 }
danielgarciag 1:938a0b8e42b8 80 if (z>'4'){
danielgarciag 1:938a0b8e42b8 81 pc.printf("comando incorrecto\n ingrese # de servo\n");
danielgarciag 1:938a0b8e42b8 82 } }
danielgarciag 1:938a0b8e42b8 83 while (a=='2'){
danielgarciag 1:938a0b8e42b8 84 myled = 1;
danielgarciag 1:938a0b8e42b8 85 pc.printf(" presiona la opcion:\n1=posicion servo 45°\n2=posicion servo 90°\n3=posicion servo 135°\n4=posicion servo 180°\n0=posicion servo 0°\n");
danielgarciag 1:938a0b8e42b8 86 char y= pc.getc();
danielgarciag 1:938a0b8e42b8 87
danielgarciag 1:938a0b8e42b8 88 if (y=='1'){
danielgarciag 1:938a0b8e42b8 89 int i1= 450;
danielgarciag 1:938a0b8e42b8 90 myservo2.period_ms(20);
danielgarciag 1:938a0b8e42b8 91 int pos =500;
danielgarciag 1:938a0b8e42b8 92 pos += i1;
danielgarciag 1:938a0b8e42b8 93 myservo2.pulsewidth_us(pos);
danielgarciag 1:938a0b8e42b8 94 myled = 0;
danielgarciag 1:938a0b8e42b8 95 pc.printf("comando ok \n ingrese # de servo\n");
danielgarciag 1:938a0b8e42b8 96 }
danielgarciag 1:938a0b8e42b8 97 if (y=='2'){
danielgarciag 1:938a0b8e42b8 98 int i1= 900;
danielgarciag 1:938a0b8e42b8 99 myservo2.period_ms(20);
danielgarciag 1:938a0b8e42b8 100 int pos =500;
danielgarciag 1:938a0b8e42b8 101 pos += i1;
danielgarciag 1:938a0b8e42b8 102 myservo2pulsewidth_us(pos);
danielgarciag 1:938a0b8e42b8 103 myled = 0;
danielgarciag 1:938a0b8e42b8 104 pc.printf("comando ok \n ingrese # de servo\n");
danielgarciag 1:938a0b8e42b8 105 }
danielgarciag 1:938a0b8e42b8 106 if (y=='3'){
danielgarciag 1:938a0b8e42b8 107 int i1= 1350;
danielgarciag 1:938a0b8e42b8 108 myservo2.period_ms(20);
danielgarciag 1:938a0b8e42b8 109 int pos =500;
danielgarciag 1:938a0b8e42b8 110 pos += i1;
danielgarciag 1:938a0b8e42b8 111 myservo2.pulsewidth_us(pos);
danielgarciag 1:938a0b8e42b8 112 myled = 0;
danielgarciag 1:938a0b8e42b8 113 pc.printf("comando ok \n ingrese # de servo\n");
danielgarciag 1:938a0b8e42b8 114 }
danielgarciag 1:938a0b8e42b8 115 if (y=='4'){
danielgarciag 1:938a0b8e42b8 116 int i1= 1800;
danielgarciag 1:938a0b8e42b8 117 myservo2.period_ms(20);
danielgarciag 1:938a0b8e42b8 118 int pos =500;
danielgarciag 1:938a0b8e42b8 119 pos += i1;
danielgarciag 1:938a0b8e42b8 120 myservo2.pulsewidth_us(pos);
danielgarciag 1:938a0b8e42b8 121 myled = 0;
danielgarciag 1:938a0b8e42b8 122 pc.printf("comando ok \n ingrese # de servo\n");
danielgarciag 1:938a0b8e42b8 123 }
danielgarciag 1:938a0b8e42b8 124 if (y=='0'){
danielgarciag 1:938a0b8e42b8 125 int i1= 50;
danielgarciag 1:938a0b8e42b8 126 myservo2.period_ms(20);
danielgarciag 1:938a0b8e42b8 127 int pos = 500;
danielgarciag 1:938a0b8e42b8 128 pos += i1;
danielgarciag 1:938a0b8e42b8 129 myservo2.pulsewidth_us(pos);
danielgarciag 1:938a0b8e42b8 130 myled = 0;
danielgarciag 1:938a0b8e42b8 131 pc.printf("comando ok \n ingrese # de servo\n");
danielgarciag 1:938a0b8e42b8 132 }
danielgarciag 1:938a0b8e42b8 133 if (y>'4'){
danielgarciag 1:938a0b8e42b8 134 pc.printf("comando incorrecto\n ingrese # de servo\n");
danielgarciag 1:938a0b8e42b8 135 }
danielgarciag 1:938a0b8e42b8 136
danielgarciag 1:938a0b8e42b8 137 a='0';
danielgarciag 1:938a0b8e42b8 138
danielgarciag 1:938a0b8e42b8 139 } return;
danielgarciag 1:938a0b8e42b8 140
danielgarciag 1:938a0b8e42b8 141 }
danielgarciag 1:938a0b8e42b8 142
danielgarciag 1:938a0b8e42b8 143
danielgarciag 1:938a0b8e42b8 144
danielgarciag 0:bf9cd7e28dd9 145
danielgarciag 0:bf9cd7e28dd9 146
danielgarciag 0:bf9cd7e28dd9 147
danielgarciag 0:bf9cd7e28dd9 148
danielgarciag 1:938a0b8e42b8 149