Accordeur
/
accordeurguit
programme accordeur guitare valide
fonctions.cpp
- Committer:
- achille
- Date:
- 2019-06-05
- Revision:
- 0:608629a8a61c
- Child:
- 1:3f5287e5fa3c
File content as of revision 0:608629a8a61c:
#include"fonctions.h" void led_set(int flagV, int flagR1,int flagR2) { DigitalOut ledV(D13); DigitalOut ledR1(D12); DigitalOut ledR2(D11); if(flagV) { ledV=1; } else { ledV=0; } if(flagR1) { ledR1=1; } else { ledR1.write(0); } if(flagR2) { ledR2=1; } else { ledR2=0; } } void recup(volatile donnees *t, float time, int i){ AnalogIn mic(A5); float v = mic.read(); t[i].T=time; t[i].V=v; } float moy(volatile donnees *t){ float moy=0; for(int i=0;i<REC;i++){ moy += t[i].V; } moy = moy/REC; return moy; } float period(volatile donnees *t, float mo){ int flagh=0,i=0; float t1,t2; if(t[i].V> mo ){ flagh=1; while(flagh==1){ if(t[i].V<mo){ flagh=0; } else{ i++; } } } while(flagh==0){ if(t[i].V>mo){ flagh=1; } else{ i++; } } t1=t[i].T; while(flagh==1){ if(t[i].V<mo){ flagh=0; } else{ i++; } } while(flagh==0){ if(t[i].V>mo){ flagh=1; } else{ i++; } } t2=t[i].T; return t2-t1; } void affichage(float fIn,float +fV, int *flagV, int *flagR1, int *flagR2){ *flagV=0; *flagR1=0; *flagR2=0; if(fV-4<fIn && fIn<fV+4){ *flagV=1; } else{ if(fV-1>fIn){ *flagR2=1; } else{ if(fIn>fV+1){ *flagR1=1; } } } } float frequ(float fIn){ DigitalOut MI1(D10); DigitalOut LA(D9); DigitalOut RE(D8); DigitalOut SOL(D7); DigitalOut SI(D6); DigitalOut MI2(D5); MI1=0; LA=0; RE=0; SOL=0; SI=0; MI2=0; if(fIn<96.2){ MI1=1; return 82.4; } if(fIn>96.2 && fIn<128.4){ LA=1; return 110; } if(fIn>128.4 && fIn<171.4){ RE=1; return 146.8; } if(fIn>171.4 && fIn<221.45){ SOL=1; return 196; } if(fIn>221.45 && fIn<288.25){ SI=1; return 246.9; } if(fIn>288.25){ MI2=1 return 329.6; } else{ MI1=1; LA=1; RE=1; SOL=1; SI=1; MI2=1; return 0; } }