Rev 819 | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed
#include <inttypes.h>#include <avr/interrupt.h>#include <stdio.h>#include <string.h>#include <drivers/can/stdcan.h>#include <config.h> // All configuration parameters#include <bios.h> // BIOS interface declarations, including CAN structure and ID defines.#include <drivers/timer/timer.h>%INCLUDEint main(void){StdCan_Msg_t rxMsg; // Message storage// Enable interrupts as early as possiblesei();Timer_Init();StdCan_Init();Timer_SetTimeout(APP_HEARTBEAT_TIMER, STDCAN_HEARTBEAT_PERIOD, TimerTypeFreeRunning, StdCan_SendHeartbeat);%INITwhile (1){%PROCESSif (StdCan_Get(&rxMsg) == StdCan_Ret_OK){if ( StdCan_Ret_class(rxMsg.Header) == CAN_CLASS_MODULE_NMT &&StdCan_Ret_direction(rxMsg.Header) == DIR_TO_OWNER &&rxMsg.Header.Command == CAN_CMD_MODULE_NMT_LIST &&rxMsg.Data[0] == NODE_HW_ID_BYTE0 &&rxMsg.Data[1] == NODE_HW_ID_BYTE1 &&rxMsg.Data[2] == NODE_HW_ID_BYTE2 &&rxMsg.Data[3] == NODE_HW_ID_BYTE3){%LIST}else{%HANDLEMSG}}}return 0;}