hEvent_t I2C_Init(hardware_bit_t* i2c_interrupt, REGISTER i2c_con, REGISTER i2c_stat, REGISTER i2c_trn, REGISTER i2c_rcv, I2C_callbackFunc resetCallback) {

    I2C_INTERRUPT = i2c_interrupt;
    I2C_CON = i2c_con;
    I2C_STAT = i2c_stat;
    I2C_TRN = i2c_trn;
    I2C_RCV = i2c_rcv;
    res_Callback = resetCallback;
    /// Register module
    hModule_t i2c_module = register_module(&_MODULE_I2C);
    /// Register event
    I2C_service_handle = register_event_p(i2c_module, &serviceI2C, EVENT_PRIORITY_LOW);
    
    I2C_load();
    return I2C_service_handle;
}
Esempio n. 2
0
void mavlink_init(void)
{
	int16_t index;

	udb_init_USART(&mavlink_callback_get_byte_to_send, &mavlink_callback_received_byte);
	udb_serial_set_rate(MAVLINK_BAUD);
	mavlink_process_message_handle = register_event_p(&handleMessage, EVENT_PRIORITY_MEDIUM);
	mavlink_system.sysid = MAVLINK_SYSID; // System ID, 1-255, ID of your Plane for GCS
	mavlink_system.compid = 1; // Component/Subsystem ID,  (1-255) MatrixPilot on UDB is component 1.

	// Fill stream rates array with zeros to default all streams off;
	for (index = 0; index < MAV_DATA_STREAM_ENUM_END; index++)
		streamRates[index] = 0;

	// QGroundControl GCS lets user send message to increase stream rate
	streamRates[MAV_DATA_STREAM_RC_CHANNELS] = MAVLINK_RATE_RC_CHAN;
	streamRates[MAV_DATA_STREAM_RAW_SENSORS] = MAVLINK_RATE_RAW_SENSORS;
	streamRates[MAV_DATA_STREAM_POSITION]    = MAVLINK_RATE_POSITION;
	streamRates[MAV_DATA_STREAM_EXTRA1]      = MAVLINK_RATE_SUE;
	streamRates[MAV_DATA_STREAM_EXTRA2]      = MAVLINK_RATE_POSITION_SENSORS;
}
Esempio n. 3
0
uint16_t register_event(void(*event_callback)(void))
{
	return register_event_p(event_callback, EVENT_PRIORITY_MEDIUM);
}