Plz
Dependencies: mbed CANMsg Adafruit_LEDBackpack
main.cpp
- Committer:
- fconboy
- Date:
- 2019-07-24
- Revision:
- 1:6c993d149edc
- Parent:
- 0:db7d127e9819
- Child:
- 2:36e6eccdfc1e
File content as of revision 1:6c993d149edc:
#include "mbed.h" #include "CANMsg.h" Ticker ticker; AnalogIn currentPot(p15); AnalogIn speedPot(p16); DigitalIn enable(p5); DigitalOut led1(LED1); DigitalOut led2(LED2); CAN can1(p9, p10); //CAN can2(p30, p29); //const uint16_t MY_ID = 0x500; const uint16_t SIGNAL_ID = 0x501; const uint16_t BUS_ID = 0x502; char counter = 0; Serial pc(USBTX, USBRX); // tx, rx CANMsg driverControls; CANMsg busCurrent; //==================================================================== void printMsg(CANMessage& msg) { pc.printf("-------------------------------------\r\n"); pc.printf(" ID = 0x%.3x\r\n", msg.id); pc.printf(" Type = %d\r\n", msg.type); pc.printf(" Format = %d\r\n", msg.format); pc.printf(" Length = %d\r\n", msg.len); pc.printf(" Data ="); pc.printf("-------------------------------------\r\n"); for(int i = 0; i < msg.len; i++) pc.printf(" 0x%.2X", msg.data[i]); pc.printf("\r\n"); } //===================================================================== /* void onCanReceived(CANMessage& msg) { can1.read(msg); pc.printf("-------------------------------------\r\n"); pc.printf("CAN message received\r\n"); pc.printf("-------------------------------------\r\n"); printMsg(msg); if (msg.id == MY_ID) { // extract data from the received CAN message // in the same order as it was added on the transmitter side msg >> counter; msg >> voltage; pc.printf(" counter = %d\r\n", counter); pc.printf(" voltage = %e V\r\n", voltage); } timer.start(); // to transmit next message in main } */ //====================================================================== void send() { if(can1.write(driverControls)) { led1 = !led1; } else { led1 = 1; led2 = 1; wait(3); } } int main() { ticker.attach(&send, 0.1); pc.baud(9600); can1.frequency(1000000); pc.printf("-------------------------------------\r\n"); printf("Attempting to send a CAN message\n"); //float signalCurrent = currentPot.read(); //float signalSpeed = speedPot.read(); float maxBusCurrent = 1.0; printf("Current and Speed: %f and %f\n", currentPot.read(), speedPot.read()); pc.printf("-------------------------------------\r\n"); while(1) { //printf("Entering transmission main code)\n"); //pc.printf("-------------------------------------\r\n"); driverControls.clear(); driverControls.id = SIGNAL_ID; // Append message with speed and current potentiometer s. driverControls << currentPot.read(); driverControls << speedPot.read(); busCurrent.clear(); busCurrent.id = BUS_ID; busCurrent << maxBusCurrent; if(can1.write(busCurrent)) { led2 = !led2; } send(); } }