Plz
Dependencies: mbed CANMsg Adafruit_LEDBackpack
Diff: main.cpp
- Revision:
- 6:be28839a8221
- Parent:
- 5:6283f93fa278
- Child:
- 7:060be032c57a
diff -r 6283f93fa278 -r be28839a8221 main.cpp --- a/main.cpp Fri Jul 26 11:53:44 2019 +0000 +++ b/main.cpp Fri Jul 26 13:32:21 2019 +0000 @@ -1,12 +1,13 @@ #include "mbed.h" #include "CANMsg.h" -//Ticker ticker; +Ticker ticker; +Timer timer; AnalogIn currentPot(p15); AnalogIn speedPot(p16); DigitalIn ignition(p21); DigitalIn regen(p22); -DigitalIn forward/reverse(p22); +DigitalIn forwardreverse(p22); DigitalIn brake(p22); DigitalIn accel(p22); DigitalIn enable(p5); @@ -19,6 +20,8 @@ const uint16_t SIGNAL_ID = 0x501; const uint16_t BUS_ID = 0x502; char counter = 0; +float curr_val = 0; +float speed_val = 0; Serial pc(USBTX, USBRX); // tx, rx CANMsg driverControls; @@ -63,8 +66,17 @@ */ //====================================================================== +void setDriverControls() +{ + driverControls.clear(); + driverControls.id = SIGNAL_ID; + driverControls << speed_val; + driverControls << curr_val; +} + void send() { + setDriverControls(); if(can1.write(driverControls)) { led1 = !led1; @@ -75,21 +87,22 @@ led2 = 1; wait(3); } + timer.stop(); } -unsigned int swap(unsigned int value) -{ - value = ((value & 0xFFFF0000) >> 16) | ((value & 0x0000FFFF) << 16); - value = ((value & 0xFF00FF00) >> 8) | ((value & 0x00FF00FF) << 8); +//unsigned int swap(unsigned int value) +//{ +// value = ((value & 0xFFFF0000) >> 16) | ((value & 0x0000FFFF) << 16); +// value = ((value & 0xFF00FF00) >> 8) | ((value & 0x00FF00FF) << 8); //value = ((value & 0xF0F0F0F0) >> 4) | ((value & 0x0F0F0F0F) << 4); //value = ((value & 0xCCCCCCCC) >> 2) | ((value & 0x33333333) << 2); //value = ((value & 0xAAAAAAAA) >> 1) | ((value & 0x55555555) << 1); - return value; -} +// return value; +//} int main() { - //ticker.attach(&send, 0.1); + ticker.attach(&send, 0.1); pc.baud(9600); can1.frequency(1000000); pc.printf("-------------------------------------\r\n"); @@ -105,16 +118,17 @@ driverControls.clear(); driverControls.id = SIGNAL_ID; // Append message with speed and current potentiometer s. - //float curr_val = currentPot.read(); - //float speed_val = speedPot.read(); - float curr_val = 50; - float speed_val = 1.0; - unsigned int *curr_as_int = (unsigned int *)&curr_val; - unsigned int *speed_as_int = (unsigned int *)&speed_val; + float curr_val = currentPot.read(); + float speed_val = speedPot.read(); + //float curr_val = 1.0; + //float speed_val = 50.0; + //float a = 1.0; + //unsigned int *curr_as_int = (unsigned int *)&curr_val; + //unsigned int *speed_as_int = (unsigned int *)&speed_val; //driverControls << swap(*curr_as_int); //driverControls << swap(*speed_as_int); + driverControls << speed_val; driverControls << curr_val; - driverControls << speed_val; busCurrent.clear(); busCurrent.id = BUS_ID; busCurrent << maxBusCurrent;