
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
/*
* Can_Driver.h
*
* Created on: 2021. 8. 3.
* Author: Kim-JeongWoo
*/
#ifndef MAIN_RESOURCE_CAN_DRIVER_H_
#define MAIN_RESOURCE_CAN_DRIVER_H_
#ifdef __cplusplus
extern "C" {
#endif
struct sCanData32bit
{
uint32_t Low;
uint32_t High;
};
struct sCanData16bit
{
uint16_t Word[4];
};
struct sCanData8bit
{
uint64_t Byte0 :8;
uint64_t Byte1 :8;
uint64_t Byte2 :8;
uint64_t Byte3 :8;
uint64_t Byte4 :8;
uint64_t Byte5 :8;
uint64_t Byte6 :8;
uint64_t Byte7 :8;
};
union uCANDATA_TYPE
{
uint64_t all;
struct sCanData16bit U16;
struct sCanData32bit U32;
struct sCanData8bit U8;
};
struct sCANRXDATA
{
unsigned int Id;
CAN_MsgFrameType *frameType;
uint16_t Data[8];
};
struct sCanMsg
{
union uCANDATA_TYPE Data; //Data
uint32_t Id; //Id ext 모드일 경우 최대 29bit
CAN_MsgFrameType *frameType; //Std or Ext
uint16_t Lenth; //Lenth
uint16_t Cnt; //Lenth
};
#define CANCHADEMO_RX_MBOX_START 1
#define CANCHADEMO_RX_MBOX_END 31
//#define CANME_RX_MBOX_START 1
//#define CANME_RX_MBOX_END 31
#pragma SET_DATA_SECTION(".CanLib")
extern unsigned int TerminalResSet;
extern sCanMsg CanaRxMbox[32];
extern sCanMsg CanaTxMbox;
//extern sCanMsg CanaTxMbox2;
//extern sCanMsg CanbRxMbox[32];
//extern sCanMsg CanbTxMbox;
extern int FlagCanReset;
#pragma SET_DATA_SECTION()
extern void CanErrorReset();
extern void InitCan();
#pragma SET_CODE_SECTION(".TI.ramfunc")
extern void CanTxMsg(uint32_t base, uint32_t objID, sCanMsg *Msg);
extern bool CanRxMsg(uint32_t base, uint32_t objID, sCanMsg *Msg);
#pragma SET_CODE_SECTION()
#ifdef __cplusplus
}
#endif /* extern "C" */
#endif /* MAIN_RESOURCE_CAN_DRIVER_H_ */