Daniel Garcia
/
Nucleo_blink_led
prueba serial
main.cpp@1:938a0b8e42b8, 2018-09-04 (annotated)
- Committer:
- danielgarciag
- Date:
- Tue Sep 04 01:32:43 2018 +0000
- Revision:
- 1:938a0b8e42b8
- Parent:
- 0:bf9cd7e28dd9
aaa
Who changed what in which revision?
User | Revision | Line number | New 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 |