www.mikrocontroller.net

Forum: Compiler & IDEs I2C mit AVR-GCC :-(


Autor: Andreas Böhme (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

  ich benutze die I2C Routinen von
http://www.mysunrise.ch/users/pfleury/avr-software.html. Klappt auch
teilweise, aber...

Jeder 2. Leseversuch geht in die hose! Da kommt nur FF raus!

---------------------- S C H N I P P -----------------

int main(void) {

 outp(0xFF, DDRB);
 outp(0xFF, DDRD);
 i2c_init();
 outp(0x00,TCNT0); /* start value */
 outp(0x03,TCCR0);
 sbi(TIMSK,TOIE0);
 sei();
    while(1) {
     if (!read_ok) {
       i2c_start_wait(I2CADR + I2C_WRITE);
       i2c_write(0x00);
       i2c_rep_start(I2CADR + I2C_READ);
// nun die nicht benutzten Adressen durchzählen
       for (unsigned int i=0; i < eeprom_cnt; i++)
         i2c_readAck();
// 5 Bytes einlesen
     for (unsigned int i=0; i < 5; i++)
        nextbytes[i] = i2c_readAck();
     i2c_stop();
// eeprom zähler um 5 erhöhen
      eeprom_cnt = eeprom_cnt + 5;
// flag auf "gelesen" setzen.
     read_ok = 1;
  }
 }
}


Das read_ok wird von einer Interrupt routine wieder auf 0 gesetzt und
dann werden die weiteren 5 bytes eingelesen. Wie Gesagt, bytes 0-4
klappen einwandfrei, 5 - 9 ist ff und dass klappen die nächsten 5
wieder ?!??! Ich steh vor einem Rätsel! Das EEPROM ist ein 24C16.

Gibt es noch eine Methode, das EEPROM direkt zu adressieren, das
durchzählen ist mir etwas zeitaufwendig.

Danke...
  Andreas

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.