|
@@ -1,6 +1,7 @@
|
|
#include <stdio.h>
|
|
#include <stdio.h>
|
|
#include <pico/stdlib.h>
|
|
#include <pico/stdlib.h>
|
|
#include "hardware/i2c.h"
|
|
#include "hardware/i2c.h"
|
|
|
|
+#include "pico/i2c_slave.h"
|
|
#include "hardware/irq.h"
|
|
#include "hardware/irq.h"
|
|
#include "hardware/spi.h"
|
|
#include "hardware/spi.h"
|
|
#include "pico/binary_info.h"
|
|
#include "pico/binary_info.h"
|
|
@@ -9,6 +10,42 @@
|
|
#include "hardware/adc.h"
|
|
#include "hardware/adc.h"
|
|
#include "hardware/clocks.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)
|
|
int main(void)
|
|
{
|
|
{
|