if("${BUILD_TARGET}" STREQUAL "atmega328p")
include(${CMAKE_CURRENT_SOURCE_DIR}/rules/target-atmega328p.cmake)
elseif ("${BUILD_TARGET}" STREQUAL "atmega32u4")
- include(${CMAKE_CURRENT_SOURCE_DIR}/rules/target-atmega328p.cmake)
+ include(${CMAKE_CURRENT_SOURCE_DIR}/rules/target-atmega32u4.cmake)
elseif ("${BUILD_TARGET}" STREQUAL "stm32g030")
include(${CMAKE_CURRENT_SOURCE_DIR}/rules/target-stm32g030.cmake)
else()
#define START
#define MT_SLA_ACK
+#if defined (__AVR_ATmega32U4__)
+#define TW_SDA_PIN PORTD1
+#define TW_SCL_PIN PORTD0
+#else
#define TW_SDA_PIN PORTC4
#define TW_SCL_PIN PORTC5
-
+#endif
#define I2C_ERROR 0
#define I2C_SUCCESS 1
//TWBR = ((F_CPU/SCL_CLOCK)-16)/2;
// 16Mhz / (16 + 2*12*1) = 400Khz
TWBR = 12;
+#if defined (__AVR_ATmega32U4__)
+ PRR0 &= ~(1<<PRTWI);
+#else
PRR &= ~(1<<PRTWI);
+#endif
DDRC |= (1<<TW_SDA_PIN) | (1 <<TW_SCL_PIN);
// Enable Pull UP
PORTC |= (1<<TW_SDA_PIN) | (1 <<TW_SCL_PIN);
--- /dev/null
+##########################################################################
+# tools to beused for programming the AVR
+##########################################################################
+set(AVR_UPLOADTOOL avrdude CACHE STRING "AVR MCU Programmer ")
+set(AVR_PROGRAMMER arduino)
+set(AVR_UPLOADTOOL_PORT CACHE STRING "AVRdude upload port")
+set(AVR_UPLOADTOOL_BAUDRATE 57600)
+
+##########################################################################
+# AVR and fuses needs to be set
+##########################################################################
+set(AVR_MCU atmega32u4 CACHE STRING "AVR MCU type choose between atmega32_p or atmega32u4 atmega328p")
+set(AVR_H_FUSE 0xd9)
+set(AVR_L_FUSE 0xc3)
+
+### END TOOLCHAIN SETUP AREA #############################################
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/rules/gcc-avr-generic.cmake)
+
+PROJECT(tinyapp)
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/rules/gcc-avr-common.cmake)
+