Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed-dev-f303 FastPWM3
Revision 17:3c5df2982199, committed 2016-12-10
- 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};