--- /dev/null
+#include <avr/interrupt.h>
+#include <util/twi.h>
+
+#include "Utils/StdTypes.h"
+#include "HAL/Abstract/II2C.h"
+#include "AVR/AvrI2C.h"
+
+#ifndef F_CPU
+#define F_CPU 16000000
+#endif
+#define SCL_CLOCK 50000
+
+void AvrI2C::init()
+{
+ uint8_t twst;
+ TWSR = 0; // no prescaler
+ TWBR = ((F_CPU/SCL_CLOCK)-16)/2;
+ TWCR = (1<<(TWINT))|(1<<TWSTA )|(1<<TWEN);
+ printf("TWCR 0x%x \n",TWCR);
+ while( !( TWCR & (1<< TWINT) ) ) ;
+ printf(" Start condition has been transmitted \n");
+ if( (TWSR&0xF8) != TW_START){
+ printf(" Error \n");
+ }
+ // Setting Address
+ TWDR = 0x1C;
+ // cleating TWCR
+ TWCR = (1<<TWINT) |(1<<TWEN);
+
+ while ( !(TWRC & (1<<TWINT))) ;
+ if ((TWSR & 0xF8) != TW_MT_SLA_ACK)
+ {
+ printf(" Error at TWSR 0x%x\n", TWSR); // here is the problem !!!!!!!!! TWSR value should be 0x18
+ return;
+ }
+}
cmake -DCMAKE_TOOLCHAIN_FILE=/home/aebersol/Devs/avr/rules/gcc-avr-generic.cmake ../
+On Windows :
+cmake
+-DCMAKE_TOOLCHAIN_FILE=/home/aebersol/Devs/avr/rules/gcc-avr-generic.cmake
+-DCMAKE_MAKE_PROGRAM=c:\msys64\usr\bin\make.exe
+-G "MSYS64 Makefiles" ../
+
Flashing instruction
--------------------
--- /dev/null
+
+SET PATH=%PATH%;C:\Tools\avr8-gnu-toolchain-3.7.0.1796-win32.any.x86_64\avr8-gnu-toolchain-win32_x86_64\bin
+SET PATH=%PATH%;C:\Program Files\CMake\bin
+SET PATH=%PATH%;C:\msys64\usr\bin
+
+SET AVR_FIND_ROOT_PATH=C:\Tools\avr8-gnu-toolchain-3.7.0.1796-win32.any.x86_64\avr8-gnu-toolchain-win32_x86_64\