15 #define PRINT_PERIOD 1000 // period for status output 16 #define LIN_PERIOD 10 // LIN frame every N ms 22 void printStatus(
void);
32 pinMode(PIN_TOGGLE, OUTPUT);
35 Serial.begin(115200);
while(!Serial);
42 Tasks_Add((Task) LIN_scheduler, LIN_PERIOD, 0);
43 Tasks_Add((Task) printStatus, PRINT_PERIOD, PRINT_PERIOD);
53 digitalWrite(PIN_TOGGLE, !digitalRead(PIN_TOGGLE));
60 void LIN_scheduler(
void)
62 static uint8_t count = 0;
102 void printStatus(
void)
105 Serial.print(millis()); Serial.println(
"ms");
110 for (uint8_t i=0; i<8; i++)
112 Serial.print(i); Serial.print(
"\t0x"); Serial.println(Rx[i], HEX);
118 Serial.print(
"LIN error (0x");
122 Serial.println(
"statemachine");
124 Serial.println(
"echo");
126 Serial.println(
"timeout");
128 Serial.println(
"checksum");
130 Serial.println(
"misc");
bool flagRxComplete
flag to indicate that data reception is complete. Must be cleared manually
void begin(uint16_t Baudrate, LIN_version_t Version, bool Background)
setup UART and LIN framework
LIN master emulation library for Serial3.
error in LIN state machine
misc error, should not occur
LIN_error_t receiveSlaveResponse(uint8_t id, uint8_t numData, void(*Rx_handler)(uint8_t, uint8_t *))
receive a slave response frame with callback function
LIN_error_t error
error state. Is latched until cleared
LIN_error_t sendMasterRequest(uint8_t id, uint8_t numData, uint8_t *data)
send a master request frame
LIN_Master_3 LIN_master3
instance of LIN master via Serial3