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.
Dependencies: mbed
Fork of Nucleo_radar_buz by
Diff: main.cpp
- Revision:
- 1:8558d2451e3e
- Parent:
- 0:d93aff6b153f
- Child:
- 2:97cbf2a5ec78
diff -r d93aff6b153f -r 8558d2451e3e main.cpp
--- a/main.cpp Wed Nov 25 14:08:15 2015 +0000
+++ b/main.cpp Wed Dec 02 12:43:30 2015 +0000
@@ -1,7 +1,6 @@
#include "mbed.h"
#include <string.h>
#include "HCSR04.h"
-//#include "rtos.h"
#define TRIG_1 PA_8
#define ECHO_1 PC_7
@@ -10,7 +9,7 @@
Serial carte(PA_9, PA_10); //emission --- tx, rx
HCSR04 sensor1(TRIG_1, ECHO_1);
-DigitalOut led1(LED1);
+DigitalOut buzz(PB_8);
int max (int a, int b) {
return (a<b)?b:a;
@@ -58,15 +57,6 @@
}
}
-/*
-void format(char *msg, char *msg_formated){
- char *STX = 2;
- char *ETX = 3;
- strcat(msg_formated, STX);
- strcat(msg_formated, msg);
- strcat(msg_formated, ETX);
-}
-*/
void send(char *data){
char trame[52]="";
@@ -74,32 +64,7 @@
USART1_puts(trame);
}
-/*
-void receive(char *frame){
- char trame[50]={0};
- int etat = 0;
- while(etat != 2){
- char r;
- if(carte.readable()){
- r = carte.getc();
- switch(etat){
- case 0 : if(r == 'S'){etat = 1;}
- break;
- case 1 : if(r != 'E'){strcat(trame,&r);}
- else { etat = 2; }
- break;
- default : break;
- }
- }
- }
- for(int i=0;i<50;i++){
- frame[i]=trame[i];
- }
-}
-*/
-
int receive(char *frame){
- int end = 0;
int I;
unsigned int sommeBuffer;
char r;
@@ -133,7 +98,6 @@
frame[0]=0;
return 1;
}
- break;
default :
frame[I]=r;
@@ -143,117 +107,79 @@
}
}
}
- return 1;
}
int controle(char *frame){
- if (*frame!=6)
- return 0;
- return 1;
-
+ if (*frame!=6) return 0;
+ else return 1;
}
-void tictac(){
- led1 = !led1;
+void buzz_pulse(){
+
}
-void bipContinu(){
- led1 = 1;
-}
-void bipOff(){
- led1 = 0;
+
+void startEmision(){
+
}
//Emission d'une trame, reception d'acquittement et vérification
int main() {
- Ticker tic;
- tic.attach(&bipOff, 0.1);
-
char trame[50];
int essai, error;
- int i=0;
int value;
- //int value[10] = {255, 200, 150, 100, 50, 40, 30, 20, 10, 5};
char message[4];
+ int i=0;
+ Timer time;
- int mem[2] = {-1, -1};
- int memFreq = 0;
- Timer timeout;
+ //int mem[2] = {-1, -1};
while(1){
- value=min(sensor1.distance(1),230);
- value=max(value,0);
+ time.reset();
+ time.start();
+ value=min(sensor1.distance(1),230);
+ value=max(value,0);
- if(mem[0]<0){
+ /*if(mem[0]<0){
+ mem[0]=value;
+ }else{
+ if(abs(mem[0]-value)<40){
+ mem[1]=mem[0];
mem[0]=value;
}else{
- if(abs(mem[0]-value)<40){
- mem[1]=mem[0];
- mem[0]=value;
- }else{
- value=mem[0];
- }
+ value=mem[0];
}
+ }*/
- int freq;
-
- if(value<=17){ //0
- freq=0;
- }else if(value>17 && value<=30){ //1
- freq=1;
- }else if(value>30 && value<=70){ //2
- freq=2;
- }else if(value>70 && value<=130){ //3
- freq=3;
- }else if(value>130 && value<=200){ //4
- freq=4;
- }else{ //5
- freq=5;
- }
+ message[0]=48+(value/100)%10;
+ message[1]=48+(value/10)%10;
+ message[2]=48+value%10;
+ message[3]=0;
- if(memFreq != freq){
- memFreq = freq;
- tic.detach();
-
- if(value<=17){ //0
- tic.attach(&bipContinu, 1);
- }else if(value>17 && value<=30){ //1
- tic.attach(&tictac, 0.05);
- }else if(value>30 && value<=70){ //2
- tic.attach(&tictac, 0.1);
- }else if(value>70 && value<=130){ //3
- tic.attach(&tictac, 0.2);
- }else if(value>130 && value<=200){ //4
- tic.attach(&tictac, 0.3);
- }else{ //5
- led1=0;
+ essai=0;
+ printf("%s\n\r",message);
+ send(message);
+
+ error=receive(trame);
+
+ while((controle(trame)==0 || error==1) && essai<3){
+ send(message);
+ error=receive(trame);
+ essai++;
+ }
+
+ if(essai<=3) {
+ while(time.read() <= 1){
+ for(i =0; i<=50;i++) {
+ buzz = 1;
+ wait_us(400);
+ buzz = 0;
+ wait_us(400);
}
-
+ wait_ms(value*5);
}
-
- message[0]=48+(value/100)%10;
- message[1]=48+(value/10)%10;
- message[2]=48+value%10;
- message[3]=0;
-
- essai=0;
- printf("%s\n\r",message);
- send(message);
-
- error=receive(trame);
-
-
- while((controle(trame)==0 || error==1) && essai<3){
- send(message);
- error=receive(trame);
- essai++;
- }
-
- if(essai==3) return 0;
-
- i=(i+1)%10;
- wait(1);
-
+ time.stop();
+ }
}
}
\ No newline at end of file
