Forum: Compiler & IDEs I2C mit Procyon


von gckoe (Gast)


Lesenswert?

Hi

Ich habe ein Problem. Ich möchte zwei atmega32 mit der I2C-Lib von 
Procyon miteinander kommunizieren lassen. Ich verwende die I2C-Lib die 
die AVR-Hardware zur Kommunikation verwendet.
An einem atmega hängen ein paar Sensoren, am anderen ein Display. Jetzt 
möchte ich die Sensorwerte über I2C an den Display übertragen. Der 
atmega mit den Sensoren soll master sein und die Daten an den anderen 
senden. Dafür gibts ja die Funktion
1
i2cMasterSend(u08 deviceAddr, u08 length, u08 *data);
. Der atmega32 soll einfach immer das Anzeigen, was ihm vom Master 
gesendet wird. Ich verstehe aber nicht ganz wie ich das ganze 
programmieren muss, dass der das alles anzeigt
Wie sag ich dem slave, dass er alles Anzeigt was ihm zugeschickt wird?
Dazu weiss ich auch nicht genau, mit was ich in der Funktion 
i2cMasterSend einsetzen muss für length.

Vielen dank
gckoe

von gckoe (Gast)


Lesenswert?

Okee, ev. ists am falschen Ort dass so wenige Antworten. Ich schreib 
selber mal meine neusten Erkenntnisse dazu auf:
Ich kann jetzt daten übertragen, es funktioniert so einfach wie ich mir 
gedacht habe, nur einer der beiden mega32 ist im Eimer :(
Ich habe jetzt einfach beim slave in der Variablen unsigned char 
localBuffer das, was übertragen werden soll, auf dem master läuft 
folgendes Programm:
1
i2cMasterReceive(TARGET_ADDR, 10, localBuffer);
2
  for(i=0; i<10; i++)
3
  {
4
    lcd_putc(localBuffer[i]);
5
  }

Aber es gibt noch ein Problem:
Ich habe beim Master diverse Messwerte von den Sensoren, und die müssen 
alle in den localBuffer kommen. Ich muss also int und float in einen 
localBuffer bringen. Wie macht man sowas?
Und wie reihe ich verschiedene Textstücke und Variablen so aneinander 
dass es wie eine Variable wird?
Also localBuffer = Text1-Variableninhalt1-Text2-Variableninhalt2;

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.