HoSeung Choi / Mbed 2 deprecated ft_robot1

Dependencies:   mbed step_motor

main.cpp

Committer:
d2_h10s
Date:
2020-08-31
Revision:
1:9b7603b90063
Parent:
0:6cf9362fc1a1
Child:
2:4dd2f26c5648

File content as of revision 1:9b7603b90063:

#include "mbed.h"
#include <I2CSlave.h>
#include "Robot.h"

#define L_dir D2
#define L_step D3
#define L_enb D4
#define R_dir D5
#define R_step D6
#define R_enb D7

#define CMD_NULL 0
#define CMD_LM_MOVE 1
#define CMD_RM_MOVE 2
#define CMD_MOTOR_STOP 3
#define CMD_ROBOT_MOVE 4
#define CMD_ROBOT_STOP 5

uint8_t device_addr = 0x0A;
char data[52] = {device_addr, 1, CMD_NULL,};

I2CSlave slave(I2C_SDA, I2C_SCL);
AnalogIn adc_temp(ADC_TEMP);

Robot a(L_dir, L_step, L_enb, R_dir, R_step, R_enb);

//void writeByte(uint8_t address, uint8_t regAddress, uint8_t data);
//char readByte(uint8_t address, uint8_t regAddress);
int main()
{
    slave.frequency(400000);
    printf("slave started\n");
    slave.address(device_addr);
    uint8_t status = 0;
    while(1){
        status = slave.receive();
        if(status) printf("status: %d\n", status);
        if(status == I2CSlave::WriteAddressed){
            slave.read(data, 52);
            printf("Read from master: %s\n", data);
        }
    }
}

/*void writeByte(uint8_t address, uint8_t regAddress, uint8_t data){
    char data_write[2];
    data_write[0] = regAddress;
    data_write[1] = data;
    i2c.write(address, data_write, 2, 0);
}

char readByte(uint8_t address, uint8_t regAddress){
    char data[1];// 'data' will store the register data
    char data_write[1]; // for assigning register address
    data_write[0] = regAddress;
    i2c.write(address, data_write, 1, 1);// no stop
    i2c.read(address, data, 1, 0);
    return data[0];
}*/