http://wiki.seeed.cc/Grove-Gesture_v1.0/

Committer:
matsujirushi
Date:
Tue Dec 19 15:26:16 2017 +0900
Revision:
1:b3125f4faa38
Parent:
0:ea8f1bb16afc
Support for Mbed OS 2.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
matsujirushi 0:ea8f1bb16afc 1 #include "mbed.h"
matsujirushi 0:ea8f1bb16afc 2 #include "PAJ7620U2.h"
matsujirushi 0:ea8f1bb16afc 3
matsujirushi 0:ea8f1bb16afc 4 bool PAJ7620U2::RegisterWrite(uint8_t address, uint8_t value)
matsujirushi 0:ea8f1bb16afc 5 {
matsujirushi 0:ea8f1bb16afc 6 uint8_t sendData[2];
matsujirushi 0:ea8f1bb16afc 7 sendData[0] = address;
matsujirushi 0:ea8f1bb16afc 8 sendData[1] = value;
matsujirushi 0:ea8f1bb16afc 9 if (_I2c->write(_SlaveAddress, (const char*)sendData, sizeof(sendData), false) != 0) return false;
matsujirushi 0:ea8f1bb16afc 10
matsujirushi 0:ea8f1bb16afc 11 return true;
matsujirushi 0:ea8f1bb16afc 12 }
matsujirushi 0:ea8f1bb16afc 13
matsujirushi 0:ea8f1bb16afc 14 bool PAJ7620U2::RegisterWrite(uint8_t address, const uint8_t* data, int dataSize)
matsujirushi 0:ea8f1bb16afc 15 {
matsujirushi 0:ea8f1bb16afc 16 uint8_t* sendData = (uint8_t*)alloca(1 + dataSize);
matsujirushi 0:ea8f1bb16afc 17 sendData[0] = address;
matsujirushi 0:ea8f1bb16afc 18 memcpy(&sendData[1], data, dataSize);
matsujirushi 0:ea8f1bb16afc 19 if (_I2c->write(_SlaveAddress, (const char*)sendData, 1 + dataSize, false) != 0) return false;
matsujirushi 0:ea8f1bb16afc 20
matsujirushi 0:ea8f1bb16afc 21 return true;
matsujirushi 0:ea8f1bb16afc 22 }
matsujirushi 0:ea8f1bb16afc 23
matsujirushi 0:ea8f1bb16afc 24 bool PAJ7620U2::RegisterRead(uint8_t address, uint8_t* value)
matsujirushi 0:ea8f1bb16afc 25 {
matsujirushi 0:ea8f1bb16afc 26 uint8_t sendData[1];
matsujirushi 0:ea8f1bb16afc 27 sendData[0] = address;
matsujirushi 0:ea8f1bb16afc 28 if (_I2c->write(_SlaveAddress, (const char*)sendData, sizeof(sendData), true) != 0) return false;
matsujirushi 0:ea8f1bb16afc 29
matsujirushi 0:ea8f1bb16afc 30 uint8_t recvData[1];
matsujirushi 0:ea8f1bb16afc 31 if (_I2c->read(_SlaveAddress, (char*)recvData, sizeof(recvData)) != 0) return false;
matsujirushi 0:ea8f1bb16afc 32 *value = recvData[0];
matsujirushi 0:ea8f1bb16afc 33
matsujirushi 0:ea8f1bb16afc 34 return true;
matsujirushi 0:ea8f1bb16afc 35 }
matsujirushi 0:ea8f1bb16afc 36
matsujirushi 0:ea8f1bb16afc 37 bool PAJ7620U2::RegisterRead(uint8_t address, uint8_t* data, int dataSize)
matsujirushi 0:ea8f1bb16afc 38 {
matsujirushi 0:ea8f1bb16afc 39 uint8_t sendData[1];
matsujirushi 0:ea8f1bb16afc 40 sendData[0] = address;
matsujirushi 0:ea8f1bb16afc 41 if (_I2c->write(_SlaveAddress, (const char*)sendData, sizeof(sendData), true) != 0) return false;
matsujirushi 0:ea8f1bb16afc 42
matsujirushi 0:ea8f1bb16afc 43 if (_I2c->read(_SlaveAddress, (char*)data, dataSize) != 0) return false;
matsujirushi 0:ea8f1bb16afc 44
matsujirushi 0:ea8f1bb16afc 45 return true;
matsujirushi 0:ea8f1bb16afc 46 }
matsujirushi 0:ea8f1bb16afc 47
matsujirushi 0:ea8f1bb16afc 48 const PAJ7620U2::RegisterAddressValue PAJ7620U2::_InitRegisterArray[] = {
matsujirushi 0:ea8f1bb16afc 49 { 0xEF, 0x00, },
matsujirushi 0:ea8f1bb16afc 50 { 0x32, 0x29, },
matsujirushi 0:ea8f1bb16afc 51 { 0x33, 0x01, },
matsujirushi 0:ea8f1bb16afc 52 { 0x34, 0x00, },
matsujirushi 0:ea8f1bb16afc 53 { 0x35, 0x01, },
matsujirushi 0:ea8f1bb16afc 54 { 0x36, 0x00, },
matsujirushi 0:ea8f1bb16afc 55 { 0x37, 0x07, },
matsujirushi 0:ea8f1bb16afc 56 { 0x38, 0x17, },
matsujirushi 0:ea8f1bb16afc 57 { 0x39, 0x06, },
matsujirushi 0:ea8f1bb16afc 58 { 0x3A, 0x12, },
matsujirushi 0:ea8f1bb16afc 59 { 0x3F, 0x00, },
matsujirushi 0:ea8f1bb16afc 60 { 0x40, 0x02, },
matsujirushi 0:ea8f1bb16afc 61 { 0x41, 0xFF, },
matsujirushi 0:ea8f1bb16afc 62 { 0x42, 0x01, },
matsujirushi 0:ea8f1bb16afc 63 { 0x46, 0x2D, },
matsujirushi 0:ea8f1bb16afc 64 { 0x47, 0x0F, },
matsujirushi 0:ea8f1bb16afc 65 { 0x48, 0x3C, },
matsujirushi 0:ea8f1bb16afc 66 { 0x49, 0x00, },
matsujirushi 0:ea8f1bb16afc 67 { 0x4A, 0x1E, },
matsujirushi 0:ea8f1bb16afc 68 { 0x4B, 0x00, },
matsujirushi 0:ea8f1bb16afc 69 { 0x4C, 0x20, },
matsujirushi 0:ea8f1bb16afc 70 { 0x4D, 0x00, },
matsujirushi 0:ea8f1bb16afc 71 { 0x4E, 0x1A, },
matsujirushi 0:ea8f1bb16afc 72 { 0x4F, 0x14, },
matsujirushi 0:ea8f1bb16afc 73 { 0x50, 0x00, },
matsujirushi 0:ea8f1bb16afc 74 { 0x51, 0x10, },
matsujirushi 0:ea8f1bb16afc 75 { 0x52, 0x00, },
matsujirushi 0:ea8f1bb16afc 76 { 0x5C, 0x02, },
matsujirushi 0:ea8f1bb16afc 77 { 0x5D, 0x00, },
matsujirushi 0:ea8f1bb16afc 78 { 0x5E, 0x10, },
matsujirushi 0:ea8f1bb16afc 79 { 0x5F, 0x3F, },
matsujirushi 0:ea8f1bb16afc 80 { 0x60, 0x27, },
matsujirushi 0:ea8f1bb16afc 81 { 0x61, 0x28, },
matsujirushi 0:ea8f1bb16afc 82 { 0x62, 0x00, },
matsujirushi 0:ea8f1bb16afc 83 { 0x63, 0x03, },
matsujirushi 0:ea8f1bb16afc 84 { 0x64, 0xF7, },
matsujirushi 0:ea8f1bb16afc 85 { 0x65, 0x03, },
matsujirushi 0:ea8f1bb16afc 86 { 0x66, 0xD9, },
matsujirushi 0:ea8f1bb16afc 87 { 0x67, 0x03, },
matsujirushi 0:ea8f1bb16afc 88 { 0x68, 0x01, },
matsujirushi 0:ea8f1bb16afc 89 { 0x69, 0xC8, },
matsujirushi 0:ea8f1bb16afc 90 { 0x6A, 0x40, },
matsujirushi 0:ea8f1bb16afc 91 { 0x6D, 0x04, },
matsujirushi 0:ea8f1bb16afc 92 { 0x6E, 0x00, },
matsujirushi 0:ea8f1bb16afc 93 { 0x6F, 0x00, },
matsujirushi 0:ea8f1bb16afc 94 { 0x70, 0x80, },
matsujirushi 0:ea8f1bb16afc 95 { 0x71, 0x00, },
matsujirushi 0:ea8f1bb16afc 96 { 0x72, 0x00, },
matsujirushi 0:ea8f1bb16afc 97 { 0x73, 0x00, },
matsujirushi 0:ea8f1bb16afc 98 { 0x74, 0xF0, },
matsujirushi 0:ea8f1bb16afc 99 { 0x75, 0x00, },
matsujirushi 0:ea8f1bb16afc 100 { 0x80, 0x42, },
matsujirushi 0:ea8f1bb16afc 101 { 0x81, 0x44, },
matsujirushi 0:ea8f1bb16afc 102 { 0x82, 0x04, },
matsujirushi 0:ea8f1bb16afc 103 { 0x83, 0x20, },
matsujirushi 0:ea8f1bb16afc 104 { 0x84, 0x20, },
matsujirushi 0:ea8f1bb16afc 105 { 0x85, 0x00, },
matsujirushi 0:ea8f1bb16afc 106 { 0x86, 0x10, },
matsujirushi 0:ea8f1bb16afc 107 { 0x87, 0x00, },
matsujirushi 0:ea8f1bb16afc 108 { 0x88, 0x05, },
matsujirushi 0:ea8f1bb16afc 109 { 0x89, 0x18, },
matsujirushi 0:ea8f1bb16afc 110 { 0x8A, 0x10, },
matsujirushi 0:ea8f1bb16afc 111 { 0x8B, 0x01, },
matsujirushi 0:ea8f1bb16afc 112 { 0x8C, 0x37, },
matsujirushi 0:ea8f1bb16afc 113 { 0x8D, 0x00, },
matsujirushi 0:ea8f1bb16afc 114 { 0x8E, 0xF0, },
matsujirushi 0:ea8f1bb16afc 115 { 0x8F, 0x81, },
matsujirushi 0:ea8f1bb16afc 116 { 0x90, 0x06, },
matsujirushi 0:ea8f1bb16afc 117 { 0x91, 0x06, },
matsujirushi 0:ea8f1bb16afc 118 { 0x92, 0x1E, },
matsujirushi 0:ea8f1bb16afc 119 { 0x93, 0x0D, },
matsujirushi 0:ea8f1bb16afc 120 { 0x94, 0x0A, },
matsujirushi 0:ea8f1bb16afc 121 { 0x95, 0x0A, },
matsujirushi 0:ea8f1bb16afc 122 { 0x96, 0x0C, },
matsujirushi 0:ea8f1bb16afc 123 { 0x97, 0x05, },
matsujirushi 0:ea8f1bb16afc 124 { 0x98, 0x0A, },
matsujirushi 0:ea8f1bb16afc 125 { 0x99, 0x41, },
matsujirushi 0:ea8f1bb16afc 126 { 0x9A, 0x14, },
matsujirushi 0:ea8f1bb16afc 127 { 0x9B, 0x0A, },
matsujirushi 0:ea8f1bb16afc 128 { 0x9C, 0x3F, },
matsujirushi 0:ea8f1bb16afc 129 { 0x9D, 0x33, },
matsujirushi 0:ea8f1bb16afc 130 { 0x9E, 0xAE, },
matsujirushi 0:ea8f1bb16afc 131 { 0x9F, 0xF9, },
matsujirushi 0:ea8f1bb16afc 132 { 0xA0, 0x48, },
matsujirushi 0:ea8f1bb16afc 133 { 0xA1, 0x13, },
matsujirushi 0:ea8f1bb16afc 134 { 0xA2, 0x10, },
matsujirushi 0:ea8f1bb16afc 135 { 0xA3, 0x08, },
matsujirushi 0:ea8f1bb16afc 136 { 0xA4, 0x30, },
matsujirushi 0:ea8f1bb16afc 137 { 0xA5, 0x19, },
matsujirushi 0:ea8f1bb16afc 138 { 0xA6, 0x10, },
matsujirushi 0:ea8f1bb16afc 139 { 0xA7, 0x08, },
matsujirushi 0:ea8f1bb16afc 140 { 0xA8, 0x24, },
matsujirushi 0:ea8f1bb16afc 141 { 0xA9, 0x04, },
matsujirushi 0:ea8f1bb16afc 142 { 0xAA, 0x1E, },
matsujirushi 0:ea8f1bb16afc 143 { 0xAB, 0x1E, },
matsujirushi 0:ea8f1bb16afc 144 { 0xCC, 0x19, },
matsujirushi 0:ea8f1bb16afc 145 { 0xCD, 0x0B, },
matsujirushi 0:ea8f1bb16afc 146 { 0xCE, 0x13, },
matsujirushi 0:ea8f1bb16afc 147 { 0xCF, 0x64, },
matsujirushi 0:ea8f1bb16afc 148 { 0xD0, 0x21, },
matsujirushi 0:ea8f1bb16afc 149 { 0xD1, 0x0F, },
matsujirushi 0:ea8f1bb16afc 150 { 0xD2, 0x88, },
matsujirushi 0:ea8f1bb16afc 151 { 0xE0, 0x01, },
matsujirushi 0:ea8f1bb16afc 152 { 0xE1, 0x04, },
matsujirushi 0:ea8f1bb16afc 153 { 0xE2, 0x41, },
matsujirushi 0:ea8f1bb16afc 154 { 0xE3, 0xD6, },
matsujirushi 0:ea8f1bb16afc 155 { 0xE4, 0x00, },
matsujirushi 0:ea8f1bb16afc 156 { 0xE5, 0x0C, },
matsujirushi 0:ea8f1bb16afc 157 { 0xE6, 0x0A, },
matsujirushi 0:ea8f1bb16afc 158 { 0xE7, 0x00, },
matsujirushi 0:ea8f1bb16afc 159 { 0xE8, 0x00, },
matsujirushi 0:ea8f1bb16afc 160 { 0xE9, 0x00, },
matsujirushi 0:ea8f1bb16afc 161 { 0xEE, 0x07, },
matsujirushi 0:ea8f1bb16afc 162 { 0xEF, 0x01, },
matsujirushi 0:ea8f1bb16afc 163 { 0x00, 0x1E, },
matsujirushi 0:ea8f1bb16afc 164 { 0x01, 0x1E, },
matsujirushi 0:ea8f1bb16afc 165 { 0x02, 0x0F, },
matsujirushi 0:ea8f1bb16afc 166 { 0x03, 0x10, },
matsujirushi 0:ea8f1bb16afc 167 { 0x04, 0x02, },
matsujirushi 0:ea8f1bb16afc 168 { 0x05, 0x00, },
matsujirushi 0:ea8f1bb16afc 169 { 0x06, 0xB0, },
matsujirushi 0:ea8f1bb16afc 170 { 0x07, 0x04, },
matsujirushi 0:ea8f1bb16afc 171 { 0x08, 0x0D, },
matsujirushi 0:ea8f1bb16afc 172 { 0x09, 0x0E, },
matsujirushi 0:ea8f1bb16afc 173 { 0x0A, 0x9C, },
matsujirushi 0:ea8f1bb16afc 174 { 0x0B, 0x04, },
matsujirushi 0:ea8f1bb16afc 175 { 0x0C, 0x05, },
matsujirushi 0:ea8f1bb16afc 176 { 0x0D, 0x0F, },
matsujirushi 0:ea8f1bb16afc 177 { 0x0E, 0x02, },
matsujirushi 0:ea8f1bb16afc 178 { 0x0F, 0x12, },
matsujirushi 0:ea8f1bb16afc 179 { 0x10, 0x02, },
matsujirushi 0:ea8f1bb16afc 180 { 0x11, 0x02, },
matsujirushi 0:ea8f1bb16afc 181 { 0x12, 0x00, },
matsujirushi 0:ea8f1bb16afc 182 { 0x13, 0x01, },
matsujirushi 0:ea8f1bb16afc 183 { 0x14, 0x05, },
matsujirushi 0:ea8f1bb16afc 184 { 0x15, 0x07, },
matsujirushi 0:ea8f1bb16afc 185 { 0x16, 0x05, },
matsujirushi 0:ea8f1bb16afc 186 { 0x17, 0x07, },
matsujirushi 0:ea8f1bb16afc 187 { 0x18, 0x01, },
matsujirushi 0:ea8f1bb16afc 188 { 0x19, 0x04, },
matsujirushi 0:ea8f1bb16afc 189 { 0x1A, 0x05, },
matsujirushi 0:ea8f1bb16afc 190 { 0x1B, 0x0C, },
matsujirushi 0:ea8f1bb16afc 191 { 0x1C, 0x2A, },
matsujirushi 0:ea8f1bb16afc 192 { 0x1D, 0x01, },
matsujirushi 0:ea8f1bb16afc 193 { 0x1E, 0x00, },
matsujirushi 0:ea8f1bb16afc 194 { 0x21, 0x00, },
matsujirushi 0:ea8f1bb16afc 195 { 0x22, 0x00, },
matsujirushi 0:ea8f1bb16afc 196 { 0x23, 0x00, },
matsujirushi 0:ea8f1bb16afc 197 { 0x25, 0x01, },
matsujirushi 0:ea8f1bb16afc 198 { 0x26, 0x00, },
matsujirushi 0:ea8f1bb16afc 199 { 0x27, 0x39, },
matsujirushi 0:ea8f1bb16afc 200 { 0x28, 0x7F, },
matsujirushi 0:ea8f1bb16afc 201 { 0x29, 0x08, },
matsujirushi 0:ea8f1bb16afc 202 { 0x30, 0x03, },
matsujirushi 0:ea8f1bb16afc 203 { 0x31, 0x00, },
matsujirushi 0:ea8f1bb16afc 204 { 0x32, 0x1A, },
matsujirushi 0:ea8f1bb16afc 205 { 0x33, 0x1A, },
matsujirushi 0:ea8f1bb16afc 206 { 0x34, 0x07, },
matsujirushi 0:ea8f1bb16afc 207 { 0x35, 0x07, },
matsujirushi 0:ea8f1bb16afc 208 { 0x36, 0x01, },
matsujirushi 0:ea8f1bb16afc 209 { 0x37, 0xFF, },
matsujirushi 0:ea8f1bb16afc 210 { 0x38, 0x36, },
matsujirushi 0:ea8f1bb16afc 211 { 0x39, 0x07, },
matsujirushi 0:ea8f1bb16afc 212 { 0x3A, 0x00, },
matsujirushi 0:ea8f1bb16afc 213 { 0x3E, 0xFF, },
matsujirushi 0:ea8f1bb16afc 214 { 0x3F, 0x00, },
matsujirushi 0:ea8f1bb16afc 215 { 0x40, 0x77, },
matsujirushi 0:ea8f1bb16afc 216 { 0x41, 0x40, },
matsujirushi 0:ea8f1bb16afc 217 { 0x42, 0x00, },
matsujirushi 0:ea8f1bb16afc 218 { 0x43, 0x30, },
matsujirushi 0:ea8f1bb16afc 219 { 0x44, 0xA0, },
matsujirushi 0:ea8f1bb16afc 220 { 0x45, 0x5C, },
matsujirushi 0:ea8f1bb16afc 221 { 0x46, 0x00, },
matsujirushi 0:ea8f1bb16afc 222 { 0x47, 0x00, },
matsujirushi 0:ea8f1bb16afc 223 { 0x48, 0x58, },
matsujirushi 0:ea8f1bb16afc 224 { 0x4A, 0x1E, },
matsujirushi 0:ea8f1bb16afc 225 { 0x4B, 0x1E, },
matsujirushi 0:ea8f1bb16afc 226 { 0x4C, 0x00, },
matsujirushi 0:ea8f1bb16afc 227 { 0x4D, 0x00, },
matsujirushi 0:ea8f1bb16afc 228 { 0x4E, 0xA0, },
matsujirushi 0:ea8f1bb16afc 229 { 0x4F, 0x80, },
matsujirushi 0:ea8f1bb16afc 230 { 0x50, 0x00, },
matsujirushi 0:ea8f1bb16afc 231 { 0x51, 0x00, },
matsujirushi 0:ea8f1bb16afc 232 { 0x52, 0x00, },
matsujirushi 0:ea8f1bb16afc 233 { 0x53, 0x00, },
matsujirushi 0:ea8f1bb16afc 234 { 0x54, 0x00, },
matsujirushi 0:ea8f1bb16afc 235 { 0x57, 0x80, },
matsujirushi 0:ea8f1bb16afc 236 { 0x59, 0x10, },
matsujirushi 0:ea8f1bb16afc 237 { 0x5A, 0x08, },
matsujirushi 0:ea8f1bb16afc 238 { 0x5B, 0x94, },
matsujirushi 0:ea8f1bb16afc 239 { 0x5C, 0xE8, },
matsujirushi 0:ea8f1bb16afc 240 { 0x5D, 0x08, },
matsujirushi 0:ea8f1bb16afc 241 { 0x5E, 0x3D, },
matsujirushi 0:ea8f1bb16afc 242 { 0x5F, 0x99, },
matsujirushi 0:ea8f1bb16afc 243 { 0x60, 0x45, },
matsujirushi 0:ea8f1bb16afc 244 { 0x61, 0x40, },
matsujirushi 0:ea8f1bb16afc 245 { 0x63, 0x2D, },
matsujirushi 0:ea8f1bb16afc 246 { 0x64, 0x02, },
matsujirushi 0:ea8f1bb16afc 247 { 0x65, 0x96, },
matsujirushi 0:ea8f1bb16afc 248 { 0x66, 0x00, },
matsujirushi 0:ea8f1bb16afc 249 { 0x67, 0x97, },
matsujirushi 0:ea8f1bb16afc 250 { 0x68, 0x01, },
matsujirushi 0:ea8f1bb16afc 251 { 0x69, 0xCD, },
matsujirushi 0:ea8f1bb16afc 252 { 0x6A, 0x01, },
matsujirushi 0:ea8f1bb16afc 253 { 0x6B, 0xB0, },
matsujirushi 0:ea8f1bb16afc 254 { 0x6C, 0x04, },
matsujirushi 0:ea8f1bb16afc 255 { 0x6D, 0x2C, },
matsujirushi 0:ea8f1bb16afc 256 { 0x6E, 0x01, },
matsujirushi 0:ea8f1bb16afc 257 { 0x6F, 0x32, },
matsujirushi 0:ea8f1bb16afc 258 { 0x71, 0x00, },
matsujirushi 0:ea8f1bb16afc 259 { 0x72, 0x01, },
matsujirushi 0:ea8f1bb16afc 260 { 0x73, 0x35, },
matsujirushi 0:ea8f1bb16afc 261 { 0x74, 0x00, },
matsujirushi 0:ea8f1bb16afc 262 { 0x75, 0x33, },
matsujirushi 0:ea8f1bb16afc 263 { 0x76, 0x31, },
matsujirushi 0:ea8f1bb16afc 264 { 0x77, 0x01, },
matsujirushi 0:ea8f1bb16afc 265 { 0x7C, 0x84, },
matsujirushi 0:ea8f1bb16afc 266 { 0x7D, 0x03, },
matsujirushi 0:ea8f1bb16afc 267 { 0x7E, 0x01, },
matsujirushi 0:ea8f1bb16afc 268 };
matsujirushi 0:ea8f1bb16afc 269
matsujirushi 0:ea8f1bb16afc 270 PAJ7620U2::PAJ7620U2(I2C* i2c, uint8_t slaveAddress)
matsujirushi 0:ea8f1bb16afc 271 {
matsujirushi 0:ea8f1bb16afc 272 _I2c = i2c;
matsujirushi 0:ea8f1bb16afc 273 _SlaveAddress = slaveAddress;
matsujirushi 0:ea8f1bb16afc 274 _Initialized = false;
matsujirushi 0:ea8f1bb16afc 275 }
matsujirushi 0:ea8f1bb16afc 276
matsujirushi 0:ea8f1bb16afc 277 bool PAJ7620U2::Init()
matsujirushi 0:ea8f1bb16afc 278 {
matsujirushi 0:ea8f1bb16afc 279 // Wake up.
matsujirushi 1:b3125f4faa38 280 wait_us(700);
matsujirushi 0:ea8f1bb16afc 281 RegisterWrite(0xEF, 0); // R_RegBankSel
matsujirushi 1:b3125f4faa38 282 wait_us(400);
matsujirushi 0:ea8f1bb16afc 283
matsujirushi 0:ea8f1bb16afc 284 if (!RegisterWrite(0xEF, 0)) return false; // R_RegBankSel
matsujirushi 0:ea8f1bb16afc 285
matsujirushi 0:ea8f1bb16afc 286 uint16_t partId;
matsujirushi 0:ea8f1bb16afc 287 if (!RegisterRead(0x00, (uint8_t*)&partId, sizeof(partId))) return false; // PartID
matsujirushi 0:ea8f1bb16afc 288
matsujirushi 0:ea8f1bb16afc 289 if (partId == 0x7620) {
matsujirushi 0:ea8f1bb16afc 290 for (int i = 0; i < (int)(sizeof(_InitRegisterArray) / sizeof(_InitRegisterArray[0])); i++) {
matsujirushi 0:ea8f1bb16afc 291 if (!RegisterWrite(_InitRegisterArray[i].Address, _InitRegisterArray[i].Value)) return false;
matsujirushi 0:ea8f1bb16afc 292 }
matsujirushi 0:ea8f1bb16afc 293 }
matsujirushi 0:ea8f1bb16afc 294
matsujirushi 0:ea8f1bb16afc 295 if (!RegisterWrite(0xEF, 0)) return false; // R_RegBankSel
matsujirushi 0:ea8f1bb16afc 296
matsujirushi 0:ea8f1bb16afc 297 _Initialized = true;
matsujirushi 0:ea8f1bb16afc 298
matsujirushi 0:ea8f1bb16afc 299 return true;
matsujirushi 0:ea8f1bb16afc 300 }
matsujirushi 0:ea8f1bb16afc 301
matsujirushi 0:ea8f1bb16afc 302 bool PAJ7620U2::GetGesture(PAJ7620U2::GestureFlag* flag)
matsujirushi 0:ea8f1bb16afc 303 {
matsujirushi 0:ea8f1bb16afc 304 if (!_Initialized) return false;
matsujirushi 0:ea8f1bb16afc 305
matsujirushi 0:ea8f1bb16afc 306 uint16_t data;
matsujirushi 0:ea8f1bb16afc 307 if (!RegisterRead(0x43, (uint8_t*)&data, sizeof(data))) { // IntFlag_1, IntFlag_2
matsujirushi 0:ea8f1bb16afc 308 *flag = GESTURE_NONE;
matsujirushi 0:ea8f1bb16afc 309 return false;
matsujirushi 0:ea8f1bb16afc 310 }
matsujirushi 0:ea8f1bb16afc 311
matsujirushi 0:ea8f1bb16afc 312 *flag = (GestureFlag)data;
matsujirushi 0:ea8f1bb16afc 313
matsujirushi 0:ea8f1bb16afc 314 return true;
matsujirushi 0:ea8f1bb16afc 315 }