Пример #1
0
static void io_setup(void)
{
    SerialConfig uart_config = { SERIAL_DEFAULT_BITRATE, 0,
                                 USART_CR2_STOP1_BITS, 0 };
    uart_config.speed = parameter_integer_get(&uart_conn2_baud);
    sdStart(&UART_CONN2, &uart_config);
    uart_config.speed = parameter_integer_get(&uart_conn3_baud);
    sdStart(&UART_CONN3, &uart_config);
    uart_config.speed = parameter_integer_get(&uart_conn4_baud);
    sdStart(&UART_CONN4, &uart_config);

    analog_configure_conn_3(); // use CONN 3 for as ADC input

    // uart_config.speed = parameter_integer_get(&uart_conn_i2c_baud);
    // sdStart(&UART_CONN_I2C, &uart_config);
    const I2CConfig i2c_cfg = {
        .op_mode = OPMODE_I2C,
        .clock_speed = 400000,
        .duty_cycle = FAST_DUTY_CYCLE_2
    };
    i2cStart(&I2C_CONN, &i2c_cfg);
}


static void services_init(void)
{
    service_parameters_declare(&parameters);
    io_parameters_declare(&parameters);
    onboardsensors_declare_parameters(&parameters);
    datagram_message_init();
}
static void AsebaNative__system_settings_read(AsebaVMState *vm)
{
    uint16 address = vm->variables[AsebaNativePopArg(vm)];
    uint16 destidx = AsebaNativePopArg(vm);
    if (address < SETTINGS_COUNT) {
        vm->variables[destidx] = parameter_integer_get(&aseba_settings[address]);
    } else {
        AsebaVMEmitNodeSpecificError(vm, "Invalid settings address.");
    }
}