hola

Dependencies:   mbed

Revision:
0:f9d7163fcbdb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Jan 19 22:55:34 2015 +0000
@@ -0,0 +1,82 @@
+#include "mbed.h"
+
+BusOut segmentos(D2,D3,D4,D10,D13,D12,D11,D9);
+BusOut display(D5,D6,D7,D15);
+enum digitos {cero=63,uno=6,dos=91,tres=79,cuatro=102,cinco=109,seis=125,siete=7,ocho=127,nueve=103,ceror=63};
+int incrementar (int);
+Ticker flipper1,operacion,velocidad;
+unsigned short digito[4];  
+int revoluciones,vueltas; 
+InterruptIn sensor(D14);
+AnalogIn pot(PTB2);
+PwmOut Motor(PTC10);
+
+void flip1(void);
+void imprimir(void);
+void rev(void);
+void contar(void);
+void velo(void);
+
+
+int main()
+{
+    sensor.rise(&contar);
+    velocidad.attach(&velo,0.01); //actualizar velocidad
+    flipper1.attach(&flip1,0.02); //multiplexado
+    operacion.attach(&rev,1);//operacion c/2seg
+    while (true){
+    
+    }
+}
+
+void velo(void)
+{
+    Motor.period(.02);
+    Motor.write(pot.read());
+}
+void rev(void)
+{
+    revoluciones=vueltas*60;
+    vueltas=0;
+    digito[3]=revoluciones/1000;
+    digito[2]=(revoluciones-digito[3]*1000)/100;
+    digito[1]=(revoluciones-digito[3]*1000-digito[2]*100)/10;
+    digito[0]=(revoluciones-digito[3]*1000-digito[2]*100-digito[1]*10);
+    
+}
+
+void contar(void)
+{
+    vueltas++;
+}
+
+int imprimir (int digito)
+{
+    if(digito==9)digito=digitos(nueve);
+    if(digito==8)digito=digitos(ocho);
+    if(digito==7)digito=digitos(siete);
+    if(digito==6)digito=digitos(seis);
+    if(digito==5)digito=digitos(cinco);
+    if(digito==4)digito=digitos(cuatro);
+    if(digito==3)digito=digitos(tres);
+    if(digito==2)digito=digitos(dos);
+    if(digito==1)digito=digitos(uno);
+    if(digito==0)digito=digitos(cero);
+    
+    return digito;
+}
+
+void flip1() //funcion de multiplexado
+{
+    segmentos=imprimir(digito[0]);
+    display=1;
+    wait(0.005);
+    segmentos=imprimir(digito[1]);
+    display=2;
+    wait(0.005);
+    segmentos=imprimir(digito[2]);
+    display=4;
+    wait(0.005);
+    segmentos=imprimir(digito[3]);
+    display=8;
+}
\ No newline at end of file