http://wiki.seeed.cc/Grove-Gesture_v1.0/
PAJ7620U2.cpp@1:b3125f4faa38, 2017-12-19 (annotated)
- 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?
User | Revision | Line number | New 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 | } |