programma simulazione modulo sonoro

Dependencies:   mbed-rtos mbed

Committer:
Wonderjack996
Date:
Fri Jun 09 10:58:42 2017 +0000
Revision:
0:02e2cd02022c
programma simulazione modulo sonoro

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wonderjack996 0:02e2cd02022c 1 /*---programma per simulare uscita del sensore sonoro---*/
Wonderjack996 0:02e2cd02022c 2 /*il sensore sonoro si andra ad agganciare solo a una parte del suono della sirena,
Wonderjack996 0:02e2cd02022c 3 la porzione a frequenza 1kHez, quindi il programma ricevera segnali variabili come:
Wonderjack996 0:02e2cd02022c 4 SEQUENZA SEGNALI ALTI + SEQUENZA SEGNALI BASSI + SEQUENZA SEGNALI ALTI...
Wonderjack996 0:02e2cd02022c 5
Wonderjack996 0:02e2cd02022c 6 il programma simula questo tipo di uscita*/
Wonderjack996 0:02e2cd02022c 7
Wonderjack996 0:02e2cd02022c 8 /*utilizzando lo user button attivo e disattivo la sirena (led on sirena accesa, led off spenta)*/
Wonderjack996 0:02e2cd02022c 9
Wonderjack996 0:02e2cd02022c 10 #include "mbed.h"
Wonderjack996 0:02e2cd02022c 11 #include "rtos.h"
Wonderjack996 0:02e2cd02022c 12
Wonderjack996 0:02e2cd02022c 13 void check_sirena_thread();
Wonderjack996 0:02e2cd02022c 14
Wonderjack996 0:02e2cd02022c 15 DigitalOut myled(D8);
Wonderjack996 0:02e2cd02022c 16
Wonderjack996 0:02e2cd02022c 17 DigitalOut check(D11);
Wonderjack996 0:02e2cd02022c 18
Wonderjack996 0:02e2cd02022c 19 DigitalIn button1(USER_BUTTON);
Wonderjack996 0:02e2cd02022c 20
Wonderjack996 0:02e2cd02022c 21 bool button = true;
Wonderjack996 0:02e2cd02022c 22
Wonderjack996 0:02e2cd02022c 23 Serial pc(USBTX, USBRX); //istanzio oggetto per utilizzo monitor seriale
Wonderjack996 0:02e2cd02022c 24
Wonderjack996 0:02e2cd02022c 25 int main() {
Wonderjack996 0:02e2cd02022c 26
Wonderjack996 0:02e2cd02022c 27 int conta = 0, mod = 0;
Wonderjack996 0:02e2cd02022c 28
Wonderjack996 0:02e2cd02022c 29 Thread sirenaThread(check_sirena_thread); // start Thread controllo sirena
Wonderjack996 0:02e2cd02022c 30
Wonderjack996 0:02e2cd02022c 31 while(true) {
Wonderjack996 0:02e2cd02022c 32 while(button) {
Wonderjack996 0:02e2cd02022c 33 if( mod % 2 == 0 )
Wonderjack996 0:02e2cd02022c 34 myled = 1;
Wonderjack996 0:02e2cd02022c 35 else
Wonderjack996 0:02e2cd02022c 36 myled = 0;
Wonderjack996 0:02e2cd02022c 37 conta++;
Wonderjack996 0:02e2cd02022c 38 if( conta == 500 ){
Wonderjack996 0:02e2cd02022c 39 mod++;
Wonderjack996 0:02e2cd02022c 40 conta = 0;
Wonderjack996 0:02e2cd02022c 41 }
Wonderjack996 0:02e2cd02022c 42 wait_ms(1);
Wonderjack996 0:02e2cd02022c 43 }
Wonderjack996 0:02e2cd02022c 44 myled = 0;
Wonderjack996 0:02e2cd02022c 45 }
Wonderjack996 0:02e2cd02022c 46 }
Wonderjack996 0:02e2cd02022c 47
Wonderjack996 0:02e2cd02022c 48 void check_sirena_thread()
Wonderjack996 0:02e2cd02022c 49 {
Wonderjack996 0:02e2cd02022c 50 int val, conta2 = 0;
Wonderjack996 0:02e2cd02022c 51 while(true) {
Wonderjack996 0:02e2cd02022c 52 val = button1.read();
Wonderjack996 0:02e2cd02022c 53 if( val == 0 )
Wonderjack996 0:02e2cd02022c 54 conta2++;
Wonderjack996 0:02e2cd02022c 55 while(button1.read() == 0);
Wonderjack996 0:02e2cd02022c 56 //pc.printf("recived: %d \r\n",conta2); //stampa a video
Wonderjack996 0:02e2cd02022c 57 if( conta2 % 2 == 1 ){
Wonderjack996 0:02e2cd02022c 58 button = true;
Wonderjack996 0:02e2cd02022c 59 check = 1;
Wonderjack996 0:02e2cd02022c 60 }
Wonderjack996 0:02e2cd02022c 61 else{
Wonderjack996 0:02e2cd02022c 62 button = false;
Wonderjack996 0:02e2cd02022c 63 check = 0;
Wonderjack996 0:02e2cd02022c 64 }
Wonderjack996 0:02e2cd02022c 65 }
Wonderjack996 0:02e2cd02022c 66 }