TP3 - Réseau terrain de supervision : CAN

Dependencies:   mbed-rtos mbed

Revision:
2:468ee5a130a1
Parent:
0:04e1f0fec163
diff -r cea4d0ca6095 -r 468ee5a130a1 test_main.cpp
--- a/test_main.cpp	Tue May 23 06:59:12 2017 +0000
+++ b/test_main.cpp	Tue May 23 08:09:24 2017 +0000
@@ -2,21 +2,93 @@
 
 
 #define LA_440      2273
+
 DigitalOut myled(LED1);
 
+PwmOut Speaker(p21); 
+
+ 
+CAN CanPort(p30, p29);
+ 
+CANMessage  MessageRx; 
+CANMessage  MessageTx;
+
+
+unsigned int    Id;
+
+
+
+void canReader(void)
+{ 
+printf("Coucou\n");
+    if (CanPort.read(MessageRx))
+    {
+            myled = !myled;
+            if ( MessageRx.id == 0x111)
+            {
+                switch (MessageRx.data[0]){
+                case 0x01 :
+                    Speaker.write(0.2);    
+                    wait(0.1);
+                    Speaker.write(0.2);    
+                    wait(0.1); 
+                    break;
+                     
+                case 0x11 :
+                    Speaker.write(1);    
+                    wait(0.1); 
+                    break;
+                    
+                default :
+                    Speaker.write(0.1);    
+                    wait(0.1);
+                    Speaker.write(0.1);    
+                    wait(0.1); 
+                    Speaker.write(0.1);    
+                    wait(0.1); 
+                    Speaker.write(0.1);    
+                    wait(0.1); 
+                    Speaker.write(0.1);    
+                    wait(0.1); 
+                    Speaker.write(0.1);    
+                    wait(0.1); 
+                
+                }
+                myled = !myled;
+            }    
+    } 
+} 
+ 
+ 
 
 
 int main() 
 {
-PwmOut Speaker(p21);  
+
+
+    CanPort.frequency(20000);
+    
+    MessageRx.len=1;
+
+    //MessageTx.format = CANStandard;
+    //MessageTx.format = CANExtended;
+    
+    //MessageTx.type = CANData;
+    //MessageTx.type = CANRemote;
+    
+    CanPort.attach(canReader,CAN::RxIrq);
+        
+    //threadA.start(thA);
+    //threadB.start(thB);
+    
+    myled = 0;
+    printf("Start OK\n");
+
 Speaker.period_us(LA_440);  
 Speaker.write(0);
 
     while(1) 
     {
-    Speaker.write(0);    
-    wait(1);
-    Speaker.write(0.5);    
-    wait(0.3);
+      
     }
 }