*/
/*
- NOP count for synchronizing with peripheral (SJA1000)
+ Delay for synchronization with peripheral (SJA1000)
*/
- #define SJA1000_CLK (24000000) /* XTAL frequency */
- #define SJA1000_PRESC (2) /* embedded prescaler */
- #define SJA1000_CCLK (SJA1000_CLK/SJA1000_PRESC) /* SJA core frequency */
- #define SJA1000_SCLK (PCLK/SJA1000_CCLK) /* Clock count to synchronize with LPC */
+ #define SJA1000_CLK (24000000) /* XTAL frequency */
+ #define SJA1000_PRESC (2) /* embedded prescaler */
+ #define SJA1000_CCLK (SJA1000_CLK/SJA1000_PRESC) /* SJA core frequency */
+ #define SJA1000_SCLK (PCLK/SJA1000_CCLK) /* Clock count to synchronize with LPC */
- volatile int slowdown;
+ #define SJA1000_DELAY(void) \
+ ({ \
+ volatile int delay; \
+ for (delay=0;delay<SJA1000_SCLK;delay++) \
+ IO0SET=0; \
+ })
+ #define SJA1000_INIT_DELAY(void) \
+ ({ \
+ volatile int delay; \
+ for (delay=0;delay<20*SJA1000_SCLK;delay++) \
+ IO0SET=0; \
+ })
/**
* struct can_baudparams_t - datatype for calling CONF_BAUDPARAMS IOCTL
};
extern int can_init();
-extern int can_autobaud(int tries);
-extern int can_read(uint8_t address,uint8_t *data);
-extern int can_write(uint8_t address,uint8_t *data);
-
-extern int can_set_mask(int dual_mask,int count,uint8_t *mask,uint8_t *accept);
-
-extern int can_poll();
-extern int can_transmit_direct(uint8_t *data);
-//int can_transmit(char ext_header,char rtr,int mask_size,uint8_t *mask,int numbytes,uint8_t *data);
-extern int can_transmit(int ext_header,int rtr,uint8_t *mask,int numbytes,uint8_t *data);
-//int can_receive(uint8_t *data);
-extern int can_receive(uint8_t len,uint8_t *data);
+extern uint8_t can_read(uint8_t address);
+extern void can_write(uint8_t data, uint8_t address);
#endif /* SJA1000_CAN_H */