
hola
Dependencies: mbed
Diff: main.cpp
- 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