Projet S5 Info - Beginner

Dependencies:   TextLCD XBeeLib mbed-rtos mbed

Fork of Coordinateur-Advanced by Vincent Belanger

Revision:
5:08245a3e93a8
Parent:
4:714484401021
Child:
6:59b0b6c1b5bb
diff -r 714484401021 -r 08245a3e93a8 main.cpp
--- a/main.cpp	Wed Apr 06 15:24:00 2016 +0000
+++ b/main.cpp	Wed Apr 06 16:12:53 2016 +0000
@@ -7,14 +7,11 @@
 using namespace XBeeLib;
 
 SDFileSystem sd(p5, p6, p7, p8, "sd"); // MOSI, MISO, SCLK, SSEL
-PwmOut speaker1(p21);
-PwmOut speaker2(p22);
-PwmOut speaker3(p23);
-PwmOut speaker4(p24);
-PwmOut speaker5(p25);
-PwmOut speaker6(p26);
+PwmOut speaker(p21);
+AnalogIn GP2D12(p16);
 //wave_player player(&DACout);
 Serial pc(USBTX, USBRX);
+int octaveMult=1;
 osThreadId threadIDC5;
 osThreadId threadIDG5;
 
@@ -24,14 +21,26 @@
 bool capt_4;
 bool capt_5;
 bool capt_6;
+    
+// 261.63 hz do
+// 293.66 Ré
+// 329.63 mi
+// 369.99 fa#
+// 415.30 sol#
+// 466.16 la#
+    
+const float DO =261.63;
+const float RE =261.63;
+const float MI =261.63;
+const float FA_SHARP =261.63;
+const float SOL_SHARP =261.63;
+const float LA_SHARP =261.63;
  
 /** Callback function, invoked at packet reception */
 static void receive_cb(const RemoteXBeeZB& remote, bool broadcast, const uint8_t *const data, uint16_t len)
 {
     const uint64_t remote_addr64 = remote.get_addr64();
  
-    pc.printf("\r\nGot packet, len %d\r\nData: ", len);
- 
     for (int i = 0; i < len; i++)
     {
         pc.printf("%02x ", data[i]);
@@ -53,20 +62,28 @@
 
     pc.printf("\r\n");
     
+    pc.printf("%f\r\n",GP2D12.read());
+    speaker=0.50f;
     if(capt_1){
-        speaker1=0.50f;
+        //speaker=0.50f;
+        speaker.period(1.0/(DO * octaveMult));
+    } else if(capt_2) {
+        //speaker=0.50f;
+        speaker.period(1.0/(RE * octaveMult));
+    } else if(capt_3) {
+        //speaker=0.50f;
+        speaker.period(1.0/(MI * octaveMult));
+    } else if(capt_4) {
+        //speaker=0.50f;
+        speaker.period(1.0/(FA_SHARP * octaveMult));
+    } else if(capt_5) {
+        //speaker=0.50f;
+        speaker.period(1.0/(SOL_SHARP * octaveMult));
+    } else if(capt_6) {
+        //speaker=0.50f;
+        speaker.period(1.0/(LA_SHARP * octaveMult));
     } else {
-        speaker1=0.0f;
-    }
-    if(capt_2){
-        speaker2=0.50f;
-    } else {
-        speaker2=0.0f;
-    }
-    if(capt_3){
-        speaker3=0.50f;
-    } else {
-        speaker3=0.0f;
+        speaker=0.0f;
     }
 }
 
@@ -83,7 +100,7 @@
     fclose(fp);
     */
 }
-
+/*
 void playC5(void const* args)
 {
     threadIDC5 = osThreadGetId();
@@ -115,19 +132,9 @@
         wait(1);
     }
 }
-
+*/
 int main()
 {
-    speaker3.period(1.0/2349.32); // 440hz period D3
-    speaker2.period(1.0/440.0); // 440hz period A3
-    speaker1.period(1.0/293.66); // 293.66hz period D
-    //speaker2.pulsewidth(2);  
-    //speaker1.pulsewidth(1); 
-    //Thread C5(playC5);
-    //C5.set_priority(osPriorityHigh);
-    //Thread G5(playG5);
-    //G5.set_priority(osPriorityHigh);
-
     XBeeZB xbee = XBeeZB(p13, p14, p8, NC, NC, 9600);
 
     /* Register callbacks */
@@ -146,6 +153,6 @@
  
     while (true) {
         xbee.process_rx_frames();
-        wait_ms(2000);
+        wait_ms(50);
     }
 }