Modified master architecture.

Adjusted behavior to the new slave device architecture. The program quits as soon as it's done talking to the slave.
master
Davide Bongiovanni 8 years ago
parent b8fb5ef4ab
commit 1a1287f089

@ -21,41 +21,30 @@
#include <wiringPi.h> #include <wiringPi.h>
#include <wiringPiI2C.h> #include <wiringPiI2C.h>
int main (int argc, char *argv[]) #define I2C_ADDR 0x20
{
int fd; uint8_t solve_challenge(uint8_t arg) {
int data; return (arg >> 3) ^ (arg << 3);
int send=1; }
wiringPiSetup () ;
fd=wiringPiI2CSetup (0x20) ; /*Use i2cdetect command to find your respective device address*/ int main(int argc, char *argv[]) {
if(fd==-1)
{ int fd; // Linux filehandle to the i2c device
uint8_t challenge;
uint8_t response;
wiringPiSetup();
fd = wiringPiI2CSetup(I2C_ADDR); // Initialize the i2c protocol with the address
if (fd == -1) { // Failed to contact device
printf("Can't setup the I2C device\n"); printf("Can't setup the I2C device\n");
return -1; return -1;
} }
else
{
delay(1); delay(1);
while(1) {
wiringPiI2CWrite(fd, send);
data=wiringPiI2CRead(fd);
printf(" Received data=%d\n", data);
if(data==-1)
{
printf("No data\n");
//return -1;
}
else if(data == 17) {
printf("Exit code received \n");
break;
}
else if(data != 0) {
printf("Sending response %d\n", data+3 );
wiringPiI2CWrite(fd, data+3);
}
} challenge = wiringPiI2CRead(fd);
} response = solve_challenge(challenge);
wiringPiI2CWrite(response);
return 0; return 0;
} }

Loading…
Cancel
Save