static int
yas_init(void)
{
    uint8_t id;

    if (module.initialized)
        return YAS_ERROR_INITIALIZE;
    module.cbk.usleep(YAS_STARTUP_TIME);
    if (module.cbk.device_open(YAS_TYPE_ACC) < 0)
        return YAS_ERROR_DEVICE_COMMUNICATION;
    if (yas_read_reg(YAS_BGW_CHIPID, &id) < 0) {
        module.cbk.device_close(YAS_TYPE_ACC);
        return YAS_ERROR_DEVICE_COMMUNICATION;
    }
    if (id != YAS_BGW_CHIPID_VAL) {
        module.cbk.device_close(YAS_TYPE_ACC);
        return YAS_ERROR_CHIP_ID;
    }
    module.enable = 0;
    module.delay = YAS_DEFAULT_SENSOR_DELAY;
    module.position = YAS_DEFAULT_POSITION;
    yas_set_sd(module.delay);
    yas_power_down();
    module.cbk.device_close(YAS_TYPE_ACC);
    module.initialized = 1;
    return YAS_NO_ERROR;
}
static int
yas_set_delay(int delay)
{
    if (!module.initialized)
        return YAS_ERROR_INITIALIZE;
    if (delay < 0)
        return YAS_ERROR_ARG;
    module.delay = delay;
    yas_set_sd(delay);
    if (!module.enable)
        return YAS_NO_ERROR;
    return yas_power_up();
}
Ejemplo n.º 3
0
static int
yas_set_delay(int delay)
{
	if (!module.initialized)
		return YAS_ERROR_INITIALIZE;
	if (delay < 0)
		return YAS_ERROR_ARG;
	module.delay = delay;
	yas_set_sd(delay);
	if (!module.enable)
		return YAS_NO_ERROR;
	if (yas_write_reg(YAS_PMU_LPW, module.lpw) < 0)
		return YAS_ERROR_DEVICE_COMMUNICATION;
	return YAS_NO_ERROR;
}