Hardware Reference
In-Depth Information
137 rc = ioctl(i2c_fd,I2C_RDWR,&msgset);
138 if ( rc < 0 )
139 return −1; /
Failed
/
140
141 data−>stick_x = data−>raw[0];
142 data−>stick_y = data−>raw[1];
143 data−>accel_x = data−>raw[2] << 2;
144 data−>accel_y = data−>raw[3] << 2;
145 data−>accel_z = data−>raw[4] << 2;
146
147 t = data−>raw[5];
148 data−>z_button = t & 1 ? 0 : 1;
149 data−>c_button = t & 2 ? 0 : 1;
150 t >>= 2;
151 data−>accel_x |= t & 3;
152 t >>= 2;
153 data−>accel_y |= t & 3;
154 t >>= 2;
155 data−>accel_z |= t & 3;
156 return 0;
157 }
158
159 /
160
Dump the nunchuk data:
161
/
162 static void
163 dump_data(nunchuk_t
data) {
164 int x;
165
166 printf("Raw nunchuk data : ");
167 for ( x=0; x<6; ++x )
168 printf("[%02X]",data−>raw[x]);
169 putchar('\n');
170
171 printf(".stick_x = %04X (%4u)\n",data−>stick_x,data−>stick_x);
172 printf(".stick_y = %04X (%4u)\n",data−>stick_y,data−>stick_y);
173 printf(".accel_x = %04X (%4u)\n",data−>accel_x,data−>accel_x);
174 printf(".accel_y = %04X (%4u)\n",data−>accel_y,data−>accel_y);
175 printf(".accel_z = %04X (%4u)\n",data−>accel_z,data−>accel_z);
176 printf(".z_button= %d\n",data−>z_button);
177 printf(".c_button= %d\n\n",data−>c_button);
178 }
179
180 /
181
Close the I2C driver :
182
/
Search WWH ::




Custom Search