hola

Dependencies:   mbed

Committer:
jklagp
Date:
Mon Jan 19 22:55:34 2015 +0000
Revision:
0:f9d7163fcbdb
tarea tacometro

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jklagp 0:f9d7163fcbdb 1 #include "mbed.h"
jklagp 0:f9d7163fcbdb 2
jklagp 0:f9d7163fcbdb 3 BusOut segmentos(D2,D3,D4,D10,D13,D12,D11,D9);
jklagp 0:f9d7163fcbdb 4 BusOut display(D5,D6,D7,D15);
jklagp 0:f9d7163fcbdb 5 enum digitos {cero=63,uno=6,dos=91,tres=79,cuatro=102,cinco=109,seis=125,siete=7,ocho=127,nueve=103,ceror=63};
jklagp 0:f9d7163fcbdb 6 int incrementar (int);
jklagp 0:f9d7163fcbdb 7 Ticker flipper1,operacion,velocidad;
jklagp 0:f9d7163fcbdb 8 unsigned short digito[4];
jklagp 0:f9d7163fcbdb 9 int revoluciones,vueltas;
jklagp 0:f9d7163fcbdb 10 InterruptIn sensor(D14);
jklagp 0:f9d7163fcbdb 11 AnalogIn pot(PTB2);
jklagp 0:f9d7163fcbdb 12 PwmOut Motor(PTC10);
jklagp 0:f9d7163fcbdb 13
jklagp 0:f9d7163fcbdb 14 void flip1(void);
jklagp 0:f9d7163fcbdb 15 void imprimir(void);
jklagp 0:f9d7163fcbdb 16 void rev(void);
jklagp 0:f9d7163fcbdb 17 void contar(void);
jklagp 0:f9d7163fcbdb 18 void velo(void);
jklagp 0:f9d7163fcbdb 19
jklagp 0:f9d7163fcbdb 20
jklagp 0:f9d7163fcbdb 21 int main()
jklagp 0:f9d7163fcbdb 22 {
jklagp 0:f9d7163fcbdb 23 sensor.rise(&contar);
jklagp 0:f9d7163fcbdb 24 velocidad.attach(&velo,0.01); //actualizar velocidad
jklagp 0:f9d7163fcbdb 25 flipper1.attach(&flip1,0.02); //multiplexado
jklagp 0:f9d7163fcbdb 26 operacion.attach(&rev,1);//operacion c/2seg
jklagp 0:f9d7163fcbdb 27 while (true){
jklagp 0:f9d7163fcbdb 28
jklagp 0:f9d7163fcbdb 29 }
jklagp 0:f9d7163fcbdb 30 }
jklagp 0:f9d7163fcbdb 31
jklagp 0:f9d7163fcbdb 32 void velo(void)
jklagp 0:f9d7163fcbdb 33 {
jklagp 0:f9d7163fcbdb 34 Motor.period(.02);
jklagp 0:f9d7163fcbdb 35 Motor.write(pot.read());
jklagp 0:f9d7163fcbdb 36 }
jklagp 0:f9d7163fcbdb 37 void rev(void)
jklagp 0:f9d7163fcbdb 38 {
jklagp 0:f9d7163fcbdb 39 revoluciones=vueltas*60;
jklagp 0:f9d7163fcbdb 40 vueltas=0;
jklagp 0:f9d7163fcbdb 41 digito[3]=revoluciones/1000;
jklagp 0:f9d7163fcbdb 42 digito[2]=(revoluciones-digito[3]*1000)/100;
jklagp 0:f9d7163fcbdb 43 digito[1]=(revoluciones-digito[3]*1000-digito[2]*100)/10;
jklagp 0:f9d7163fcbdb 44 digito[0]=(revoluciones-digito[3]*1000-digito[2]*100-digito[1]*10);
jklagp 0:f9d7163fcbdb 45
jklagp 0:f9d7163fcbdb 46 }
jklagp 0:f9d7163fcbdb 47
jklagp 0:f9d7163fcbdb 48 void contar(void)
jklagp 0:f9d7163fcbdb 49 {
jklagp 0:f9d7163fcbdb 50 vueltas++;
jklagp 0:f9d7163fcbdb 51 }
jklagp 0:f9d7163fcbdb 52
jklagp 0:f9d7163fcbdb 53 int imprimir (int digito)
jklagp 0:f9d7163fcbdb 54 {
jklagp 0:f9d7163fcbdb 55 if(digito==9)digito=digitos(nueve);
jklagp 0:f9d7163fcbdb 56 if(digito==8)digito=digitos(ocho);
jklagp 0:f9d7163fcbdb 57 if(digito==7)digito=digitos(siete);
jklagp 0:f9d7163fcbdb 58 if(digito==6)digito=digitos(seis);
jklagp 0:f9d7163fcbdb 59 if(digito==5)digito=digitos(cinco);
jklagp 0:f9d7163fcbdb 60 if(digito==4)digito=digitos(cuatro);
jklagp 0:f9d7163fcbdb 61 if(digito==3)digito=digitos(tres);
jklagp 0:f9d7163fcbdb 62 if(digito==2)digito=digitos(dos);
jklagp 0:f9d7163fcbdb 63 if(digito==1)digito=digitos(uno);
jklagp 0:f9d7163fcbdb 64 if(digito==0)digito=digitos(cero);
jklagp 0:f9d7163fcbdb 65
jklagp 0:f9d7163fcbdb 66 return digito;
jklagp 0:f9d7163fcbdb 67 }
jklagp 0:f9d7163fcbdb 68
jklagp 0:f9d7163fcbdb 69 void flip1() //funcion de multiplexado
jklagp 0:f9d7163fcbdb 70 {
jklagp 0:f9d7163fcbdb 71 segmentos=imprimir(digito[0]);
jklagp 0:f9d7163fcbdb 72 display=1;
jklagp 0:f9d7163fcbdb 73 wait(0.005);
jklagp 0:f9d7163fcbdb 74 segmentos=imprimir(digito[1]);
jklagp 0:f9d7163fcbdb 75 display=2;
jklagp 0:f9d7163fcbdb 76 wait(0.005);
jklagp 0:f9d7163fcbdb 77 segmentos=imprimir(digito[2]);
jklagp 0:f9d7163fcbdb 78 display=4;
jklagp 0:f9d7163fcbdb 79 wait(0.005);
jklagp 0:f9d7163fcbdb 80 segmentos=imprimir(digito[3]);
jklagp 0:f9d7163fcbdb 81 display=8;
jklagp 0:f9d7163fcbdb 82 }