コード例 #1
0
//! [initialize_i2c]
static void configure_i2c_slave(void)
{
	/* Initialize config structure and software module. */
	//! [init_conf]
	struct i2c_slave_config config_i2c_slave;
	i2c_slave_get_config_defaults(&config_i2c_slave);
	//! [init_conf]
	/* Change address and address_mode. */
	//! [conf_changes]
	config_i2c_slave.address = SLAVE_ADDRESS;
	config_i2c_slave.pin_number_pad0 = PIN_LP_GPIO_14;
	config_i2c_slave.pin_number_pad1 = PIN_LP_GPIO_15;
	config_i2c_slave.pinmux_sel_pad0 = MUX_LP_GPIO_14_MUX4_I2C1_SDA;
	config_i2c_slave.pinmux_sel_pad1 = MUX_LP_GPIO_15_MUX4_I2C1_SCL;
	//! [conf_changes]
	/* Initialize and enable device with config, and enable i2c. */
	//! [init_module]
	while(i2c_slave_init(&i2c_slave_instance, I2C1, &config_i2c_slave)     \
			!= STATUS_OK);
	//! [init_module]
	//! [enable_module]
	i2c_enable(i2c_slave_instance.hw);
	//! [enable_module]
	//! [enable_interurpt]
	i2c_slave_rx_interrupt(i2c_slave_instance.hw, true);
	i2c_slave_tx_interrupt(i2c_slave_instance.hw, true);
	//! [enable_interurpt]
}
コード例 #2
0
ファイル: main.c プロジェクト: Samatthe/Longboard-Lights
// Configure SERCOM channel 4 as I2C slave for VESC communication
void configure_i2c_slave(void)
{	
	/* Create and initialize config_i2c_slave structure */
	struct i2c_slave_config config_i2c_slave;
	i2c_slave_get_config_defaults(&config_i2c_slave);
	/* Change address and address_mode */
	config_i2c_slave.address        = SLAVE_ADDRESS;
	config_i2c_slave.address_mode   = I2C_SLAVE_ADDRESS_MODE_MASK;
	config_i2c_slave.buffer_timeout = SLAVE_TIMEOUT;
	config_i2c_slave.pinmux_pad0 = PINMUX_PB08D_SERCOM4_PAD0;
	config_i2c_slave.pinmux_pad1 = PINMUX_PB09D_SERCOM4_PAD1;
	/* Initialize and enable device with config_i2c_slave */
	i2c_slave_init(&i2c_slave_instance, SERCOM4, &config_i2c_slave);
	i2c_slave_enable(&i2c_slave_instance);
}
コード例 #3
0
//! [initialize_i2c]
void configure_i2c_slave(void)
{
	/* Initialize config structure and module instance */
	//! [init_conf]
	struct i2c_slave_config config_i2c_slave;
	i2c_slave_get_config_defaults(&config_i2c_slave);
	//! [init_conf]
	/* Change address and address_mode */
	//! [conf_changes]
	config_i2c_slave.address      = SLAVE_ADDRESS;
	config_i2c_slave.address_mode = I2C_SLAVE_ADDRESS_MODE_MASK;
	//! [conf_changes]
	/* Initialize and enable device with config */
	//! [init_module]
	i2c_slave_init(&i2c_slave_instance, CONF_I2C_SLAVE_MODULE, &config_i2c_slave);
	//! [init_module]

	//! [enable_module]
	i2c_slave_enable(&i2c_slave_instance);
	//! [enable_module]
}
コード例 #4
0
ファイル: slave_for_unit_test.c プロジェクト: InSoonPark/asf
//! [initialize_i2c]
void configure_i2c_slave(void)
{
	/* Create and initialize config_i2c_slave structure */
	//! [init_conf]
	struct i2c_slave_config config_i2c_slave;
	i2c_slave_get_config_defaults(&config_i2c_slave);
	//! [init_conf]

	/* Change address and address_mode */
	//! [conf_changes]
	config_i2c_slave.address        = SLAVE_ADDRESS;
	config_i2c_slave.address_mode   = I2C_SLAVE_ADDRESS_MODE_MASK;
	config_i2c_slave.buffer_timeout = 1000;
	//! [conf_changes]

	/* Initialize and enable device with config_i2c_slave */
	//! [init_module]
	i2c_slave_init(&i2c_slave_instance, SERCOM2, &config_i2c_slave);
	//! [init_module]

	//! [enable_module]
	i2c_slave_enable(&i2c_slave_instance);
	//! [enable_module]
}