Hallo,
Ich versuche mittels I2C/TWI eine Kommunikation zwischen Arduino Uno und
atmega328p herzustellen. Auf dem Arduino läuft die Wire Library mit
Beispielcode und am atmega die I2C Master library.
Code:
1 | #include <avr/io.h>
|
2 | #include <i2cmaster.h>
|
3 | #ifndef F_CPU
|
4 | #define F_CPU 16000000UL
|
5 | #endif
|
6 | #include <util/delay.h>
|
7 | int main (void) {
|
8 |
|
9 | DDRB |= (1<<PB0);
|
10 |
|
11 | //PORTB = (1 << PB0);
|
12 |
|
13 | i2c_init();
|
14 | while(1){
|
15 | int err = i2c_start( 2 + I2C_WRITE );
|
16 | if ( !err ){
|
17 | i2c_write('0');
|
18 | i2c_stop();
|
19 | _delay_us(500);
|
20 | }else{
|
21 | PORTB = (1 << PB0);
|
22 | i2c_stop();
|
23 | }
|
24 | }
|
25 | return 0;
|
26 | }
|
Es geschieht jedoch nichts und die LED an PB0 geht an.
Woran könnte das liegen?