diff options
| author | Bernard Xiong <[email protected]> | 2015-07-06 10:10:07 +0800 |
|---|---|---|
| committer | Bernard Xiong <[email protected]> | 2015-07-06 10:10:07 +0800 |
| commit | eb23f0def3cc28e675fd4e1e806f6563d0cc9cea (patch) | |
| tree | 8f242fabb74c334623b67ec97865e4e48cb5a216 /components/drivers | |
| parent | 1d488eaedfea24db84575adfc82ba1a3dcb8bebf (diff) | |
| parent | 95fe1d15ca1a3f37dec9db5cf02b1253943340a0 (diff) | |
Merge pull request #511 from AubrCool/fix-lpc4088candriver
Fix lpc4088candriver
Diffstat (limited to 'components/drivers')
| -rw-r--r-- | components/drivers/can/can.c | 23 | ||||
| -rw-r--r-- | components/drivers/include/drivers/can.h | 33 |
2 files changed, 29 insertions, 27 deletions
diff --git a/components/drivers/can/can.c b/components/drivers/can/can.c index c31523c1a0..fc0d74877f 100644 --- a/components/drivers/can/can.c +++ b/components/drivers/can/can.c @@ -607,11 +607,15 @@ static rt_err_t rt_can_control(struct rt_device *dev, */ static void cantimeout(void* arg) { + #ifdef RT_CAN_USING_LED rt_uint32_t ledonflag = 0; + #endif /*RT_CAN_USING_LED*/ rt_can_t can = (rt_can_t)arg; rt_device_control((rt_device_t)can,RT_CAN_CMD_GET_STATUS,(void* )&can->status); if(can->timerinitflag == 1) { - ledonflag = 1; + #ifdef RT_CAN_USING_LED + ledonflag = 1; + #endif /*RT_CAN_USING_LED*/ can->timerinitflag = 0xFF; } #ifdef RT_CAN_USING_LED @@ -713,17 +717,12 @@ rt_err_t rt_hw_can_register(struct rt_can_device *can, device->user_data = data; can->timerinitflag = 0; - if(can->config.rcvled != RT_NULL || - can->config.sndled != RT_NULL || - can->config.errled != RT_NULL) - { - rt_timer_init(&can->timer, - name, - cantimeout, - (void*)can, - can->config.ticks, - RT_TIMER_FLAG_PERIODIC); - } + rt_timer_init(&can->timer, + name, + cantimeout, + (void*)can, + can->config.ticks, + RT_TIMER_FLAG_PERIODIC); /* register a character device */ return rt_device_register(device, name, RT_DEVICE_FLAG_RDWR); } diff --git a/components/drivers/include/drivers/can.h b/components/drivers/include/drivers/can.h index 3a24162f03..a6c60cd28e 100644 --- a/components/drivers/include/drivers/can.h +++ b/components/drivers/include/drivers/can.h @@ -14,6 +14,8 @@ #ifndef CAN_H_ #define CAN_H_ +#include <rtthread.h> + #ifndef RT_CANMSG_BOX_SZ #define RT_CANMSG_BOX_SZ 16 #endif @@ -58,8 +60,10 @@ struct rt_can_filter_item rt_uint32_t mode :1; rt_uint32_t mask; rt_int32_t hdr; +#ifdef RT_CAN_USING_HDR rt_err_t (*ind)(rt_device_t dev, void* args ,rt_int32_t hdr, rt_size_t size); - void* args; + void* args; +#endif /*RT_CAN_USING_HDR*/ }; #ifdef RT_CAN_USING_HDR #define RT_CAN_FILTER_ITEM_INIT(id,ide,rtr,mode,mask,ind,args) \ @@ -86,7 +90,7 @@ struct rt_can_filter_item #define RT_CAN_EXT_RMT_DATA_FILTER_INIT(id,ind,args) \ RT_CAN_FILTER_ITEM_INIT(id,1,0,1,0xFFFFFFFF,ind,args) #else -#define RT_CAN_FILTER_ITEM_INIT(id,ide,rtr,mode,mask,args) \ +#define RT_CAN_FILTER_ITEM_INIT(id,ide,rtr,mode,mask) \ {\ id,\ ide,\ @@ -94,20 +98,19 @@ struct rt_can_filter_item mode,\ mask,\ -1,\ - args,\ } -#define RT_CAN_FILTER_STD_INIT(id,args) \ - RT_CAN_FILTER_ITEM_INIT(id,0,0,0,0xFFFFFFFF,args) -#define RT_CAN_FILTER_EXT_INIT(id,args) \ - RT_CAN_FILTER_ITEM_INIT(id,1,0,0,0xFFFFFFFF,args) -#define RT_CAN_STD_RMT_FILTER_INIT(id,args) \ - RT_CAN_FILTER_ITEM_INIT(id,0,1,0,0xFFFFFFFF,args) -#define RT_CAN_EXT_RMT_FILTER_INIT(id,args) \ - RT_CAN_FILTER_ITEM_INIT(id,1,1,0,0xFFFFFFFF,args) -#define RT_CAN_STD_RMT_DATA_FILTER_INIT(id,args) \ - RT_CAN_FILTER_ITEM_INIT(id,0,0,1,0xFFFFFFFF,args) -#define RT_CAN_EXT_RMT_DATA_FILTER_INIT(id,args) \ - RT_CAN_FILTER_ITEM_INIT(id,1,0,1,0xFFFFFFFF,args) +#define RT_CAN_FILTER_STD_INIT(id) \ + RT_CAN_FILTER_ITEM_INIT(id,0,0,0,0xFFFFFFFF) +#define RT_CAN_FILTER_EXT_INIT(id) \ + RT_CAN_FILTER_ITEM_INIT(id,1,0,0,0xFFFFFFFF) +#define RT_CAN_STD_RMT_FILTER_INIT(id) \ + RT_CAN_FILTER_ITEM_INIT(id,0,1,0,0xFFFFFFFF) +#define RT_CAN_EXT_RMT_FILTER_INIT(id) \ + RT_CAN_FILTER_ITEM_INIT(id,1,1,0,0xFFFFFFFF) +#define RT_CAN_STD_RMT_DATA_FILTER_INIT(id) \ + RT_CAN_FILTER_ITEM_INIT(id,0,0,1,0xFFFFFFFF) +#define RT_CAN_EXT_RMT_DATA_FILTER_INIT(id) \ + RT_CAN_FILTER_ITEM_INIT(id,1,0,1,0xFFFFFFFF) #endif struct rt_can_filter_config |
