- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 3 von 3

Thema: I²C: Empfangspuffer

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.11.2003
    Ort
    Alfeld (50km südl. Hannover)
    Alter
    40
    Beiträge
    237

    I²C: Empfangspuffer

    Anzeige

    Powerstation Test
    Hi,

    ich scheib grad eine I²C Slave Bibliothek für den AtMega8 (in C).
    Funktioniert auch soweit, dass die empfangenen Bytes in
    der Interruptroutine in einen Puffer (32 Byte groß, 1Byte breit)
    geschrieben werden. In der Hauptschleife wird dann eine Funktion
    aufgerufen die die Daten komplett zurückgibt wenn eine
    Übertragung abgeschlossen ist. Das funktioniert bis
    hierhin auch super.

    Probleme bekomme ich nun wenn mehrere Nachrichten
    gesendet werden und in den Puffer geschrieben werden.
    Also ein Master z.B. 3 Befehle gesendet hat und ich den
    Puffer nicht schnell genug auslese.
    Wie trennt ihr solche Nachrichten? Wenn ich z.B. ein extra
    Trennzeichen definiere müsste ich den Puffer auf 16bit
    erweitern da in den Daten die über I²C kommen alle
    1byte Zeichen vorkommen können (z.B. bei Sensordaten).
    Ist zwar noch möglich vom Speicher her, aber
    irgendwie passt es mir nicht soviel Speicher zu "verschwenden".

    Wie lößt ihr solche Sachen? Hab schon daran gedacht das über eine
    verkettete Liste zu lösen, aber malloc auf einen Mikrokontroller
    möcht ich auch vermeiden.

    Vieleicht hat jemand noch Anregungen, irgendwie hängt ich
    da fest.

    mfg
    Thorsten
    Open Minds. Open Sources. Open Future

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Wo eine Nachricht/Datensatz anfängt/aufhört/konsistent ist, etc siehst du doch an deinem Protokoll, das sagt wieviele Daten kommen und welche etc.
    Disclaimer: none. Sue me.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.11.2003
    Ort
    Alfeld (50km südl. Hannover)
    Alter
    40
    Beiträge
    237
    Hm, wahrscheinlich hab ich wohl auch ein kleines Designproblem, Protokoll gibst im
    Moment noch nicht so richtig, hab ein paar Befehle
    mit und ohne Parameter und welche für Sensordaten.

    Dann muss sich wirklich die nachfolgende Funktion
    die die Daten aus dem Puffer ließt darum kümmern
    die Daten auseinanderzuklamüsern, hat sich bei I²C
    nur angeboten da es ein richtiges Stop Signal gibt.
    Werd mal in dieser Richtung schauen.
    Vereinfacht dann auch die ISR.

    mfg
    Thorsten
    Open Minds. Open Sources. Open Future

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen