test program of I2CSlave

Dependencies:   Ping mbed

Fork of CatPotI2CSlavetest by Fumiya Fujisawa

main.cpp

Committer:
lilac0112_1
Date:
2014-12-15
Revision:
1:178963fb9f75
Parent:
0:dcc9cf1071f1

File content as of revision 1:178963fb9f75:

/*
*動作確認済み
*超音波センサーのデータをマスターに送信
*/
#include "mbed.h"
#include "Ping.h"

#define SYSAHBCLKDIV_Val      0x00000001        // Reset: 0x001
#define CLOCK_SETUP           1                  // デフォルト=1
#define SYSPLLCTRL_Val        0x00000023        // デフォルト=23 Reset: 0x000
#define SYSPLLCLKSEL_Val      0x00000001        // デフォルト=0  Reset: 0x000
#define MAINCLKSEL_Val        0x00000003        // デフォルト=3  Reset: 0x000


#define ADDRESS 0xA0
#define DATA_NUM 5

DigitalOut myled(LED1);
I2CSlave Tiny(dp5, dp27);
Ping Sensor(dp1,dp2);
Serial pc(USBTX, USBRX);

int main() {
    
    char Export[DATA_NUM]={0};
    uint8_t cycle=0;
    
    int i;
    
    Tiny.address(ADDRESS);//アドレスの定義
    
    while(1) {
        
        
        Sensor.Send();
        wait_ms(30);
        Export[cycle%DATA_NUM] = Sensor.Read_cm();
        
        cycle++;//配列移動
        
        myled = (Tiny.receive() == I2CSlave::ReadAddressed);//成功すれば点滅
        
        i = Tiny.receive();
        
        switch(i){//変数を介するとうまく動作した.
            
            case I2CSlave::ReadAddressed:
                 Tiny.write(Export, DATA_NUM); // Includes null char
                 break;
            case I2CSlave::WriteGeneral:
                 break;
            case I2CSlave::WriteAddressed:
                 break;
        }
        
    }
}