AKM AK9753 IR Sensor IC with I2C I/F

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?

UserRevisionLine numberNew 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 }