Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
SX1509.h
00001 #ifndef SX1509_H 00002 #define SX1509_H 00003 00004 #include "mbed.h" 00005 00006 // DEFINES - SX1509 Configuration 00007 // ==================================================== 00008 #define SX1509_FREQUENCY 400000 00009 #define SX1509_ADDR (0x3E<<1) 00010 00011 // DEFINES - Register Addresses 00012 // ==================================================== 00013 #define REGINPUTDISABLEB (0x00) 00014 #define REGINPUTDISABLEA (0x01) 00015 #define REGLONGSLEWB (0x02) 00016 #define REGLONGSLEWA (0x03) 00017 #define REGLOWDRIVEB (0x04) 00018 #define REGLOWDRIVEA (0x05) 00019 #define REGPULLUPB (0x06) 00020 #define REGPULLUPA (0x07) 00021 #define REGPULLDOWNB (0x08) 00022 #define REGPULLDOWNA (0x09) 00023 #define REGOPENDRAINB (0x0A) 00024 #define REGOPENDRAINA (0x0B) 00025 #define REGPOLARITYB (0x0C) 00026 #define REGPOLARITYA (0x0D) 00027 #define REGDIRB (0x0E) 00028 #define REGDIRA (0x0F) 00029 #define REGDATAB (0x10) 00030 #define REGDATAA (0x11) 00031 #define REGINTERRUPTMASKB (0x12) 00032 #define REGINTERRUPTMASKA (0x13) 00033 #define REGSENSEHIGHB (0x14) 00034 #define REGSENSELOWB (0x15) 00035 #define REGSENSEHIGHA (0x16) 00036 #define REGSENSELOWA (0x17) 00037 #define REGINTERRUPTSOURCEB (0x18) 00038 #define REGINTERRUPTSOURCEA (0x19) 00039 #define REGEVENTSTATUSB (0x1A) 00040 #define REGEVENTSTATUSA (0x1B) 00041 #define REGLEVELSHIFTER1 (0x1C) 00042 #define REGLEVELSHIFTER2 (0x1D) 00043 #define REGCLOCK (0x1E) 00044 #define REGMISC (0x1F) 00045 #define REGLEDDRIVERENABLEB (0x20) 00046 #define REGLEDDRIVERENABLEA (0x21) 00047 // Debounce 00048 #define REGDEBOUNCECONFIG (0x22) 00049 #define REGDEBOUNCEENABLEB (0x23) 00050 #define REGDEBOUNCEENABLEA (0x24) 00051 #define REGKEYCONFIG1 (0x25) 00052 #define REGKEYCONFIG2 (0x26) 00053 #define REGKEYDATA1 (0x27) 00054 #define REGKEYDATA2 (0x28) 00055 // LED Driver 00056 #define REGTON0 (0x29) 00057 #define REGION0 (0x2A) 00058 #define REGOFF0 (0x2B) 00059 #define REGTON1 (0x2C) 00060 #define REGION1 (0x2D) 00061 #define REGOFF1 (0x2E) 00062 #define REGTON2 (0x2F) 00063 #define REGION2 (0x30) 00064 #define REGOFF2 (0x31) 00065 #define REGTON3 (0x32) 00066 #define REGION3 (0x33) 00067 #define REGOFF3 (0x34) 00068 #define REGTON4 (0x35) 00069 #define REGION4 (0x36) 00070 #define REGOFF4 (0x37) 00071 #define REGTRISE4 (0x38) 00072 #define REGTFALL4 (0x39) 00073 #define REGTON5 (0x3A) 00074 #define REGION5 (0x3B) 00075 #define REGOFF5 (0x3C) 00076 #define REGTRISE5 (0x3D) 00077 #define REGTFALL5 (0x3E) 00078 #define REGTON6 (0x3F) 00079 #define REGION6 (0x40) 00080 #define REGOFF6 (0x41) 00081 #define REGTRISE6 (0x42) 00082 #define REGTFALL6 (0x43) 00083 #define REGTON7 (0x44) 00084 #define REGION7 (0x45) 00085 #define REGOFF7 (0x46) 00086 #define REGTRISE7 (0x47) 00087 #define REGTFALL7 (0x48) 00088 #define REGTON8 (0x49) 00089 #define REGION8 (0x4A) 00090 #define REGOFF8 (0x4B) 00091 #define REGTON9 (0x4C) 00092 #define REGION9 (0x4D) 00093 #define REGOFF9 (0x4E) 00094 #define REGTON10 (0x4F) 00095 #define REGION10 (0x50) 00096 #define REGOFF10 (0x51) 00097 #define REGTON11 (0x52) 00098 #define REGION11 (0x53) 00099 #define REGOFF11 (0x54) 00100 #define REGTON12 (0x55) 00101 #define REGION12 (0x56) 00102 #define REGOFF12 (0x57) 00103 #define REGTRISE12 (0x58) 00104 #define REGTFALL12 (0x59) 00105 #define REGTON13 (0x5A) 00106 #define REGION13 (0x5B) 00107 #define REGOFF13 (0x5C) 00108 #define REGTRISE13 (0x5D) 00109 #define REGTFALL13 (0x5E) 00110 #define REGTON14 (0x5F) 00111 #define REGION14 (0x60) 00112 #define REGOFF14 (0x61) 00113 #define REGTRISE14 (0x62) 00114 #define REGTFALL14 (0x63) 00115 #define REGTON15 (0x64) 00116 #define REGION15 (0x65) 00117 #define REGOFF15 (0x66) 00118 #define REGTRISE15 (0x67) 00119 #define REGTFALL15 (0x68) 00120 // Misc 00121 #define REGHIGHINPUTB (0x69) 00122 #define REGHIGHINPUTA (0x6A) 00123 // Software Reset 00124 #define REGRESET (0x7D) 00125 // Test Registers (do not write) 00126 #define REGTEST1 (0x7E) 00127 #define REGTEST2 (0x7F) 00128 00129 #define LINEAR 0 00130 #define LOG 1 00131 00132 class SX1509{ 00133 private: 00134 I2C i2c; 00135 uint8_t div_g; 00136 00137 void i2cWrite8(char reg, char data); 00138 uint8_t i2cRead8(char reg); 00139 uint16_t i2cRead16(char reg); 00140 00141 public: 00142 SX1509(PinName sda, PinName scl); 00143 00144 enum mode_t {INPUT, OUTPUT, LED}; 00145 00146 bool init(); 00147 void enableLEDDriver(); 00148 void enableLEDDriver(uint8_t div, bool mode); 00149 void setLEDMode(bool mode); 00150 void setMode(uint8_t pin, mode_t mode); 00151 void setBreath(uint8_t pin, uint8_t fadeIn, uint8_t fadeOut); 00152 void setBlink(uint8_t pin, uint8_t tOn, uint8_t tOff, uint8_t iOff); 00153 void writePin(uint8_t pin, uint8_t intensity); 00154 void setReset(); 00155 void fullReset(); 00156 }; 00157 00158 00159 #endif
Generated on Sat Jul 16 2022 02:19:27 by
1.7.2