Commit f6972a43 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

configurable i2c bitrate on arduino nano

parent 7343085d
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -25,8 +25,9 @@
void loop(void)
{
#ifdef DRIVER_LM75
	kout.printf_float(lm75.getTemp());
	kout << endl;
	//kout.printf_float(lm75.getTemp());
	//kout << endl;
	lm75.setOS(64);
#endif
#ifdef DRIVER_AM2320
	am2320.read();
+4 −0
Original line number Diff line number Diff line
@@ -32,6 +32,10 @@ ifneq ($(findstring stdin,${arch_drivers}), )
	TARGETS += src/arch/arduino-nano/driver/stdin.cc
endif

ifneq (${i2c_freq}, )
	COMMON_FLAGS += -DF_I2C=${i2c_freq}
endif

OBJECTS = ${TARGETS:.cc=.o}

.cc.o:
+5 −1
Original line number Diff line number Diff line
@@ -3,6 +3,10 @@
#include <avr/io.h>
#include <avr/interrupt.h>

#ifndef F_I2C
#define F_I2C 100000UL
#endif

inline void await_twint(unsigned char twcr_values)
{
	TWCR = twcr_values | _BV(TWINT) | _BV(TWIE);
@@ -99,7 +103,7 @@ static signed char i2c_receive(uint8_t len, uint8_t *data)
signed char I2C::setup()
{
	TWSR = 0;
	TWBR = ((F_CPU / 100000UL) - 16) / 2;
	TWBR = ((F_CPU / F_I2C) - 16) / 2;

	return 0;
}