Ejemplo n.º 1
0
device_gyro::device_gyro()
{
    // check device type
    uint8_t device = i2c.request(L3GD20_ADDRESS, WHO_AM_I);
    if (device != L3GD20_ID)
        throw std::runtime_error("unknown device, expected L3GD20, but received " + to_string(device));

    write_to_reg(L3G_CTRL_REG1, CTRL_REG1_VALUE);
    write_to_reg(L3G_CTRL_REG4, CTRL_REG4_VALUE);
}
Ejemplo n.º 2
0
void		st_inst(t_core *core, t_proc *proc, int inst)
{
	unsigned char	arg;
	unsigned char	codage;
	unsigned int	adr;
	unsigned int	reg_nb;

	if (!(add_cd_check_valid(core, proc, inst)))
		return ;
	codage = core->map[(proc->pc + 1) % MEM_SIZE];
	reg_nb = fit_reg(read_arg(core->map, proc->pc, inst, 1));
	arg = what_arg(codage, 2);
	if (arg == C_IND)
	{
		adr = pc_pos(proc->pc + read_arg(core->map, proc->pc, inst, 2));
		write_to_map(core->map, proc->reg[reg_nb], adr);
		core->vis_flag == 1 ? replace_field(adr, proc->colour_nbr, core) : 0;
	}
	else if (arg == C_REG)
		write_to_reg(proc->reg[reg_nb],
					read_arg(core->map, proc->pc, inst, 2), proc);
	proc->prev_pc = proc->pc;
	proc->pc = pc_pos(proc->pc + inst_size(inst, codage));
	proc->cd = -1;
}