]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - embedded/app/usbcan/can/can.h
Embedded code and LinCAN driver now working
[lincan.git] / embedded / app / usbcan / can / can.h
index 38c68dda55c50e8ba9be2b9a14cab6209b65784b..4dacadf144fbc476661f1d54bd84c2d4bc0d4af8 100644 (file)
  */
 
  /*
-               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
@@ -54,17 +65,7 @@ struct can_baudparams_t {
 };
 
 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);
-
 #endif /* SJA1000_CAN_H */