WORKS

Dependencies:   MAX44000 PWM_Tone_Library nexpaq_mdk

Fork of LED_Demo by Maxim nexpaq

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "test_env.h"
00003 
00004 #if !DEVICE_I2CSLAVE
00005   #error [NOT_SUPPORTED] I2C Slave is not supported
00006 #endif
00007 
00008 #define SIZE (10)
00009 #define ADDR (0x90)
00010 
00011 #if defined(TARGET_KL25Z)
00012 I2CSlave slave(PTE0, PTE1);
00013 #elif defined(TARGET_LPC4088)
00014 I2CSlave slave(p9, p10);
00015 #elif defined(TARGET_SAMR21G18A)
00016 I2CSlave slave(PA16, PA17);
00017 #elif defined(TARGET_SAMD21J18A) || defined(TARGET_SAMD21G18A) || defined(TARGET_SAML21J18A)
00018 I2CSlave slave(PA08, PA09);
00019 #elif defined(TARGET_FF_ARDUINO)
00020 I2CSlave slave(I2C_SDA, I2C_SCL);
00021 #elif defined(TARGET_SAMG55J19)
00022 I2CSlave slave(PA10, PA09);
00023 #else
00024 I2CSlave slave(p28, p27);
00025 #endif
00026 
00027  int main() {
00028      char buf[SIZE];
00029 
00030      slave.address(ADDR);
00031 
00032      while (1) {
00033          int i = slave.receive();
00034          switch (i) {
00035              case I2CSlave::ReadAddressed:
00036                  slave.write(buf, SIZE);
00037                  for(int i = 0; i < SIZE; i++){
00038                 }
00039                  break;
00040              case I2CSlave::WriteAddressed:
00041                  slave.read(buf, SIZE);
00042                  for(int i = 0; i < SIZE; i++){
00043                     buf[i]++;
00044                 }
00045                  break;
00046          }
00047      }
00048  }