Gu Jasper / Motor_200Nm_V0

Dependencies:   mbed-dev-f303 FastPWM3

Files at this revision

API Documentation at this revision

Comitter:
benkatz
Date:
Sat Dec 10 05:46:08 2016 +0000
Parent:
16:385dd470fa3f
Child:
18:f1d56f4acb39
Commit message:
Initial CAN Import;

Changed in this revision

CANnucleo.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CANnucleo.lib	Sat Dec 10 05:46:08 2016 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/hudakz/code/CANnucleo/#353237492903
--- a/main.cpp	Sat Dec 10 05:36:54 2016 +0000
+++ b/main.cpp	Sat Dec 10 05:46:08 2016 +0000
@@ -1,3 +1,15 @@
+const unsigned int BOARDNUM = 0x2;
+
+//const unsigned int a_id =                            
+
+const unsigned int TX_ID = 0x0100;
+    
+const unsigned int a_ID = (BOARDNUM<<8) + 0x7;
+const unsigned int b_ID = (BOARDNUM<<8) + 0x8;
+const unsigned int c_ID = (BOARDNUM<<8) + 0x9;
+
+
+#include "CANnucleo.h"
 #include "mbed.h"
 #include "PositionSensor.h"
 #include "Inverter.h"
@@ -8,9 +20,51 @@
 #include "TorqueController.h"
 #include "ImpedanceController.h"
 
+
 using namespace FastMath;
 using namespace Transforms;
 
+
+CANnucleo::CAN          can(PB_8, PB_9);  // CAN Rx pin name, CAN Tx pin name
+CANnucleo::CANMessage   rxMsg;
+CANnucleo::CANMessage   txMsg;
+int                     ledState;
+Timer                   timer;
+Ticker                  sendCAN;
+int                     counter = 0;
+volatile bool           msgAvailable = false;
+
+int a1, b1, c1;
+/**
+ * @brief   'CAN receive-complete' interrup handler.
+ * @note    Called on arrival of new CAN message.
+ *          Keep it as short as possible.
+ * @param   
+ * @retval  
+ */
+void onMsgReceived() {
+    msgAvailable = true;
+    //printf("ping\n\r");
+}
+
+
+void sendCMD(int TX_addr, int val){
+    txMsg.clear();      //clear Tx message storage
+    txMsg.id = TX_addr;
+    txMsg << val;
+    can.write(txMsg);
+    //wait(.1);
+    
+    }
+    
+void comLoop(void){
+    sendCMD(TX_ID, a1);
+    
+    printf("%d   %d   %d \n\r", a1, b1, c1);
+    //sendCMD(TX_ID+b_ID, b1);
+    //sendCMD(TX_ID+c_ID, c1);
+    }
+    
 int id[3] = {0};
 float cmd_float[3] = {0.0f};
 int raw[3] = {0};