updated with more enums and start of the update code

This commit is contained in:
Jake Goodwin 2023-08-31 00:07:55 -07:00
parent 4c0f16578f
commit 4a119100e7
2 changed files with 53 additions and 6 deletions

View File

@ -18,6 +18,8 @@ extern void _test_free(void* const ptr, const char* file, const int line);
#define free(ptr) _test_free(ptr, __FILE__, __LINE__)
#endif // UNIT_TESTING
#define NUM_ACCEL_REGS 6
/*
* ############################
* REGISTER MAP
@ -25,6 +27,20 @@ extern void _test_free(void* const ptr, const char* file, const int line);
*/
enum gy521_map {
accel_xouth = 0x3B,
accel_xoutl,
accel_youth,
accel_youtl,
accel_zouth,
accel_zoutl,
temp_outh,
temp_outl,
gyro_xouth,
gyro_xoutl,
gyro_youth,
gyro_youtl,
gyro_zouth,
gyro_zoutl,
fifo_couth = 0x72,
fifo_contl,
fifo_r_w,
@ -55,6 +71,23 @@ struct gy521_module{
accel_values_struct accel;
};
/*
* ############################
* Helper/Private Functions
* ############################
*/
uint8_t read_register(enum gy521_map reg)
{
return 0;
}
uint8_t write_register(enum gy521_map reg)
{
return 0;
}
/*
* ############################
* Function Definitions
@ -75,6 +108,7 @@ void gy521_free(gy521_module *m)
free(m);
}
_Bool gy521_init(gy521_module *m, uint8_t slave_address) {
if((slave_address != TWI_GY521_ADDR1) && (slave_address != TWI_GY521_ADDR2)) {
m->slave_address = 0x0;
@ -97,12 +131,25 @@ _Bool gy521_init(gy521_module *m, uint8_t slave_address) {
}
_Bool gy521_update_gyro(gy521_module *m)
void gy521_update_gyro(gy521_module *m)
{
return 0;
}
_Bool gy521_update_accel(gy521_module *m)
void gy521_update_accel(gy521_module *m)
{
return 0;
uint8_t read_regs[NUM_ACCEL_REGS] = {accel_xouth, accel_xoutl,
accel_youth, accel_youth,
accel_zouth, accel_zoutl};
/*update individually the structure by communicating with the device.*/
gy521_twi_rx(m->slave_address, read_regs, NUM_ACCEL_REGS);
/*bitshift to reassembly the high/low regs into a single 16bit*/
m->accel.x = (read_regs[0] << 8) | read_regs[1];
m->accel.y = (read_regs[2] << 8) | read_regs[3];
m->accel.z = (read_regs[4] << 8) | read_regs[5];
}

View File

@ -42,8 +42,8 @@ extern void (*gy521_twi_rx)(uint8_t, uint8_t*, uint8_t);
struct gy521_module* gy521_new(void);
_Bool gy521_init(struct gy521_module *m, uint8_t slave_address);
_Bool gy521_update_gyro(struct gy521_module* m);
_Bool gy521_update_accel(struct gy521_module* m);
void gy521_update_gyro(struct gy521_module* m);
void gy521_update_accel(struct gy521_module* m);
void gy521_free(struct gy521_module *m);