AKM AK9753 IR Sensor IC with I2C I/F
AK9753.cpp@0:2eb87b5feaab, 2017-12-27 (annotated)
- Committer:
- Rhyme
- Date:
- Wed Dec 27 08:29:16 2017 +0000
- Revision:
- 0:2eb87b5feaab
first working version, no documents yet
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Rhyme | 0:2eb87b5feaab | 1 | #include "mbed.h" |
Rhyme | 0:2eb87b5feaab | 2 | #include "AK9753.h" |
Rhyme | 0:2eb87b5feaab | 3 | |
Rhyme | 0:2eb87b5feaab | 4 | #define REG_WIA1 0x00 |
Rhyme | 0:2eb87b5feaab | 5 | #define REG_WIA2 0x01 |
Rhyme | 0:2eb87b5feaab | 6 | #define REG_INFO1 0x02 |
Rhyme | 0:2eb87b5feaab | 7 | #define REG_INFO2 0x03 |
Rhyme | 0:2eb87b5feaab | 8 | #define REG_INTST 0x04 |
Rhyme | 0:2eb87b5feaab | 9 | #define REG_ST1 0x05 |
Rhyme | 0:2eb87b5feaab | 10 | #define REG_IR1L 0x06 |
Rhyme | 0:2eb87b5feaab | 11 | #define REG_IR1H 0x07 |
Rhyme | 0:2eb87b5feaab | 12 | #define REG_IR2L 0x08 |
Rhyme | 0:2eb87b5feaab | 13 | #define REG_IR2H 0x09 |
Rhyme | 0:2eb87b5feaab | 14 | #define REG_IR3L 0x0A |
Rhyme | 0:2eb87b5feaab | 15 | #define REG_IR3H 0x0B |
Rhyme | 0:2eb87b5feaab | 16 | #define REG_IR4L 0x0C |
Rhyme | 0:2eb87b5feaab | 17 | #define REG_IR4H 0x0D |
Rhyme | 0:2eb87b5feaab | 18 | #define REG_TMPL 0x0E |
Rhyme | 0:2eb87b5feaab | 19 | #define REG_TMPH 0x0F |
Rhyme | 0:2eb87b5feaab | 20 | #define REG_ST2 0x10 |
Rhyme | 0:2eb87b5feaab | 21 | #define REG_ETH13H_LSB 0x11 |
Rhyme | 0:2eb87b5feaab | 22 | #define REG_ETH13H_MSB 0x12 |
Rhyme | 0:2eb87b5feaab | 23 | #define REG_ETH13L_LSB 0x13 |
Rhyme | 0:2eb87b5feaab | 24 | #define REG_ETH13L_MSB 0x14 |
Rhyme | 0:2eb87b5feaab | 25 | #define REG_ETH24H_LSB 0x15 |
Rhyme | 0:2eb87b5feaab | 26 | #define REG_ETH24H_MSB 0x16 |
Rhyme | 0:2eb87b5feaab | 27 | #define REG_ETH24L_LSB 0x17 |
Rhyme | 0:2eb87b5feaab | 28 | #define REG_ETH24L_MSB 0x18 |
Rhyme | 0:2eb87b5feaab | 29 | #define REG_EHYS13 0x19 |
Rhyme | 0:2eb87b5feaab | 30 | #define REG_EHYS24 0x1A |
Rhyme | 0:2eb87b5feaab | 31 | #define REG_EINTEN 0x1B |
Rhyme | 0:2eb87b5feaab | 32 | #define REG_ECNTL1 0x1C |
Rhyme | 0:2eb87b5feaab | 33 | #define REG_CNTL2 0x1D |
Rhyme | 0:2eb87b5feaab | 34 | |
Rhyme | 0:2eb87b5feaab | 35 | /* EEPROM */ |
Rhyme | 0:2eb87b5feaab | 36 | #define REG_EKEY 0x50 |
Rhyme | 0:2eb87b5feaab | 37 | #define EEPROM_ETH13H_LSB 0x51 |
Rhyme | 0:2eb87b5feaab | 38 | #define EEPROM_ETH13H_MSB 0x52 |
Rhyme | 0:2eb87b5feaab | 39 | #define EEPROM_ETH13L_LSB 0x53 |
Rhyme | 0:2eb87b5feaab | 40 | #define EEPROM_ETH13L_MSB 0x54 |
Rhyme | 0:2eb87b5feaab | 41 | #define EEPROM_ETH24H_LSB 0x55 |
Rhyme | 0:2eb87b5feaab | 42 | #define EEPROM_ETH24H_MSB 0x56 |
Rhyme | 0:2eb87b5feaab | 43 | #define EEPROM_ETH24L_LSB 0x57 |
Rhyme | 0:2eb87b5feaab | 44 | #define EEPROM_ETH24L_MSB 0x58 |
Rhyme | 0:2eb87b5feaab | 45 | #define EEPROM_EHYS13 0x59 |
Rhyme | 0:2eb87b5feaab | 46 | #define EEPROM_EHYS24 0x5A |
Rhyme | 0:2eb87b5feaab | 47 | #define EEPROM_EINTEN 0x5B |
Rhyme | 0:2eb87b5feaab | 48 | #define EEPROM_ECNTL1 0x5C |
Rhyme | 0:2eb87b5feaab | 49 | |
Rhyme | 0:2eb87b5feaab | 50 | |
Rhyme | 0:2eb87b5feaab | 51 | AK9753::AK9753(PinName sda, PinName scl, int addr) : m_i2c(sda, scl), m_addr(addr<<1) { |
Rhyme | 0:2eb87b5feaab | 52 | // activate the peripheral |
Rhyme | 0:2eb87b5feaab | 53 | } |
Rhyme | 0:2eb87b5feaab | 54 | |
Rhyme | 0:2eb87b5feaab | 55 | AK9753::~AK9753() { } |
Rhyme | 0:2eb87b5feaab | 56 | |
Rhyme | 0:2eb87b5feaab | 57 | int AK9753::readRegs(int addr, uint8_t * data, int len) { |
Rhyme | 0:2eb87b5feaab | 58 | char t[1] = {addr}; |
Rhyme | 0:2eb87b5feaab | 59 | int result ; |
Rhyme | 0:2eb87b5feaab | 60 | result = m_i2c.write(m_addr, t, 1, true); |
Rhyme | 0:2eb87b5feaab | 61 | if (result == 0) { |
Rhyme | 0:2eb87b5feaab | 62 | result = m_i2c.read(m_addr, (char *)data, len); |
Rhyme | 0:2eb87b5feaab | 63 | } |
Rhyme | 0:2eb87b5feaab | 64 | return( result ) ; |
Rhyme | 0:2eb87b5feaab | 65 | } |
Rhyme | 0:2eb87b5feaab | 66 | |
Rhyme | 0:2eb87b5feaab | 67 | int AK9753::writeRegs(uint8_t * data, int len) { |
Rhyme | 0:2eb87b5feaab | 68 | int result ; |
Rhyme | 0:2eb87b5feaab | 69 | result = m_i2c.write(m_addr, (char *)data, len); |
Rhyme | 0:2eb87b5feaab | 70 | return( result ) ; |
Rhyme | 0:2eb87b5feaab | 71 | } |
Rhyme | 0:2eb87b5feaab | 72 | |
Rhyme | 0:2eb87b5feaab | 73 | /** |
Rhyme | 0:2eb87b5feaab | 74 | * getCompanyCode |
Rhyme | 0:2eb87b5feaab | 75 | * the code is expected to be 0x48 |
Rhyme | 0:2eb87b5feaab | 76 | */ |
Rhyme | 0:2eb87b5feaab | 77 | uint8_t AK9753::getCompanyCode(void) |
Rhyme | 0:2eb87b5feaab | 78 | { |
Rhyme | 0:2eb87b5feaab | 79 | uint8_t data ; |
Rhyme | 0:2eb87b5feaab | 80 | readRegs(REG_WIA1, &data, 1) ; |
Rhyme | 0:2eb87b5feaab | 81 | return(data) ; |
Rhyme | 0:2eb87b5feaab | 82 | } |
Rhyme | 0:2eb87b5feaab | 83 | |
Rhyme | 0:2eb87b5feaab | 84 | /** |
Rhyme | 0:2eb87b5feaab | 85 | * getDeviceID |
Rhyme | 0:2eb87b5feaab | 86 | * the ID is expected to be 0x13 |
Rhyme | 0:2eb87b5feaab | 87 | */ |
Rhyme | 0:2eb87b5feaab | 88 | uint8_t AK9753::getDeviceID(void) |
Rhyme | 0:2eb87b5feaab | 89 | { |
Rhyme | 0:2eb87b5feaab | 90 | uint8_t data ; |
Rhyme | 0:2eb87b5feaab | 91 | readRegs(REG_WIA2, &data, 1) ; |
Rhyme | 0:2eb87b5feaab | 92 | return(data) ; |
Rhyme | 0:2eb87b5feaab | 93 | } |
Rhyme | 0:2eb87b5feaab | 94 | |
Rhyme | 0:2eb87b5feaab | 95 | bool AK9753::dataReady(void) /* returns ST1[0], read ST2 to clear */ |
Rhyme | 0:2eb87b5feaab | 96 | { |
Rhyme | 0:2eb87b5feaab | 97 | uint8_t data ; |
Rhyme | 0:2eb87b5feaab | 98 | readRegs(REG_ST1, &data, 1) ; |
Rhyme | 0:2eb87b5feaab | 99 | return((data & 0x01) == 0x01) ; |
Rhyme | 0:2eb87b5feaab | 100 | } |
Rhyme | 0:2eb87b5feaab | 101 | |
Rhyme | 0:2eb87b5feaab | 102 | bool AK9753::dataOverRun(void) |
Rhyme | 0:2eb87b5feaab | 103 | { |
Rhyme | 0:2eb87b5feaab | 104 | uint8_t data ; |
Rhyme | 0:2eb87b5feaab | 105 | readRegs(REG_ST2, &data, 1) ; |
Rhyme | 0:2eb87b5feaab | 106 | return((data & 0x02) == 0x02) ; |
Rhyme | 0:2eb87b5feaab | 107 | } |
Rhyme | 0:2eb87b5feaab | 108 | |
Rhyme | 0:2eb87b5feaab | 109 | uint8_t AK9753::getINTST(void) /** return REG_INTST */ |
Rhyme | 0:2eb87b5feaab | 110 | { |
Rhyme | 0:2eb87b5feaab | 111 | uint8_t data ; |
Rhyme | 0:2eb87b5feaab | 112 | readRegs(REG_INTST, &data, 1) ; |
Rhyme | 0:2eb87b5feaab | 113 | return( data ) ; |
Rhyme | 0:2eb87b5feaab | 114 | } |
Rhyme | 0:2eb87b5feaab | 115 | |
Rhyme | 0:2eb87b5feaab | 116 | uint8_t AK9753::getST1(void) |
Rhyme | 0:2eb87b5feaab | 117 | { |
Rhyme | 0:2eb87b5feaab | 118 | uint8_t data ; |
Rhyme | 0:2eb87b5feaab | 119 | readRegs(REG_ST1, &data, 1) ; |
Rhyme | 0:2eb87b5feaab | 120 | return( data ) ; |
Rhyme | 0:2eb87b5feaab | 121 | } |
Rhyme | 0:2eb87b5feaab | 122 | |
Rhyme | 0:2eb87b5feaab | 123 | int16_t AK9753::getRawIR1(void) |
Rhyme | 0:2eb87b5feaab | 124 | { |
Rhyme | 0:2eb87b5feaab | 125 | uint8_t data[2] ; |
Rhyme | 0:2eb87b5feaab | 126 | int16_t IR ; |
Rhyme | 0:2eb87b5feaab | 127 | readRegs(REG_IR1L, data, 2) ; |
Rhyme | 0:2eb87b5feaab | 128 | IR = (data[1] << 8) | data[0] ; |
Rhyme | 0:2eb87b5feaab | 129 | return( IR ) ; |
Rhyme | 0:2eb87b5feaab | 130 | } |
Rhyme | 0:2eb87b5feaab | 131 | |
Rhyme | 0:2eb87b5feaab | 132 | float AK9753::getIR1(void) |
Rhyme | 0:2eb87b5feaab | 133 | { |
Rhyme | 0:2eb87b5feaab | 134 | int16_t iValue ; |
Rhyme | 0:2eb87b5feaab | 135 | float fValue ; |
Rhyme | 0:2eb87b5feaab | 136 | iValue = getRawIR1() ; |
Rhyme | 0:2eb87b5feaab | 137 | fValue = 14286.8 * iValue / 32768.0 ; |
Rhyme | 0:2eb87b5feaab | 138 | return( fValue ) ; |
Rhyme | 0:2eb87b5feaab | 139 | } |
Rhyme | 0:2eb87b5feaab | 140 | |
Rhyme | 0:2eb87b5feaab | 141 | int16_t AK9753::getRawIR2(void) |
Rhyme | 0:2eb87b5feaab | 142 | { |
Rhyme | 0:2eb87b5feaab | 143 | uint8_t data[2] ; |
Rhyme | 0:2eb87b5feaab | 144 | int16_t IR ; |
Rhyme | 0:2eb87b5feaab | 145 | readRegs(REG_IR2L, data, 2) ; |
Rhyme | 0:2eb87b5feaab | 146 | IR = (data[1] << 8) | data[0] ; |
Rhyme | 0:2eb87b5feaab | 147 | return( IR ) ; |
Rhyme | 0:2eb87b5feaab | 148 | } |
Rhyme | 0:2eb87b5feaab | 149 | |
Rhyme | 0:2eb87b5feaab | 150 | float AK9753::getIR2(void) |
Rhyme | 0:2eb87b5feaab | 151 | { |
Rhyme | 0:2eb87b5feaab | 152 | int16_t iValue ; |
Rhyme | 0:2eb87b5feaab | 153 | float fValue ; |
Rhyme | 0:2eb87b5feaab | 154 | iValue = getRawIR2() ; |
Rhyme | 0:2eb87b5feaab | 155 | fValue = 14286.8 * iValue / 32768.0 ; |
Rhyme | 0:2eb87b5feaab | 156 | return( fValue ) ; |
Rhyme | 0:2eb87b5feaab | 157 | } |
Rhyme | 0:2eb87b5feaab | 158 | |
Rhyme | 0:2eb87b5feaab | 159 | int16_t AK9753::getRawIR3(void) |
Rhyme | 0:2eb87b5feaab | 160 | { |
Rhyme | 0:2eb87b5feaab | 161 | uint8_t data[2] ; |
Rhyme | 0:2eb87b5feaab | 162 | int16_t IR ; |
Rhyme | 0:2eb87b5feaab | 163 | readRegs(REG_IR3L, data, 2) ; |
Rhyme | 0:2eb87b5feaab | 164 | IR = (data[1] << 8) | data[0] ; |
Rhyme | 0:2eb87b5feaab | 165 | return( IR ) ; |
Rhyme | 0:2eb87b5feaab | 166 | } |
Rhyme | 0:2eb87b5feaab | 167 | |
Rhyme | 0:2eb87b5feaab | 168 | float AK9753::getIR3(void) |
Rhyme | 0:2eb87b5feaab | 169 | { |
Rhyme | 0:2eb87b5feaab | 170 | int16_t iValue ; |
Rhyme | 0:2eb87b5feaab | 171 | float fValue ; |
Rhyme | 0:2eb87b5feaab | 172 | iValue = getRawIR3() ; |
Rhyme | 0:2eb87b5feaab | 173 | fValue = 14286.8 * iValue / 32768.0 ; |
Rhyme | 0:2eb87b5feaab | 174 | return( fValue ) ; |
Rhyme | 0:2eb87b5feaab | 175 | } |
Rhyme | 0:2eb87b5feaab | 176 | |
Rhyme | 0:2eb87b5feaab | 177 | int16_t AK9753::getRawIR4(void) |
Rhyme | 0:2eb87b5feaab | 178 | { |
Rhyme | 0:2eb87b5feaab | 179 | uint8_t data[2] ; |
Rhyme | 0:2eb87b5feaab | 180 | int16_t IR ; |
Rhyme | 0:2eb87b5feaab | 181 | readRegs(REG_IR4L, data, 2) ; |
Rhyme | 0:2eb87b5feaab | 182 | IR = (data[1] << 8) | data[0] ; |
Rhyme | 0:2eb87b5feaab | 183 | return( IR ) ; |
Rhyme | 0:2eb87b5feaab | 184 | } |
Rhyme | 0:2eb87b5feaab | 185 | |
Rhyme | 0:2eb87b5feaab | 186 | float AK9753::getIR4(void) |
Rhyme | 0:2eb87b5feaab | 187 | { |
Rhyme | 0:2eb87b5feaab | 188 | int16_t iValue ; |
Rhyme | 0:2eb87b5feaab | 189 | float fValue ; |
Rhyme | 0:2eb87b5feaab | 190 | iValue = getRawIR4() ; |
Rhyme | 0:2eb87b5feaab | 191 | fValue = 14286.8 * iValue / 32768.0 ; |
Rhyme | 0:2eb87b5feaab | 192 | return( fValue ) ; |
Rhyme | 0:2eb87b5feaab | 193 | } |
Rhyme | 0:2eb87b5feaab | 194 | |
Rhyme | 0:2eb87b5feaab | 195 | int16_t AK9753::getRawTMP(void) |
Rhyme | 0:2eb87b5feaab | 196 | { |
Rhyme | 0:2eb87b5feaab | 197 | uint8_t data[2] ; |
Rhyme | 0:2eb87b5feaab | 198 | int16_t temp ; |
Rhyme | 0:2eb87b5feaab | 199 | readRegs(REG_TMPL, data, 2) ; |
Rhyme | 0:2eb87b5feaab | 200 | temp = (data[1] << 8) | data[0] ; |
Rhyme | 0:2eb87b5feaab | 201 | return( temp ) ; |
Rhyme | 0:2eb87b5feaab | 202 | } |
Rhyme | 0:2eb87b5feaab | 203 | |
Rhyme | 0:2eb87b5feaab | 204 | float AK9753::getTMP(void) |
Rhyme | 0:2eb87b5feaab | 205 | { |
Rhyme | 0:2eb87b5feaab | 206 | int16_t iValue ; |
Rhyme | 0:2eb87b5feaab | 207 | float fValue ; |
Rhyme | 0:2eb87b5feaab | 208 | iValue = getRawTMP() ; |
Rhyme | 0:2eb87b5feaab | 209 | fValue = 26.75 + (60.0 - 26.75) * iValue / 17792.0 ; |
Rhyme | 0:2eb87b5feaab | 210 | return( fValue ) ; |
Rhyme | 0:2eb87b5feaab | 211 | } |
Rhyme | 0:2eb87b5feaab | 212 | |
Rhyme | 0:2eb87b5feaab | 213 | uint8_t AK9753::getST2(void) |
Rhyme | 0:2eb87b5feaab | 214 | { |
Rhyme | 0:2eb87b5feaab | 215 | uint8_t data ; |
Rhyme | 0:2eb87b5feaab | 216 | readRegs(REG_ST2, &data, 1) ; |
Rhyme | 0:2eb87b5feaab | 217 | return( data ) ; |
Rhyme | 0:2eb87b5feaab | 218 | } |
Rhyme | 0:2eb87b5feaab | 219 | |
Rhyme | 0:2eb87b5feaab | 220 | int16_t AK9753::getETH13H(void) |
Rhyme | 0:2eb87b5feaab | 221 | { |
Rhyme | 0:2eb87b5feaab | 222 | int16_t value ; |
Rhyme | 0:2eb87b5feaab | 223 | uint8_t data[2] ; |
Rhyme | 0:2eb87b5feaab | 224 | readRegs(REG_ETH13H_LSB, data, 2) ; |
Rhyme | 0:2eb87b5feaab | 225 | value = (data[1] << 8) | data[0] ; |
Rhyme | 0:2eb87b5feaab | 226 | return( value ) ; |
Rhyme | 0:2eb87b5feaab | 227 | } |
Rhyme | 0:2eb87b5feaab | 228 | |
Rhyme | 0:2eb87b5feaab | 229 | int16_t AK9753::getETH13L(void) |
Rhyme | 0:2eb87b5feaab | 230 | { |
Rhyme | 0:2eb87b5feaab | 231 | int16_t value ; |
Rhyme | 0:2eb87b5feaab | 232 | uint8_t data[2] ; |
Rhyme | 0:2eb87b5feaab | 233 | readRegs(REG_ETH13L_LSB, data, 2) ; |
Rhyme | 0:2eb87b5feaab | 234 | value = (data[1] << 8) | data[0] ; |
Rhyme | 0:2eb87b5feaab | 235 | return( value ) ; |
Rhyme | 0:2eb87b5feaab | 236 | } |
Rhyme | 0:2eb87b5feaab | 237 | |
Rhyme | 0:2eb87b5feaab | 238 | int16_t AK9753::getETH24H(void) |
Rhyme | 0:2eb87b5feaab | 239 | { |
Rhyme | 0:2eb87b5feaab | 240 | int16_t value ; |
Rhyme | 0:2eb87b5feaab | 241 | uint8_t data[2] ; |
Rhyme | 0:2eb87b5feaab | 242 | readRegs(REG_ETH24H_LSB, data, 2) ; |
Rhyme | 0:2eb87b5feaab | 243 | value = (data[1] << 8) | data[0] ; |
Rhyme | 0:2eb87b5feaab | 244 | return( value ) ; |
Rhyme | 0:2eb87b5feaab | 245 | } |
Rhyme | 0:2eb87b5feaab | 246 | |
Rhyme | 0:2eb87b5feaab | 247 | int16_t AK9753::getETH24L(void) |
Rhyme | 0:2eb87b5feaab | 248 | { |
Rhyme | 0:2eb87b5feaab | 249 | int16_t value ; |
Rhyme | 0:2eb87b5feaab | 250 | uint8_t data[2] ; |
Rhyme | 0:2eb87b5feaab | 251 | readRegs(REG_ETH24L_LSB, data, 2) ; |
Rhyme | 0:2eb87b5feaab | 252 | value = (data[1] << 8) | data[0] ; |
Rhyme | 0:2eb87b5feaab | 253 | return( value ) ; |
Rhyme | 0:2eb87b5feaab | 254 | } |
Rhyme | 0:2eb87b5feaab | 255 | |
Rhyme | 0:2eb87b5feaab | 256 | uint8_t AK9753::getEHYS13(void) |
Rhyme | 0:2eb87b5feaab | 257 | { |
Rhyme | 0:2eb87b5feaab | 258 | uint8_t data ; |
Rhyme | 0:2eb87b5feaab | 259 | readRegs(REG_EHYS13, &data, 1) ; |
Rhyme | 0:2eb87b5feaab | 260 | return( data ) ; |
Rhyme | 0:2eb87b5feaab | 261 | } |
Rhyme | 0:2eb87b5feaab | 262 | |
Rhyme | 0:2eb87b5feaab | 263 | uint8_t AK9753::getEHYS24(void) |
Rhyme | 0:2eb87b5feaab | 264 | { |
Rhyme | 0:2eb87b5feaab | 265 | uint8_t data ; |
Rhyme | 0:2eb87b5feaab | 266 | readRegs(REG_EHYS24, &data, 1) ; |
Rhyme | 0:2eb87b5feaab | 267 | return( data ) ; |
Rhyme | 0:2eb87b5feaab | 268 | } |
Rhyme | 0:2eb87b5feaab | 269 | |
Rhyme | 0:2eb87b5feaab | 270 | uint8_t AK9753::getEINTEN(void) |
Rhyme | 0:2eb87b5feaab | 271 | { |
Rhyme | 0:2eb87b5feaab | 272 | uint8_t data ; |
Rhyme | 0:2eb87b5feaab | 273 | readRegs(REG_EINTEN, &data, 1) ; |
Rhyme | 0:2eb87b5feaab | 274 | return( data ) ; |
Rhyme | 0:2eb87b5feaab | 275 | } |
Rhyme | 0:2eb87b5feaab | 276 | |
Rhyme | 0:2eb87b5feaab | 277 | uint8_t AK9753::getECNTL1(void) |
Rhyme | 0:2eb87b5feaab | 278 | { |
Rhyme | 0:2eb87b5feaab | 279 | uint8_t data ; |
Rhyme | 0:2eb87b5feaab | 280 | readRegs(REG_ECNTL1, &data, 1) ; |
Rhyme | 0:2eb87b5feaab | 281 | return( data ) ; |
Rhyme | 0:2eb87b5feaab | 282 | } |
Rhyme | 0:2eb87b5feaab | 283 | |
Rhyme | 0:2eb87b5feaab | 284 | uint8_t AK9753::getCNTL2(void) |
Rhyme | 0:2eb87b5feaab | 285 | { |
Rhyme | 0:2eb87b5feaab | 286 | uint8_t data ; |
Rhyme | 0:2eb87b5feaab | 287 | readRegs(REG_CNTL2, &data, 1) ; |
Rhyme | 0:2eb87b5feaab | 288 | return( data ) ; |
Rhyme | 0:2eb87b5feaab | 289 | } |
Rhyme | 0:2eb87b5feaab | 290 | |
Rhyme | 0:2eb87b5feaab | 291 | void AK9753::setETH13H(int16_t value) |
Rhyme | 0:2eb87b5feaab | 292 | { |
Rhyme | 0:2eb87b5feaab | 293 | uint8_t data[3] ; |
Rhyme | 0:2eb87b5feaab | 294 | data[0] = REG_ETH13H_LSB ; |
Rhyme | 0:2eb87b5feaab | 295 | data[1] = value & 0xFF ; |
Rhyme | 0:2eb87b5feaab | 296 | data[2] = (value >> 8) & 0xFF ; |
Rhyme | 0:2eb87b5feaab | 297 | writeRegs(data, 3) ; |
Rhyme | 0:2eb87b5feaab | 298 | } |
Rhyme | 0:2eb87b5feaab | 299 | |
Rhyme | 0:2eb87b5feaab | 300 | void AK9753::setETH13L(int16_t value) |
Rhyme | 0:2eb87b5feaab | 301 | { |
Rhyme | 0:2eb87b5feaab | 302 | uint8_t data[3] ; |
Rhyme | 0:2eb87b5feaab | 303 | data[0] = REG_ETH13L_LSB ; |
Rhyme | 0:2eb87b5feaab | 304 | data[1] = value & 0xFF ; |
Rhyme | 0:2eb87b5feaab | 305 | data[2] = (value >> 8) & 0xFF ; |
Rhyme | 0:2eb87b5feaab | 306 | writeRegs(data, 3) ; |
Rhyme | 0:2eb87b5feaab | 307 | } |
Rhyme | 0:2eb87b5feaab | 308 | |
Rhyme | 0:2eb87b5feaab | 309 | void AK9753::setETH24H(int16_t value) |
Rhyme | 0:2eb87b5feaab | 310 | { |
Rhyme | 0:2eb87b5feaab | 311 | uint8_t data[3] ; |
Rhyme | 0:2eb87b5feaab | 312 | data[0] = REG_ETH24H_LSB ; |
Rhyme | 0:2eb87b5feaab | 313 | data[1] = value & 0xFF ; |
Rhyme | 0:2eb87b5feaab | 314 | data[2] = (value >> 8) & 0xFF ; |
Rhyme | 0:2eb87b5feaab | 315 | writeRegs(data, 3) ; |
Rhyme | 0:2eb87b5feaab | 316 | } |
Rhyme | 0:2eb87b5feaab | 317 | |
Rhyme | 0:2eb87b5feaab | 318 | void AK9753::setETH24L(int16_t value) |
Rhyme | 0:2eb87b5feaab | 319 | { |
Rhyme | 0:2eb87b5feaab | 320 | uint8_t data[3] ; |
Rhyme | 0:2eb87b5feaab | 321 | data[0] = REG_ETH24L_LSB ; |
Rhyme | 0:2eb87b5feaab | 322 | data[1] = value & 0xFF ; |
Rhyme | 0:2eb87b5feaab | 323 | data[2] = (value >> 8) & 0xFF ; |
Rhyme | 0:2eb87b5feaab | 324 | writeRegs(data, 3) ; |
Rhyme | 0:2eb87b5feaab | 325 | } |
Rhyme | 0:2eb87b5feaab | 326 | |
Rhyme | 0:2eb87b5feaab | 327 | void AK9753::setEHYS13(uint8_t value) |
Rhyme | 0:2eb87b5feaab | 328 | { |
Rhyme | 0:2eb87b5feaab | 329 | uint8_t data[2] ; |
Rhyme | 0:2eb87b5feaab | 330 | data[0] = REG_EHYS13 ; |
Rhyme | 0:2eb87b5feaab | 331 | data[1] = value ; |
Rhyme | 0:2eb87b5feaab | 332 | writeRegs(data, 2) ; |
Rhyme | 0:2eb87b5feaab | 333 | } |
Rhyme | 0:2eb87b5feaab | 334 | |
Rhyme | 0:2eb87b5feaab | 335 | void AK9753::setEHYS24(uint8_t value) |
Rhyme | 0:2eb87b5feaab | 336 | { |
Rhyme | 0:2eb87b5feaab | 337 | uint8_t data[2] ; |
Rhyme | 0:2eb87b5feaab | 338 | data[0] = REG_EHYS24 ; |
Rhyme | 0:2eb87b5feaab | 339 | data[1] = value ; |
Rhyme | 0:2eb87b5feaab | 340 | writeRegs(data, 2) ; |
Rhyme | 0:2eb87b5feaab | 341 | } |
Rhyme | 0:2eb87b5feaab | 342 | |
Rhyme | 0:2eb87b5feaab | 343 | void AK9753::setEINTEN(uint8_t value) |
Rhyme | 0:2eb87b5feaab | 344 | { |
Rhyme | 0:2eb87b5feaab | 345 | uint8_t data[2] ; |
Rhyme | 0:2eb87b5feaab | 346 | data[0] = REG_EINTEN ; |
Rhyme | 0:2eb87b5feaab | 347 | data[1] = value ; |
Rhyme | 0:2eb87b5feaab | 348 | writeRegs(data, 2) ; |
Rhyme | 0:2eb87b5feaab | 349 | } |
Rhyme | 0:2eb87b5feaab | 350 | |
Rhyme | 0:2eb87b5feaab | 351 | void AK9753::setECNTL1(uint8_t value) |
Rhyme | 0:2eb87b5feaab | 352 | { |
Rhyme | 0:2eb87b5feaab | 353 | uint8_t data[2] ; |
Rhyme | 0:2eb87b5feaab | 354 | data[0] = REG_ECNTL1 ; |
Rhyme | 0:2eb87b5feaab | 355 | data[1] = value ; |
Rhyme | 0:2eb87b5feaab | 356 | writeRegs(data, 2) ; |
Rhyme | 0:2eb87b5feaab | 357 | } |
Rhyme | 0:2eb87b5feaab | 358 | |
Rhyme | 0:2eb87b5feaab | 359 | void AK9753::software_reset(void) |
Rhyme | 0:2eb87b5feaab | 360 | { |
Rhyme | 0:2eb87b5feaab | 361 | uint8_t data[2] = { REG_CNTL2, 0xFF } ; |
Rhyme | 0:2eb87b5feaab | 362 | writeRegs(data, 2) ; |
Rhyme | 0:2eb87b5feaab | 363 | } |