parent
13ea7e7daa
commit
41c4b0ca40
@ -0,0 +1,13 @@
|
||||
This code is made to run on an atmega328p using the library avr-i2c-slave (https://github.com/thegouger/avr-i2c-slave.git)
|
||||
|
||||
I included my avrdude.conf for easy building.
|
||||
|
||||
On Debian you need:
|
||||
avrdude
|
||||
gcc-avr
|
||||
Probably a lot other stuff I forgot.
|
||||
|
||||
Make sure you have the correct fuses, the correct name for you AVR and then run:
|
||||
make
|
||||
sudo make program
|
||||
|
@ -0,0 +1,19 @@
|
||||
#
|
||||
# Makefile:
|
||||
#################################################################################
|
||||
|
||||
|
||||
#DEBUG = -g -O0
|
||||
DEBUG = -O3
|
||||
CC = gcc
|
||||
INCLUDE = -I/usr/local/include
|
||||
CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
||||
|
||||
LDFLAGS = -L/usr/local/lib
|
||||
LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
|
||||
|
||||
# Should not alter anything below this line
|
||||
###############################################################################
|
||||
|
||||
SRC = i2c_challenge.c \
|
||||
|
@ -0,0 +1,3 @@
|
||||
This code needs wiringPi
|
||||
|
||||
Compile it by running make i2c_challenge
|
@ -0,0 +1,65 @@
|
||||
O/*
|
||||
*i2ctest.c
|
||||
* Raspberry Pi I2C test using wiringPi library.
|
||||
*
|
||||
*Copyright (c) Nahid Alam. <nahid.mahfuza.alam@gmail.com>
|
||||
***********************************************************
|
||||
*i2ctest is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* i2ctest is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
***********************************************************
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <wiringPi.h>
|
||||
#include <wiringPiI2C.h>
|
||||
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
int fd;
|
||||
int data;
|
||||
int send=1;
|
||||
wiringPiSetup () ;
|
||||
fd=wiringPiI2CSetup (0x20) ; /*Use i2cdetect command to find your respective device address*/
|
||||
if(fd==-1)
|
||||
{
|
||||
printf("Can't setup the I2C device\n");
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
while(data != 6) {
|
||||
wiringPiI2CWrite(fd, send);
|
||||
data=wiringPiI2CRead(fd);
|
||||
if(data==-1)
|
||||
{
|
||||
printf("No data\n");
|
||||
//return -1;
|
||||
}
|
||||
else if(data == send*3) {
|
||||
printf("Sending challenge");
|
||||
wiringPiI2CWrite(fd, 4);
|
||||
}
|
||||
else if(data == 6) {
|
||||
printf("Read proper response \n");
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
//print data
|
||||
printf("Waiting to send challenge");
|
||||
}
|
||||
printf(" data=%d\n", data);
|
||||
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in new issue