#ifndef DS1803_H #define DS1803_H #include #include "../configs/ds1803/ds1803.h" #ifdef DS1803_A0 #define DS1803_A0 0 #endif #ifdef DS1803_A1 #define DS1803_A1 0 #endif #ifdef DS1803_A2 #define DS1803_A2 0 #endif #define DS1803_BASE_ADDR B00101000 #define DS1803_ADDR DS1803_BASE_ADDR | (DS1803_A0 * B00000001) | (DS1803_A1 * B00000010) | (DS1803_A2 * B00000100) /** * The number of available potentiometer wipers **/ #define DS1803_NBR_WIPERS 0x02 /** * Digital pot selection commands **/ #define DS1803_WIPERS B10101111 #define DS1803_WIPER_0 B10101001 #define DS1803_WIPER_1 B10101010 /** * Macros **/ #define setWiper1(value) setWiper(value, DS1803_WIPER_0) #define setWiper2(value) setWiper(value, DS1803_WIPER_1) #define setWipers(value) setWiper(value, DS1803_WIPERS) /** * DS1803 I2C Dual Digital Pot. **/ class DS1803 { public: DS1803(); void setWiper(uint8_t, uint8_t); #ifdef DS1803_USE_GET_VALUE_FUNC uint8_t getValue(); #endif }; /** * Define the object's name **/ extern DS1803 DPOT; #endif