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(¶meters); io_parameters_declare(¶meters); onboardsensors_declare_parameters(¶meters); 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."); } }