
A program to read steering angle and wheel speed off CAN bus and to perform PID control
main.cpp
- Committer:
- samh25
- Date:
- 2022-06-28
- Revision:
- 1:6839bcd71b6a
- Parent:
- 0:190a2fe3cf0f
File content as of revision 1:6839bcd71b6a:
// TBReAI AI-MBED // WRITTEN BY SEB HALL ON 29/06/2022 #include "mbed.h" const PinName writePin = p29; const PinName readPin = p30; const int busFrequency = 500000; const unsigned steeringMessageID = 0x100; Serial pc(USBTX, USBRX); DigitalOut led1(LED1); DigitalOut led2(LED2); union { double formattedData; char rawData[8]; } CANFormatted; CAN CANBus(readPin, writePin, busFrequency); void readCANMessage() { led2 = 1; CANMessage message; CANBus.read(message); for (int i = 0; i < 8; i++) { CANFormatted.rawData[i] = message.data[i]; } led2 = 0; } void sendCANMessage(double data, unsigned id) { CANMessage message; CANFormatted.formattedData = data; for (int i = 0; i < 8; i++) { message.data[i] = CANFormatted.rawData[i]; } message.id = id; CANBus.write(message); } int main() { pc.printf("STARTED\n"); led1 = !led1; CANBus.attach(callback(readCANMessage)); }