Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
captUS.cpp
- Committer:
- Nanaud
- Date:
- 2020-10-25
- Revision:
- 21:e5f0f5abb5ae
- Parent:
- 20:7d206773f39e
- Child:
- 22:f891c2bce091
File content as of revision 21:e5f0f5abb5ae:
//Nom du fichier : captUS.cpp #include "pins.h" const float DISTLIM = 450; //160 // Variables globales & timers double us_high[6]={0}; double us_low[6]={0}; double us_diff[6]={0}; bool us_verif[6]={0}; double distt[6]; Timer tps; Ticker ticker_US; bool rebooted = 0; bool wtt = 0; //int sptt = 0; /* void captUS_init() { ::distance = new double(6); //équivalent au malloc() tps.reset(); tps.start(); } */ void captUS_trig() { convertToDistance(); if((objRecule[indice]==0) && (fnc == 2)) { if ((distt[5] >= DISTLIM) && (distt[0] >= DISTLIM) && (distt[1] >= DISTLIM)) { wtt = 1; } else { mot_dis(); rebooted = 1; wtt=0; } } else if((objRecule[indice]==1) && (fnc == 2)) { if ((distt[2] >= DISTLIM) && (distt[3] >= DISTLIM) && (distt[4] >= DISTLIM)) { wtt=1; } else { mot_dis(); rebooted = 1; wtt=0; } } /* pc.printf("US1 = %5.0lf uS\n\r", us_out[0]); pc.printf("US2 = %5.0lf uS\n\r", us_out[1]); //pc.printf("US3 = %5.0lf uS\n\r", us_out[2]); //pc.printf("US4 = %5.0lf uS\n\r", us_out[3]); //pc.printf("US5 = %5.0lf uS\n\r", us_out[4]); pc.printf("US6 = %5.0lf uS\n\r", us_out[5]); pc.printf("\n\r"); */ /* pc.printf("Dist1 = %5.0lf mm\n\r", ::distance[0]); pc.printf("Dist2 = %5.0lf mm\n\r", ::distance[1]); pc.printf("Dist3 = %5.0lf mm\n\r", ::distance[2]); pc.printf("Dist4 = %5.0lf mm\n\r", ::distance[3]); pc.printf("Dist5 = %5.0lf mm\n\r", ::distance[4]); pc.printf("Dist6 = %5.0lf mm\n\r", ::distance[5]); pc.printf("\n\r"); */ tps.reset(); trigger=1; wait(0.00002); trigger=0; } void echoRise1() { if(us_verif[0] == 0) { us_high[0]=tps.read_us(); us_verif[0] = 1; } } void echoFall1() { if(us_verif[0] == 1) { us_low[0]=tps.read_us(); us_diff[0]=us_low[0]-us_high[0]; us_verif[0] = 0; } } void echoRise2() { if(us_verif[1] == 0) { us_high[1]=tps.read_us(); us_verif[1] = 1; } } void echoFall2() { if(us_verif[1] == 1) { us_low[1]=tps.read_us(); us_diff[1]=us_low[1]-us_high[1]; us_verif[1] = 0; } } void echoRise3() { if(us_verif[2] == 0) { us_high[2]=tps.read_us(); us_verif[2] = 1; } } void echoFall3() { if(us_verif[2] == 1) { us_low[2]=tps.read_us(); us_diff[2]=us_low[2]-us_high[2]; us_verif[2] = 0; } } void echoRise4() { if(us_verif[3] == 0) { us_high[3]=tps.read_us(); us_verif[3] = 1; } } void echoFall4() { if(us_verif[3] == 1) { us_low[3]=tps.read_us(); us_diff[3]=us_low[3]-us_high[3]; us_verif[3] = 0; } } void echoRise5() { if(us_verif[4] == 0) { us_high[4]=tps.read_us(); us_verif[4] = 1; } } void echoFall5() { if(us_verif[4] == 1) { us_low[4]=tps.read_us(); us_diff[4]=us_low[4]-us_high[4]; us_verif[4] = 0; } } void echoRise6() { if(us_verif[5] == 0) { us_high[5]=tps.read_us(); us_verif[5] = 1; } } void echoFall6() { if(us_verif[5] == 1) { us_low[5]=tps.read_us(); us_diff[5]=us_low[5]-us_high[5]; us_verif[5] = 0; } } void convertToDistance() { /************************************** * Nous convertisons grâce au valeur * * qui sont retournées par echoRiseX * * et echoFallx * **************************************/ for(int i = 0; i<6; i++) { distt[i] = ((us_diff[i]*340)/1000); //conversion en distance(mm) } /**************************************** * nous retournons l'adresse du tableau * ****************************************/ //return ::distance; }