mikrocontroller.net

Forum: Compiler & IDEs atmega168: PCF8583 am TWI


Autor: Tom M. (tomm) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Erstmal wünsch ich euch allen ein gutes 2010 und danke an dieser Stelle 
den vielen aktiven Forenteilnehmern, welche sich unermüdlich durch 
Skizzen und Source Codes wühlen und Rat geben. Vielen Dank euch allen! 
:)

Ich habe eben eine kleine Schaltung zusammengesteckt, aber leider tut's 
noch nicht (siehe Skizze). In Abweichung zur Skizze hab ich keinen 
Trimm-Kondi eingebaut. Die LED blinkt im Sekundentakt vor sich hin, das 
hört auf, wenn ich den Crystal rausnehme...

Die TWI Funktionen hab ich aus der Codesammlung (Manfred Langemann); die 
UART Funktionen sind die von Peter Dannegger (angereichert um 
uputs0_pgm). UART läuft, ich seh den Prozi starten:
Init...
TWI error: start failed!
TWI error: start failed!

Ich bleib also schon in Zeile 62 "hängen", beim Aufruf von TWIM_Start(). 
Hab allerdings keine Ahnung weshalb. Oszi hab ich keines, wie könnte ich 
sonst noch debuggen?

Autor: Tom M. (tomm) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab mir angesehen, wie TWIM_Start() arbeitet. Da taucht dieses 
Fragment auf:
/*
** Send device address
*/
TWDR = (Address<<1) + TWIM_Type;

So wird das nix mit meinem Aufruf: Die Device-Adresse des RTC ist gemäss 
Datenblatt 0xa0 für Schreiben, 0xa1 für Lesen. Das R/W Bit wird über 
TWIM_READ bzw. TWIM_WRITE (zugewiesen an TWIM_Type) in die Adresse 
eingebaut.

Ich habe jetzt
#define SlaveAddress (0xA0>>1)
und meine SlaveRead und SlaveWrite defines gelöscht. Damit komme ich 
jetzt  mit der TWIM_Start() erfolgreich durch. Jetzt bleib ich beim 
ersten TWIM_Write() Aufruf hängen.

Autor: Tom M. (tomm) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tom M. schrieb:
> Jetzt bleib ich beim ersten TWIM_Write() Aufruf hängen.

AAAAAAACH da ghört auch kein ! hin, die Logik muss so aussehen:
if ( TWIM_Write( 0x00 ) ) {
  //Fehlerbehandlung
}

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.