#include #include #include "hardware/i2c.h" #include "pico/i2c_slave.h" #include "hardware/irq.h" #include "hardware/spi.h" #include "pico/binary_info.h" #include "pico/multicore.h" #include "hardware/irq.h" #include "hardware/adc.h" #include "hardware/clocks.h" #include "ADRS2040U_i2c.h" static void i2c_slave_handler(i2c_inst_t *i2c, i2c_slave_event_t event) { switch(event) { case I2C_SLAVE_RECEIVE: break; case I2C_SLAVE_REQUEST: break; case I2C_SLAVE_FINISH: break; default: break; } } void i2c_setup(void) { i2c_init(i2c0, 100 * 1000); gpio_set_function(GPIO_SDA0, GPIO_FUNC_I2C); gpio_set_function(GPIO_SCK0, GPIO_FUNC_I2C); // ADRS2040Uでは基板上でプルアップされているので // プルアップを無効化する gpio_disable_pulls(GPIO_SDA0); gpio_disable_pulls(GPIO_SCK0); // プルアップする場合は以下の通り // gpio_pull_up(GPIO_SDA0); // gpio_pull_up(GPIO_SCK0); i2c_slave_init(i2c0, I2C0_SLAVE_ADDR, &i2c_slave_handler); } int main(void) { stdio_init_all(); while (true) { ; } }