Richard Hoekstra
/
TLS2-Motorcontroller_v2
De motorcontroller van het TLS2 project.
main.cpp
- Committer:
- RichardHoekstra
- Date:
- 2016-11-16
- Revision:
- 1:9e6c4011eef6
- Parent:
- 0:48c10918dabf
- Child:
- 2:b9449fc96691
File content as of revision 1:9e6c4011eef6:
#include "mbed.h" #define motor_addr 0x91 //I2C settings #define SDA D14 #define SCL D15 #define I2C_BUFFER_SIZE 10 I2CSlave slave(SDA,SCL); int main() { slave.address(motor_addr); //Set the correct address for this module char buffer[I2C_BUFFER_SIZE] = {0}; //Create the buffer for I2C bool buffer_changed; while(1) { int i = slave.receive(); switch (i) { case I2CSlave::ReadAddressed: //Received a request to be read //Irrelevant for now break; case I2CSlave::WriteGeneral: //Received a request to be written to slave.read(buffer,I2C_BUFFER_SIZE); buffer_changed = true; break; case I2CSlave::WriteAddressed: //Received a request to be written to a specific location slave.read(buffer,I2C_BUFFER_SIZE); buffer_changed = true; break; } //Do shit depending on the command it received in the first data block if(buffer_changed == true){ int command = buffer[0]; switch(command){ case 0: break; case 1: break; case 2: break; case default: //No command was valid //Create some kind of error? Maybe, blinking led. break; } } //Clear the buffer for the next iteration if(buffer_changed == true){ for(int i=0;i<I2C_BUFFER_SIZE;i++){ buffer[i] = 0; } buffer_changed = false; } } }