18 int ee_writeBuffer(
i2c *bus,
int devaddr,
int address,
unsigned char *buffer,
int count)
21 int upaddr = ((address >> 16) & 0x07) << 1;
34 int ee_readBuffer(
i2c *bus,
int devaddr,
int address,
unsigned char *buffer,
int count)
37 int upaddr = ((address >> 16) & 0x07) << 1;
66 unsigned char x16, y16, z16;
73 const unsigned char cont_mode[] = {0x3C, 0x02, 0x00};
78 for(
int i = 0; i < 5; i++)
81 const unsigned char read_dat_reg[] = {0x3C, 0x03};
88 print(
"ack = %d\n", ack);
90 print(
"ack = %d\n", ack);
94 print(
"ack = %d\n", ack);
95 x16 = (data[0] << 8) | data[1];
96 z16 = (data[2] << 8) | data[3];
97 y16 = (data[4] << 8) | data[5];
110 float heading = atan2(x16, y16);
113 heading += 2.0 * 3.14;
116 float headingDegrees = heading * 180/3.14;
119 print(
"%c\nx=%d, y=%d, z=%d%c\n",
121 print(
"heading = %f, \n",
130 char cmd[4] = {0xA0, 0xFF, 0x00, 0xFE};
133 print(
"bytecnt = %d\n", bytecnt);
135 for(
int i = -2; i < 3; i++)
137 ee_readBuffer(&eebus, 0xA0, addr2 + i, buffer, 64);
138 writeHexDigits(termp, addr2 + i, 4);
140 for(n = 0; n < 12; n++)
142 writeHexDigits(termp, buffer[n], 2);
151 sprint(buffer,
"Hello World");
152 ee_writeBuffer(&eebus, 0xA0, addr2, buffer, 64);
153 ee_readBuffer(&eebus, 0xA0, addr2, buffer, 64);
155 for(
int i = -2; i < 3; i++)
157 ee_readBuffer(&eebus, 0xA0, addr2 + i, buffer, 64);
158 writeHexDigits(termp, addr2 + i, 4);
160 for(n = 0; n < 12; n++) {
161 writeHexDigits(termp, buffer[n], 2);
170 for(
int i = -2; i < 3; i++)
172 ee_readBuffer(&eebus, 0xA0, addr1, buffer, 64);
173 writeHexDigits(termp, addr1, 4);
175 for(n = 0; n < 12; n++) {
176 writeHexDigits(termp, buffer[n], 2);
216 ee_readBuffer(&eebus, 0xA0, addr2, buffer, 64);
217 writeHexDigits(termp, addr2, 4);
219 for(n = 0; n < 12; n++) {
220 writeHexDigits(termp, buffer[n], 2);
228 sprint(buffer,
"Hello World");
229 ee_writeBuffer(&eebus, 0xA0, addr2, buffer, 64);
230 ee_readBuffer(&eebus, 0xA0, addr2, buffer, 64);
233 writeHexDigits(termp, addr2, 4);
235 for(n = 0; n < 12; n++) {
236 writeHexDigits(termp, buffer[n], 2);