AVR I²C ATmega 88 (Salve) mit Raspberry PI (Master) Probleme beim µC

OP #3123169
Lesenswert?

Hallo Leute,


ich habe einen ATmega als Slave und einen Raspberry (RPI)  als Master. 
Jedoch klappt die Kommunikation noch nicht so wier ich möchte!!!

Das Programm für den (RPI) funktionier einigermassen.
zum Test habe ich nur mal in einer Schleife die Buffer hochzählen 
lassen.

Programm des RPI befindet sich aufgrund der Größe im Anhang.

Der Ablauf ist in einer Schleife das ich bestimmte Buffer um 1 
Hochzähle--> dem µC sende --> 2 sec warte --> vom µC empfange --> und 
die Werte ausgebe.

mit auskommentierte Readfunktion
1
   
2
  // i2c_read(SLAVE_ADDRESS , I2C_BUFFER_SIZE , buffer);

funktioniert das Programm wie es soll.

Jedoch mit dem Lesen vom µC funktioniert es nicht!!

 _*JETZT_MEINE_EIGENTLICHE_FRAGE_!*_

Wie muss ich den µC Configurieren damit er die Werte entgegennimmt 
speichert und ich dann diese wieder mit dem RPI richtig abruffen kann?

Meine erster Versuch dazu sieht folgender massen aus!
1
#include "twislave.h"   //Biblotek aus dem Internet welche die twi. h verwendet! 
2
#include <avr/io.h>
3
#include <avr/interrupt.h>
4
#include <util/twi.h>
5
#include <avr/pgmspace.h>
6

7
#define SLAVE_ADRESSE 0x10   // I2C Adresse !! Für Raspberry 
8

9
int main (void) 
10
{
11

12
TWAR |= (1<<TWA4) | (1<<TWGCE);  //Adresse Setzen mitteles TWA1 & TWA3 == 0x10  
13
TWCR |= (1<<TWEA) | (1<<TWEN);  // µC als  Slave definieren
14
init_twi_slave(SLAVE_ADRESSE);
15
sei(); //Interrupts einschaltem 
16
}
17

18

19
return 0; 
20
}
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren