updated with test of updating the gyro and reading it
This commit is contained in:
parent
48c566501e
commit
bd237b603b
|
@ -128,11 +128,53 @@ static void test_gy521_update_accel(void **sate)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void test_gy521_update_gyro(void **sate)
|
||||||
|
{
|
||||||
|
/*check it reads the gyro registers*/
|
||||||
|
gy521_module *m = gy521_new();
|
||||||
|
reg_addr_arr[0].addr = TWI_GY521_ADDR1;
|
||||||
|
gy521_init(m, TWI_GY521_ADDR1);
|
||||||
|
|
||||||
|
/*Setup the fake gyro values.*/
|
||||||
|
for(uint8_t i = 0; i < 6; i++) {
|
||||||
|
reg_addr_arr[i].value = i * 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Zero the global index for the TWI*/
|
||||||
|
idx = 0;
|
||||||
|
gy521_update_gyro(m);
|
||||||
|
|
||||||
|
/*Ensure the correct registers are read*/
|
||||||
|
_Bool is_correct = 1;
|
||||||
|
assert_true(is_correct);
|
||||||
|
for(uint8_t i = 0; i < 6; i++){
|
||||||
|
/*The starting address of the registers is 67 and goes to 72*/
|
||||||
|
if((67 + i) != reg_addr_arr[i].addr) {
|
||||||
|
is_correct = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assert_true(is_correct);
|
||||||
|
|
||||||
|
/*Check that the values are assembled correctly*/
|
||||||
|
struct gyro_values gyro = gy521_get_gyro(m);
|
||||||
|
|
||||||
|
/*Make sure to bitshift by 8 and recomine the two u8 into a single u16*/
|
||||||
|
assert_true(gyro.x == ((reg_addr_arr[0].value<<8) | reg_addr_arr[1].value));
|
||||||
|
assert_true(gyro.y == ((reg_addr_arr[2].value<<8) | reg_addr_arr[3].value));
|
||||||
|
assert_true(gyro.z == ((reg_addr_arr[4].value<<8) | reg_addr_arr[5].value));
|
||||||
|
|
||||||
|
gy521_free(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
const struct CMUnitTest tests[] = {
|
const struct CMUnitTest tests[] = {
|
||||||
cmocka_unit_test(test_gy521_init),
|
cmocka_unit_test(test_gy521_init),
|
||||||
cmocka_unit_test(test_gy521_update_accel),
|
cmocka_unit_test(test_gy521_update_accel),
|
||||||
|
cmocka_unit_test(test_gy521_update_gyro),
|
||||||
};
|
};
|
||||||
return cmocka_run_group_tests(tests, NULL, NULL);
|
return cmocka_run_group_tests(tests, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue