HoSeung Choi / Mbed 2 deprecated ft_robot1

Dependencies:   mbed step_motor

Committer:
d2_h10s
Date:
Mon Aug 31 15:09:36 2020 +0000
Revision:
1:9b7603b90063
Parent:
0:6cf9362fc1a1
Child:
2:4dd2f26c5648
for

Who changed what in which revision?

UserRevisionLine numberNew contents of line
d2_h10s 0:6cf9362fc1a1 1 #include "mbed.h"
d2_h10s 1:9b7603b90063 2 #include <I2CSlave.h>
d2_h10s 0:6cf9362fc1a1 3 #include "Robot.h"
d2_h10s 0:6cf9362fc1a1 4
d2_h10s 0:6cf9362fc1a1 5 #define L_dir D2
d2_h10s 0:6cf9362fc1a1 6 #define L_step D3
d2_h10s 0:6cf9362fc1a1 7 #define L_enb D4
d2_h10s 0:6cf9362fc1a1 8 #define R_dir D5
d2_h10s 0:6cf9362fc1a1 9 #define R_step D6
d2_h10s 0:6cf9362fc1a1 10 #define R_enb D7
d2_h10s 0:6cf9362fc1a1 11
d2_h10s 1:9b7603b90063 12 #define CMD_NULL 0
d2_h10s 1:9b7603b90063 13 #define CMD_LM_MOVE 1
d2_h10s 1:9b7603b90063 14 #define CMD_RM_MOVE 2
d2_h10s 1:9b7603b90063 15 #define CMD_MOTOR_STOP 3
d2_h10s 1:9b7603b90063 16 #define CMD_ROBOT_MOVE 4
d2_h10s 1:9b7603b90063 17 #define CMD_ROBOT_STOP 5
d2_h10s 1:9b7603b90063 18
d2_h10s 1:9b7603b90063 19 uint8_t device_addr = 0x0A;
d2_h10s 1:9b7603b90063 20 char data[52] = {device_addr, 1, CMD_NULL,};
d2_h10s 1:9b7603b90063 21
d2_h10s 1:9b7603b90063 22 I2CSlave slave(I2C_SDA, I2C_SCL);
d2_h10s 1:9b7603b90063 23 AnalogIn adc_temp(ADC_TEMP);
d2_h10s 1:9b7603b90063 24
d2_h10s 0:6cf9362fc1a1 25 Robot a(L_dir, L_step, L_enb, R_dir, R_step, R_enb);
d2_h10s 0:6cf9362fc1a1 26
d2_h10s 1:9b7603b90063 27 //void writeByte(uint8_t address, uint8_t regAddress, uint8_t data);
d2_h10s 1:9b7603b90063 28 //char readByte(uint8_t address, uint8_t regAddress);
d2_h10s 1:9b7603b90063 29 int main()
d2_h10s 1:9b7603b90063 30 {
d2_h10s 1:9b7603b90063 31 slave.frequency(400000);
d2_h10s 1:9b7603b90063 32 printf("slave started\n");
d2_h10s 1:9b7603b90063 33 slave.address(device_addr);
d2_h10s 1:9b7603b90063 34 uint8_t status = 0;
d2_h10s 0:6cf9362fc1a1 35 while(1){
d2_h10s 1:9b7603b90063 36 status = slave.receive();
d2_h10s 1:9b7603b90063 37 if(status) printf("status: %d\n", status);
d2_h10s 1:9b7603b90063 38 if(status == I2CSlave::WriteAddressed){
d2_h10s 1:9b7603b90063 39 slave.read(data, 52);
d2_h10s 1:9b7603b90063 40 printf("Read from master: %s\n", data);
d2_h10s 0:6cf9362fc1a1 41 }
d2_h10s 0:6cf9362fc1a1 42 }
d2_h10s 0:6cf9362fc1a1 43 }
d2_h10s 0:6cf9362fc1a1 44
d2_h10s 1:9b7603b90063 45 /*void writeByte(uint8_t address, uint8_t regAddress, uint8_t data){
d2_h10s 1:9b7603b90063 46 char data_write[2];
d2_h10s 1:9b7603b90063 47 data_write[0] = regAddress;
d2_h10s 1:9b7603b90063 48 data_write[1] = data;
d2_h10s 1:9b7603b90063 49 i2c.write(address, data_write, 2, 0);
d2_h10s 1:9b7603b90063 50 }
d2_h10s 1:9b7603b90063 51
d2_h10s 1:9b7603b90063 52 char readByte(uint8_t address, uint8_t regAddress){
d2_h10s 1:9b7603b90063 53 char data[1];// 'data' will store the register data
d2_h10s 1:9b7603b90063 54 char data_write[1]; // for assigning register address
d2_h10s 1:9b7603b90063 55 data_write[0] = regAddress;
d2_h10s 1:9b7603b90063 56 i2c.write(address, data_write, 1, 1);// no stop
d2_h10s 1:9b7603b90063 57 i2c.read(address, data, 1, 0);
d2_h10s 1:9b7603b90063 58 return data[0];
d2_h10s 1:9b7603b90063 59 }*/