mikrocontroller.net

Forum: Compiler & IDEs I2C Problem (Anfänger )


Autor: meddins (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche seit kurzem mich mit I2C auseinanderzusetzten. Leider komme 
ich damit im Moment nicht weiter. Ich benutzte einen Atmel Atmega 128 
und will über ihn ein LCD ansteuern (Adresse 0x10). Das ganze läuft in 
einer Software umgebung ab. Mein Code bleibt aber hängen, wenn er auf 
das Ende der Übertragung von START wartet. Ich habe aber keine Ahnung 
warum.
Hier ein kleiner Ausschnitt aus dem source an dieser Stelle.

Initialisieren
PIND |=  (1<< 0) | (1<< 1);
PORTD |= (1<< 0) | (1<< 1);  // Interne Pull-Up fuer SDA/SCL
TWSR = 0;      //Kein Prescaler
TWBR = 84;                      //Setzen der Baudrate (eigentlich 84,16 aber abgerundet)  

Problem tritt wie gesagt an der while schleife auf
uint8_t   twst;

// send START condition
TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);

// wait until transmission completed
while(!(TWCR & (1<<TWINT)));

Im Anhang ist auch mein kompletter Source, wenn das hier nicht ausreicht 
:)

Gruß,
meddins

Autor: Markus ---- (mrmccrash)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du nur die Internen Pull-Up für I2C in Betrieb? Die reichen nicht 
aus! du musst extern noch jeweils 4k7 nach VCC anschließen.

In den Code müsste ich mich jetzt erst reinlesen...

_.-=: MFG :=-._

Autor: meddins (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

das ganze läuft als eine Simulation in AVR Studio und hapsim. Der Aufbau 
wurde vorgegeben, müsste also stimmen. Sind die internen Pullups so 
richtig gesetzt?

Gruß meddins

Autor: meddins (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
also das Problem hat sich vorerst gelöst. Es lag am AVR Studio 
Simulator. Nachdem ich einen anderen gewählt hatte ging es komischer 
weise.

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.