main.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include <stdio.h>
  2. #include <pico/stdlib.h>
  3. #include "hardware/i2c.h"
  4. #include "pico/i2c_slave.h"
  5. #include "hardware/irq.h"
  6. #include "hardware/spi.h"
  7. #include "pico/binary_info.h"
  8. #include "pico/multicore.h"
  9. #include "hardware/irq.h"
  10. #include "hardware/adc.h"
  11. #include "hardware/clocks.h"
  12. #include "ADRS2040U_i2c.h"
  13. static void i2c_slave_handler(i2c_inst_t *i2c, i2c_slave_event_t event)
  14. {
  15. switch(event) {
  16. case I2C_SLAVE_RECEIVE:
  17. break;
  18. case I2C_SLAVE_REQUEST:
  19. break;
  20. case I2C_SLAVE_FINISH:
  21. break;
  22. default:
  23. break;
  24. }
  25. }
  26. void i2c_setup(void)
  27. {
  28. i2c_init(i2c0, 100 * 1000);
  29. gpio_set_function(GPIO_SDA0, GPIO_FUNC_I2C);
  30. gpio_set_function(GPIO_SCK0, GPIO_FUNC_I2C);
  31. // ADRS2040Uでは基板上でプルアップされているので
  32. // プルアップを無効化する
  33. gpio_disable_pulls(GPIO_SDA0);
  34. gpio_disable_pulls(GPIO_SCK0);
  35. // プルアップする場合は以下の通り
  36. // gpio_pull_up(GPIO_SDA0);
  37. // gpio_pull_up(GPIO_SCK0);
  38. i2c_slave_init(i2c0, I2C0_SLAVE_ADDR, &i2c_slave_handler);
  39. }
  40. int main(void)
  41. {
  42. stdio_init_all();
  43. while (true)
  44. {
  45. ;
  46. }
  47. }