diff options
Diffstat (limited to 'drivers/sensors/adns9800.h')
| -rw-r--r-- | drivers/sensors/adns9800.h | 42 | 
1 files changed, 36 insertions, 6 deletions
| diff --git a/drivers/sensors/adns9800.h b/drivers/sensors/adns9800.h index d19ded4012..e75a869c03 100644 --- a/drivers/sensors/adns9800.h +++ b/drivers/sensors/adns9800.h @@ -18,18 +18,48 @@  #include <stdint.h> +#ifndef ADNS9800_CPI +#    define ADNS9800_CPI 1600 +#endif + +#ifndef ADNS9800_CLOCK_SPEED +#    define ADNS9800_CLOCK_SPEED 2000000 +#endif + +#ifndef ADNS9800_SPI_LSBFIRST +#    define ADNS9800_SPI_LSBFIRST false +#endif + +#ifndef ADNS9800_SPI_MODE +#    define ADNS9800_SPI_MODE 3 +#endif + +#ifndef ADNS9800_SPI_DIVISOR +#    ifdef __AVR__ +#        define ADNS9800_SPI_DIVISOR (F_CPU / ADNS9800_CLOCK_SPEED) +#    else +#        define ADNS9800_SPI_DIVISOR 64 +#    endif +#endif + +#ifndef ADNS9800_CS_PIN +#    error "No chip select pin defined -- missing ADNS9800_CS_PIN" +#endif +  typedef struct {      /* 200 - 8200 CPI supported */      uint16_t cpi; -} config_adns_t; +} config_adns9800_t;  typedef struct {      int16_t x;      int16_t y; -} report_adns_t; +} report_adns9800_t; -void          adns_init(void); -config_adns_t adns_get_config(void); -void          adns_set_config(config_adns_t); +void              adns9800_init(void); +config_adns9800_t adns9800_get_config(void); +void              adns9800_set_config(config_adns9800_t); +uint16_t          adns9800_get_cpi(void); +void              adns9800_set_cpi(uint16_t cpi);  /* Reads and clears the current delta values on the ADNS sensor */ -report_adns_t adns_get_report(void); +report_adns9800_t adns9800_get_report(void); | 
