extern void esmHighInterrupt(void);\r
extern void phantomInterrupt(void);\r
extern void vPreemptiveTick(void);\r
+extern void linHighLevelInterrupt(void);\r
extern void adc1Group1Interrupt(void);\r
extern void can1HighLevelInterrupt(void);\r
extern void can2HighLevelInterrupt(void);\r
uint8_t rxID = 0;
linEnableLoopback(linREG, Digital);
+ linEnableNotification(linREG, LIN_RX_INT|LIN_ID_INT);
linIDReceived = xSemaphoreCreateCounting(1, 0);
linMsgReceived = xSemaphoreCreateCounting(1, 0);
xSemaphoreTake(linMsgReceived, portMAX_DELAY);
linGetData(linREG, rxData);
uint8_t errCnt = 0;
- for (i = 0; i < 8; i++, txData++, rxData++) {
- if (*txData != *rxData) errCnt++;
+ uint8_t i;
+ for (i = 0; i < 8; i++) {
+ if (txData[i] != rxData[i]) errCnt++;
}
+
if (!errCnt) {
print((uint8_t *)"OK");
}
*\r
* Defined in commands.c */\r
extern xSemaphoreHandle adcDataConverted;\r
+\r
+\r
+extern xSemaphoreHandle linMsgReceived;\r
+extern xSemaphoreHandle linIDReceived;\r
+\r
/** @brief Data structure containing converted data from ADC\r
*\r
* Defined in commands.c */\r
/* enter user code and remove the while loop... */\r
while(1);\r
/* USER CODE BEGIN (23) */\r
+ if (flags & LIN_ID_INT) {\r
+ xSemaphoreGiveFromISR(linIDReceived, NULL);\r
+ }\r
+ if (flags & LIN_RX_INT) {\r
+ xSemaphoreGiveFromISR(linMsgReceived, NULL);\r
+ }\r
/* USER CODE END */\r
\r
}\r
&phantomInterrupt,\r
&phantomInterrupt,\r
&phantomInterrupt,\r
- &phantomInterrupt,\r
+ &linHighLevelInterrupt,\r
&phantomInterrupt,\r
&adc1Group1Interrupt,\r
&can1HighLevelInterrupt,\r
| (0U << 10U)\r
| (0U << 11U)\r
| (0U << 12U)\r
- | (0U << 13U)\r
+ | (1U << 13U)\r
| (0U << 14U)\r
| (1U << 15U)\r
| (1U << 16U)\r