Formula Student / Mbed 2 deprecated Canbus_test

Dependencies:   mbed

Revision:
0:d9f4fedf5253
Child:
1:12ddbe69b6e6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Nov 22 07:51:02 2017 +0000
@@ -0,0 +1,80 @@
+/*** Thread: CAN ***
+ * Test CAN Messages
+ *WERKT 25/10/2017
+ */
+#include "mbed.h"
+#include "CAN.h"
+ 
+/* CAN (RD TD) */
+CAN can(PA_11, PA_12);
+
+DigitalOut canEN(PA_10);
+/* Heartbeat */
+DigitalOut led(LED1);
+ 
+/* Structures to help pack and unpack the 8 CAN data bytes */
+typedef struct bytes_64 {
+    uint8_t b0;
+    uint8_t b1;
+    uint8_t b2;
+    uint8_t b3;
+    uint8_t b4;
+    uint8_t b5;
+    uint8_t b6;
+    uint8_t b7;
+} bytes_64;
+ 
+typedef union {
+    uint64_t data;
+    bytes_64 bytes;
+} data_packed;
+ 
+ 
+/* main */
+int main() {
+    
+    printf("\r\n---Start---\r\n");
+ 
+    data_packed send_data;      //struct for send message
+    data_packed receive_data;   //struct for rcv message
+    CANMessage msg;             //message object for rcv
+    int send_id = 15;           //send message id
+    int send_status = 0;
+    
+    canEN = 0;
+    /* Config Loopback and Frequency */
+    send_data.data = 0;
+    can.frequency(1000000);
+    //can.mode(CAN::LocalTest);
+ 
+    /* Loop */
+    while (true) {
+ 
+        /* Send */
+        send_status = can.write(CANMessage(send_id, (char*) &send_data, 8));
+ 
+        if (send_status == true) {
+            send_data.data = send_data.data + 1;
+        }
+ 
+        /* Receive */
+        if (can.read(msg)) {
+            //move message bytes to receive, so we can access as a uint64_t (u long long)
+            receive_data.bytes.b7 = msg.data[7];
+            receive_data.bytes.b6 = msg.data[6];
+            receive_data.bytes.b5 = msg.data[5];
+            receive_data.bytes.b4 = msg.data[4];
+            receive_data.bytes.b3 = msg.data[3];
+            receive_data.bytes.b2 = msg.data[2];
+            receive_data.bytes.b1 = msg.data[1];
+            receive_data.bytes.b0 = msg.data[0];
+ 
+            printf("Message received ID,Msg: %d, %llu\r\n", msg.id, receive_data.data);
+        }
+ 
+        /* Heartbeat */
+        led = !led;
+ 
+        wait(0.5);
+    } //while
+}
\ No newline at end of file