Ascensor

Dependencies:   Debounced SRF05 mbed-rtos mbed

Fork of rtos_mutex by mbed official

Committer:
ProcesadoresESDJ
Date:
Thu Jun 08 14:24:24 2017 +0000
Revision:
8:489cb2245a3a
Parent:
7:bd0aa7f21f53
Ascensor

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 1:0f886ffbe0c1 1 #include "mbed.h"
ProcesadoresESDJ 8:489cb2245a3a 2 #include "SRF05.h"
ProcesadoresESDJ 8:489cb2245a3a 3 #include "DebouncedIn.h"
mbed_official 7:bd0aa7f21f53 4 #include "rtos.h"
ProcesadoresESDJ 8:489cb2245a3a 5
ProcesadoresESDJ 8:489cb2245a3a 6
ProcesadoresESDJ 8:489cb2245a3a 7 /*
ProcesadoresESDJ 8:489cb2245a3a 8 Para este proyecto se crearán tres hilos:
ProcesadoresESDJ 8:489cb2245a3a 9
ProcesadoresESDJ 8:489cb2245a3a 10 1. Sensado - correspondiente al sensado de la distancia de la cabina con respecto al SRF05.
ProcesadoresESDJ 8:489cb2245a3a 11
ProcesadoresESDJ 8:489cb2245a3a 12 2. Botones - correspondiente a los 8 botones instalados en el ascensor:
ProcesadoresESDJ 8:489cb2245a3a 13 - Tres de selección del piso deseado.
ProcesadoresESDJ 8:489cb2245a3a 14 - Uno de paro de emergencia.
ProcesadoresESDJ 8:489cb2245a3a 15 - Cuatro de llamado del ascensor en cada piso: uno en el primero (subir), uno en el tercero (bajar) y dos en el segundo (subir, bajar).
ProcesadoresESDJ 8:489cb2245a3a 16
ProcesadoresESDJ 8:489cb2245a3a 17 3. Pisos - correspondiente al llamado a cada uno de los pisos, dentro de su sección crítica se configurarán las salidas de los servos para la apertura de puertas en cada uno.
ProcesadoresESDJ 8:489cb2245a3a 18
ProcesadoresESDJ 8:489cb2245a3a 19 El recurso compartido será la disponibilidad del ascensor para ser llamado, el cual se llamará "disponible".
ProcesadoresESDJ 8:489cb2245a3a 20 */
ProcesadoresESDJ 8:489cb2245a3a 21
ProcesadoresESDJ 8:489cb2245a3a 22 // Declaración de puertos de transmisión y recepción para comunicación serial
ProcesadoresESDJ 8:489cb2245a3a 23 Serial pc(USBTX, USBRX);
ProcesadoresESDJ 8:489cb2245a3a 24
ProcesadoresESDJ 8:489cb2245a3a 25 // Declaración de pines para las puertas a partir de salidas PWM
ProcesadoresESDJ 8:489cb2245a3a 26 PwmOut servo1(PTD0); // servo 1 - primer piso
ProcesadoresESDJ 8:489cb2245a3a 27 PwmOut servo2(PTD5); // servo 2 - segundo piso
ProcesadoresESDJ 8:489cb2245a3a 28 PwmOut servo3(PTA13); // servo 3 - tercer piso
ProcesadoresESDJ 8:489cb2245a3a 29 int STOP=0; // estado detenido inicializado en 0
ProcesadoresESDJ 8:489cb2245a3a 30
ProcesadoresESDJ 8:489cb2245a3a 31 // variables de estado para el giro del motor DC - up, down
ProcesadoresESDJ 8:489cb2245a3a 32 int motor_up;
ProcesadoresESDJ 8:489cb2245a3a 33 int motor_down;
ProcesadoresESDJ 8:489cb2245a3a 34
ProcesadoresESDJ 8:489cb2245a3a 35 // Declaración de pines para los botones
ProcesadoresESDJ 8:489cb2245a3a 36 DebouncedIn boton1(PTC11); // Botón de llamado desde el primer piso
ProcesadoresESDJ 8:489cb2245a3a 37 DebouncedIn boton2b(PTC10); // Botón de llamado desde el segundo piso para bajar
ProcesadoresESDJ 8:489cb2245a3a 38 DebouncedIn boton2s(PTC6); // Botón de llamado desde el segundo piso para subir
ProcesadoresESDJ 8:489cb2245a3a 39 DebouncedIn boton3(PTC5); // Botón de llamado desde el tercer piso
ProcesadoresESDJ 8:489cb2245a3a 40 DebouncedIn boton1i(PTC4); // Botón para ir al primer piso
ProcesadoresESDJ 8:489cb2245a3a 41 DebouncedIn boton2i(PTC3); // Botón para ir al segundo piso
ProcesadoresESDJ 8:489cb2245a3a 42 DebouncedIn boton3i(PTC0); // Botón para ir al tercer piso
ProcesadoresESDJ 8:489cb2245a3a 43 DebouncedIn boton_p(PTC7); // Botón de paro
ProcesadoresESDJ 8:489cb2245a3a 44
ProcesadoresESDJ 8:489cb2245a3a 45 // Declaración pines del sensor de ultrasonido
ProcesadoresESDJ 8:489cb2245a3a 46 SRF05 sensor(PTD3,PTD1); // (Trigger, Echo)
ProcesadoresESDJ 8:489cb2245a3a 47
ProcesadoresESDJ 8:489cb2245a3a 48 // Declaración pines digitales para los led's indicadores de piso
ProcesadoresESDJ 8:489cb2245a3a 49 DigitalOut led1(PTE5); // piso 1
ProcesadoresESDJ 8:489cb2245a3a 50 DigitalOut led2(PTE4); // piso 2
ProcesadoresESDJ 8:489cb2245a3a 51 DigitalOut led3(PTE3); // piso 3
ProcesadoresESDJ 8:489cb2245a3a 52
ProcesadoresESDJ 8:489cb2245a3a 53 // Declaración pines de salida para el motor principal tipo PWM para inversión de giro
ProcesadoresESDJ 8:489cb2245a3a 54 PwmOut ascender(PTC1);
ProcesadoresESDJ 8:489cb2245a3a 55 PwmOut bajada(PTC2);
ProcesadoresESDJ 8:489cb2245a3a 56 DigitalOut enable(PTB3);
ProcesadoresESDJ 8:489cb2245a3a 57
ProcesadoresESDJ 8:489cb2245a3a 58 // Hilos
ProcesadoresESDJ 8:489cb2245a3a 59 Thread pul;
ProcesadoresESDJ 8:489cb2245a3a 60 Thread sen;
ProcesadoresESDJ 8:489cb2245a3a 61 Thread pis;
ProcesadoresESDJ 8:489cb2245a3a 62
ProcesadoresESDJ 8:489cb2245a3a 63
ProcesadoresESDJ 8:489cb2245a3a 64 //A continuación se describe el número de botones a usar
ProcesadoresESDJ 8:489cb2245a3a 65 // los pisos del ascensor, el botón de paro
ProcesadoresESDJ 8:489cb2245a3a 66 // y las distancias entre los pisos
ProcesadoresESDJ 8:489cb2245a3a 67
ProcesadoresESDJ 8:489cb2245a3a 68 int i = 0;
ProcesadoresESDJ 8:489cb2245a3a 69 int botones[4]; // Botones de selección de piso
ProcesadoresESDJ 8:489cb2245a3a 70 int pisos[3]; // Número de pisos del ascensor
ProcesadoresESDJ 8:489cb2245a3a 71 int paro; // variable de paro
ProcesadoresESDJ 8:489cb2245a3a 72 int disponible=0; // Estado de ejecución del ascensor
ProcesadoresESDJ 8:489cb2245a3a 73 float distancia; // Distancia real medida del sensor
ProcesadoresESDJ 8:489cb2245a3a 74 float dist_p3=8.0; // Distancia del sensor al piso 3
ProcesadoresESDJ 8:489cb2245a3a 75 float dist_p2=28.0; // Distancia del sensor al piso 2
ProcesadoresESDJ 8:489cb2245a3a 76 float dist_p1=47.0; // Distancia del sensor al piso 1
ProcesadoresESDJ 8:489cb2245a3a 77
ProcesadoresESDJ 8:489cb2245a3a 78 // Evaluación de estado de los pulsadores
ProcesadoresESDJ 8:489cb2245a3a 79 void pulsadores(void const *args){
ProcesadoresESDJ 8:489cb2245a3a 80
ProcesadoresESDJ 8:489cb2245a3a 81 while(1) {
ProcesadoresESDJ 8:489cb2245a3a 82
ProcesadoresESDJ 8:489cb2245a3a 83 // Si se presiona el botón de paro se activa el estado detenido y el estado de paro
ProcesadoresESDJ 8:489cb2245a3a 84 if (boton_p.read()==1){ // Lectura de boton de paro
ProcesadoresESDJ 8:489cb2245a3a 85 STOP=1;
ProcesadoresESDJ 8:489cb2245a3a 86 paro=1;
ProcesadoresESDJ 8:489cb2245a3a 87 }
ProcesadoresESDJ 8:489cb2245a3a 88 // Si se presiona el botón de llamado desde el primer piso, es porque se activó el botón 0
ProcesadoresESDJ 8:489cb2245a3a 89 if (boton1.read()==1){
ProcesadoresESDJ 8:489cb2245a3a 90 botones[0]=1;
ProcesadoresESDJ 8:489cb2245a3a 91 }
ProcesadoresESDJ 8:489cb2245a3a 92 // Si se presiona el botón de llamado desde el segundo piso para bajar, es porque se activó el botón 1
ProcesadoresESDJ 8:489cb2245a3a 93 // Lo que hará que baje al primer piso
ProcesadoresESDJ 8:489cb2245a3a 94 if (boton2b.read()==1){
ProcesadoresESDJ 8:489cb2245a3a 95 botones[1]=1;
ProcesadoresESDJ 8:489cb2245a3a 96 }
ProcesadoresESDJ 8:489cb2245a3a 97 // Si se presiona el botón de llamado desde el segundo piso para subir, es porque se activó el botón 2
ProcesadoresESDJ 8:489cb2245a3a 98 // Lo que hará que suba al tercer piso
ProcesadoresESDJ 8:489cb2245a3a 99 if (boton2s.read()==1){
ProcesadoresESDJ 8:489cb2245a3a 100 botones[2]=1;
ProcesadoresESDJ 8:489cb2245a3a 101 }
ProcesadoresESDJ 8:489cb2245a3a 102 // Si se presiona el botón de llamado desde tercer piso, es porque se activó el botón 3
ProcesadoresESDJ 8:489cb2245a3a 103 if (boton3.read()==1){
ProcesadoresESDJ 8:489cb2245a3a 104 botones[3]=1;
ProcesadoresESDJ 8:489cb2245a3a 105 }
ProcesadoresESDJ 8:489cb2245a3a 106 // Si se presiona el botón para ir al primer piso, la cabina se desplazará al primer piso
ProcesadoresESDJ 8:489cb2245a3a 107 if (boton1i.read()==1){
ProcesadoresESDJ 8:489cb2245a3a 108 pisos[0]=1;
ProcesadoresESDJ 8:489cb2245a3a 109 }
ProcesadoresESDJ 8:489cb2245a3a 110 // Si se presiona el botón para ir al segundo piso, la cabina se desplazará al segundo piso
ProcesadoresESDJ 8:489cb2245a3a 111 if (boton2i.read()==1){
ProcesadoresESDJ 8:489cb2245a3a 112 pisos[1]=1;
ProcesadoresESDJ 8:489cb2245a3a 113 }
ProcesadoresESDJ 8:489cb2245a3a 114 // Si se presiona el botón para ir al tercer piso, la cabina se desplazará al tercer piso
ProcesadoresESDJ 8:489cb2245a3a 115 if (boton3i.read()==1){
ProcesadoresESDJ 8:489cb2245a3a 116 pisos[2]=1;
ProcesadoresESDJ 8:489cb2245a3a 117 }
ProcesadoresESDJ 8:489cb2245a3a 118 // Thread::wait(1000.0*0.02);
ProcesadoresESDJ 8:489cb2245a3a 119 }
emilmont 1:0f886ffbe0c1 120 }
ProcesadoresESDJ 8:489cb2245a3a 121
ProcesadoresESDJ 8:489cb2245a3a 122 // Función de lectura de distancia por el SRF05
ProcesadoresESDJ 8:489cb2245a3a 123 void sensar(void const *args){
ProcesadoresESDJ 8:489cb2245a3a 124
ProcesadoresESDJ 8:489cb2245a3a 125 while(1) {
ProcesadoresESDJ 8:489cb2245a3a 126
ProcesadoresESDJ 8:489cb2245a3a 127 distancia=sensor.read(); // Lectura del sensor
ProcesadoresESDJ 8:489cb2245a3a 128 //Thread::wait(1000.0*0.02);
ProcesadoresESDJ 8:489cb2245a3a 129 distancia=floor(distancia);
emilmont 1:0f886ffbe0c1 130 }
emilmont 1:0f886ffbe0c1 131 }
ProcesadoresESDJ 8:489cb2245a3a 132 void subir(void){
ProcesadoresESDJ 8:489cb2245a3a 133 ascender.period_ms(20);
ProcesadoresESDJ 8:489cb2245a3a 134 bajada.period_ms(20);
ProcesadoresESDJ 8:489cb2245a3a 135 ascender.pulsewidth_ms(15);
ProcesadoresESDJ 8:489cb2245a3a 136 bajada.pulsewidth_ms(0);
ProcesadoresESDJ 8:489cb2245a3a 137 }
ProcesadoresESDJ 8:489cb2245a3a 138
ProcesadoresESDJ 8:489cb2245a3a 139 void bajar(void){
ProcesadoresESDJ 8:489cb2245a3a 140
ProcesadoresESDJ 8:489cb2245a3a 141 ascender.period_ms(20);
ProcesadoresESDJ 8:489cb2245a3a 142 bajada.period_ms(20);
ProcesadoresESDJ 8:489cb2245a3a 143 ascender.pulsewidth_ms(0);
ProcesadoresESDJ 8:489cb2245a3a 144 bajada.pulsewidth_ms(8);
ProcesadoresESDJ 8:489cb2245a3a 145 }
ProcesadoresESDJ 8:489cb2245a3a 146
ProcesadoresESDJ 8:489cb2245a3a 147 void parar(void){
ProcesadoresESDJ 8:489cb2245a3a 148 ascender.period_ms(20);
ProcesadoresESDJ 8:489cb2245a3a 149 bajada.period_ms(20);
ProcesadoresESDJ 8:489cb2245a3a 150 ascender.pulsewidth_ms(0);
ProcesadoresESDJ 8:489cb2245a3a 151 bajada.pulsewidth_ms(0);
ProcesadoresESDJ 8:489cb2245a3a 152 }
ProcesadoresESDJ 8:489cb2245a3a 153
ProcesadoresESDJ 8:489cb2245a3a 154
ProcesadoresESDJ 8:489cb2245a3a 155 void puertas(void){
ProcesadoresESDJ 8:489cb2245a3a 156
ProcesadoresESDJ 8:489cb2245a3a 157 // Para el primer piso
ProcesadoresESDJ 8:489cb2245a3a 158 if(pisos[0]==1){
ProcesadoresESDJ 8:489cb2245a3a 159
ProcesadoresESDJ 8:489cb2245a3a 160 // Abrir puerta
ProcesadoresESDJ 8:489cb2245a3a 161 servo1.period(0.025);
ProcesadoresESDJ 8:489cb2245a3a 162 servo1.pulsewidth(0.0008);
ProcesadoresESDJ 8:489cb2245a3a 163 wait(5); // Duración apertura
ProcesadoresESDJ 8:489cb2245a3a 164 // Cerrar puerta
ProcesadoresESDJ 8:489cb2245a3a 165 servo1.period(0.025);
ProcesadoresESDJ 8:489cb2245a3a 166 servo1.pulsewidth(0.0008);
ProcesadoresESDJ 8:489cb2245a3a 167 wait(5);
ProcesadoresESDJ 8:489cb2245a3a 168 }
ProcesadoresESDJ 8:489cb2245a3a 169 // Segundo Piso
ProcesadoresESDJ 8:489cb2245a3a 170 else if(pisos[1]==1){
ProcesadoresESDJ 8:489cb2245a3a 171 // Abrir puerta
ProcesadoresESDJ 8:489cb2245a3a 172 servo2.period(0.025);
ProcesadoresESDJ 8:489cb2245a3a 173 servo2.pulsewidth(0.0055);
ProcesadoresESDJ 8:489cb2245a3a 174 wait(5); // Duración apertura
ProcesadoresESDJ 8:489cb2245a3a 175 // Cerrar puerta
ProcesadoresESDJ 8:489cb2245a3a 176 servo2.period(0.025);
ProcesadoresESDJ 8:489cb2245a3a 177 servo2.pulsewidth(0.0008);
ProcesadoresESDJ 8:489cb2245a3a 178 wait(5);
ProcesadoresESDJ 8:489cb2245a3a 179 }
ProcesadoresESDJ 8:489cb2245a3a 180 // Tercer piso
ProcesadoresESDJ 8:489cb2245a3a 181 else{
ProcesadoresESDJ 8:489cb2245a3a 182 // Abrir
ProcesadoresESDJ 8:489cb2245a3a 183 servo3.period(0.025);
ProcesadoresESDJ 8:489cb2245a3a 184 servo3.pulsewidth(0.0055);
ProcesadoresESDJ 8:489cb2245a3a 185 wait(5); // Duración apertura
ProcesadoresESDJ 8:489cb2245a3a 186 // Cerrar
ProcesadoresESDJ 8:489cb2245a3a 187 servo3.period(0.025);
ProcesadoresESDJ 8:489cb2245a3a 188 servo3.pulsewidth(0.0055);
ProcesadoresESDJ 8:489cb2245a3a 189 wait(5);
ProcesadoresESDJ 8:489cb2245a3a 190 }
ProcesadoresESDJ 8:489cb2245a3a 191 }
ProcesadoresESDJ 8:489cb2245a3a 192
ProcesadoresESDJ 8:489cb2245a3a 193
ProcesadoresESDJ 8:489cb2245a3a 194 void reinicio(void){
ProcesadoresESDJ 8:489cb2245a3a 195 for(i=0;i==3;i++)
ProcesadoresESDJ 8:489cb2245a3a 196 {
ProcesadoresESDJ 8:489cb2245a3a 197 botones[i]=0;
ProcesadoresESDJ 8:489cb2245a3a 198 if(i!=3)
ProcesadoresESDJ 8:489cb2245a3a 199 pisos[i]=0;
ProcesadoresESDJ 8:489cb2245a3a 200
ProcesadoresESDJ 8:489cb2245a3a 201 }
emilmont 1:0f886ffbe0c1 202 }
ProcesadoresESDJ 8:489cb2245a3a 203
ProcesadoresESDJ 8:489cb2245a3a 204 void piso (void const *args)
ProcesadoresESDJ 8:489cb2245a3a 205 {
ProcesadoresESDJ 8:489cb2245a3a 206 while(1)
ProcesadoresESDJ 8:489cb2245a3a 207 {
ProcesadoresESDJ 8:489cb2245a3a 208 if(botones[0]==1) //Llamado desde el primer piso
ProcesadoresESDJ 8:489cb2245a3a 209 {
ProcesadoresESDJ 8:489cb2245a3a 210 if(distancia<dist_p1)//si no esta en el primer piso, baja
ProcesadoresESDJ 8:489cb2245a3a 211 {
ProcesadoresESDJ 8:489cb2245a3a 212 bajar();
ProcesadoresESDJ 8:489cb2245a3a 213 }else{
ProcesadoresESDJ 8:489cb2245a3a 214 parar();
ProcesadoresESDJ 8:489cb2245a3a 215 puertas();
ProcesadoresESDJ 8:489cb2245a3a 216 botones[0]=0;
ProcesadoresESDJ 8:489cb2245a3a 217 }
ProcesadoresESDJ 8:489cb2245a3a 218 }//Fin botones[0]
ProcesadoresESDJ 8:489cb2245a3a 219
ProcesadoresESDJ 8:489cb2245a3a 220 if(botones[1]==1) //Llamado desde el segundo piso para bajar
ProcesadoresESDJ 8:489cb2245a3a 221 {
ProcesadoresESDJ 8:489cb2245a3a 222 if(distancia<dist_p2)//si esta en el tercer piso, baja
ProcesadoresESDJ 8:489cb2245a3a 223 {
ProcesadoresESDJ 8:489cb2245a3a 224 bajar();
ProcesadoresESDJ 8:489cb2245a3a 225 }else if(distancia>dist_p2){// si esta en el primer piso sube
ProcesadoresESDJ 8:489cb2245a3a 226 subir();
ProcesadoresESDJ 8:489cb2245a3a 227
ProcesadoresESDJ 8:489cb2245a3a 228 }else{ // en el segundo piso para y baja al primer piso
ProcesadoresESDJ 8:489cb2245a3a 229 parar();
ProcesadoresESDJ 8:489cb2245a3a 230 puertas();
ProcesadoresESDJ 8:489cb2245a3a 231 botones[1]=0;
ProcesadoresESDJ 8:489cb2245a3a 232 botones[0]=1;
ProcesadoresESDJ 8:489cb2245a3a 233 }
ProcesadoresESDJ 8:489cb2245a3a 234 }//Fin botones[1]
ProcesadoresESDJ 8:489cb2245a3a 235
ProcesadoresESDJ 8:489cb2245a3a 236
ProcesadoresESDJ 8:489cb2245a3a 237 if(botones[2]==1) //Llamado desde el segundo piso para subir
ProcesadoresESDJ 8:489cb2245a3a 238 {
ProcesadoresESDJ 8:489cb2245a3a 239 if(distancia<dist_p2)//si esta en el tercer piso, sube
ProcesadoresESDJ 8:489cb2245a3a 240 {
ProcesadoresESDJ 8:489cb2245a3a 241 subir();
ProcesadoresESDJ 8:489cb2245a3a 242 }else if(distancia>dist_p2){// si esta en el primer piso baja
ProcesadoresESDJ 8:489cb2245a3a 243 bajar();
ProcesadoresESDJ 8:489cb2245a3a 244
ProcesadoresESDJ 8:489cb2245a3a 245 }else{ // en el segundo piso para y sube al tercer piso
ProcesadoresESDJ 8:489cb2245a3a 246 parar();
ProcesadoresESDJ 8:489cb2245a3a 247 puertas();
ProcesadoresESDJ 8:489cb2245a3a 248 botones[2]=0;
ProcesadoresESDJ 8:489cb2245a3a 249 botones[3]=1;
ProcesadoresESDJ 8:489cb2245a3a 250 }
ProcesadoresESDJ 8:489cb2245a3a 251 }//Fin botones[2]
ProcesadoresESDJ 8:489cb2245a3a 252
ProcesadoresESDJ 8:489cb2245a3a 253 if(botones[3]==1) //Llamado desde el tercer piso
ProcesadoresESDJ 8:489cb2245a3a 254 {
ProcesadoresESDJ 8:489cb2245a3a 255 if(distancia>dist_p3)//si no esta en el primer tercer piso sube
ProcesadoresESDJ 8:489cb2245a3a 256 {
ProcesadoresESDJ 8:489cb2245a3a 257 subir();
ProcesadoresESDJ 8:489cb2245a3a 258 }else{
ProcesadoresESDJ 8:489cb2245a3a 259 parar();
ProcesadoresESDJ 8:489cb2245a3a 260 puertas();
ProcesadoresESDJ 8:489cb2245a3a 261 botones[3]=0;
ProcesadoresESDJ 8:489cb2245a3a 262 }
ProcesadoresESDJ 8:489cb2245a3a 263 }//Fin botones[3]
ProcesadoresESDJ 8:489cb2245a3a 264
ProcesadoresESDJ 8:489cb2245a3a 265 if(pisos[0]==1)//Ir al piso 1
ProcesadoresESDJ 8:489cb2245a3a 266 {
ProcesadoresESDJ 8:489cb2245a3a 267 botones[0]=1;
ProcesadoresESDJ 8:489cb2245a3a 268 pisos[0]=0;
ProcesadoresESDJ 8:489cb2245a3a 269 }//Fin pisos [0]
ProcesadoresESDJ 8:489cb2245a3a 270
ProcesadoresESDJ 8:489cb2245a3a 271 if(pisos[1]==1)//Ir al piso 2
ProcesadoresESDJ 8:489cb2245a3a 272 {
ProcesadoresESDJ 8:489cb2245a3a 273 if(distancia<dist_p2)//si esta en el tercer piso, sube
ProcesadoresESDJ 8:489cb2245a3a 274 {
ProcesadoresESDJ 8:489cb2245a3a 275 subir();
ProcesadoresESDJ 8:489cb2245a3a 276 }else if(distancia>dist_p2){// si esta en el primer piso baja
ProcesadoresESDJ 8:489cb2245a3a 277 bajar();
ProcesadoresESDJ 8:489cb2245a3a 278
ProcesadoresESDJ 8:489cb2245a3a 279 }else{ // en el segundo piso para y sube al tercer piso
ProcesadoresESDJ 8:489cb2245a3a 280 parar();
ProcesadoresESDJ 8:489cb2245a3a 281 puertas();
ProcesadoresESDJ 8:489cb2245a3a 282 pisos[1]=0;
ProcesadoresESDJ 8:489cb2245a3a 283 }
ProcesadoresESDJ 8:489cb2245a3a 284
ProcesadoresESDJ 8:489cb2245a3a 285 }//Fin pisos[1]
ProcesadoresESDJ 8:489cb2245a3a 286
ProcesadoresESDJ 8:489cb2245a3a 287 if(pisos[2]==1)//Ir al piso 3
ProcesadoresESDJ 8:489cb2245a3a 288 {
ProcesadoresESDJ 8:489cb2245a3a 289 botones[3]=1;
ProcesadoresESDJ 8:489cb2245a3a 290 pisos[2]=0;
ProcesadoresESDJ 8:489cb2245a3a 291 }//Fin pisos [2]
ProcesadoresESDJ 8:489cb2245a3a 292
ProcesadoresESDJ 8:489cb2245a3a 293 if(STOP==1)
ProcesadoresESDJ 8:489cb2245a3a 294 {
ProcesadoresESDJ 8:489cb2245a3a 295 parar();
ProcesadoresESDJ 8:489cb2245a3a 296 reinicio();
ProcesadoresESDJ 8:489cb2245a3a 297 }//Fin STOP
ProcesadoresESDJ 8:489cb2245a3a 298
ProcesadoresESDJ 8:489cb2245a3a 299 }//Fin while
ProcesadoresESDJ 8:489cb2245a3a 300 }//Fin piso
ProcesadoresESDJ 8:489cb2245a3a 301
ProcesadoresESDJ 8:489cb2245a3a 302 int main(void)
ProcesadoresESDJ 8:489cb2245a3a 303 {
ProcesadoresESDJ 8:489cb2245a3a 304
ProcesadoresESDJ 8:489cb2245a3a 305 parar();
ProcesadoresESDJ 8:489cb2245a3a 306 pul.start(callback(pulsadores,(void *)"pulsa"));
ProcesadoresESDJ 8:489cb2245a3a 307 sen.start(callback(sensar,(void *)"sensor"));
ProcesadoresESDJ 8:489cb2245a3a 308 pis.start(callback(piso,(void *)"pisos"));
ProcesadoresESDJ 8:489cb2245a3a 309
ProcesadoresESDJ 8:489cb2245a3a 310 }//Fin main
ProcesadoresESDJ 8:489cb2245a3a 311