Forum: Compiler & IDEs atmega168: PCF8583 am TWI


von Tom M. (tomm) Benutzerseite


Angehängte Dateien:

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:
1
Init...
2
TWI error: start failed!
3
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?

von Tom M. (tomm) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich hab mir angesehen, wie TWIM_Start() arbeitet. Da taucht dieses 
Fragment auf:
1
/*
2
** Send device address
3
*/
4
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
1
#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.

von Tom M. (tomm) Benutzerseite


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:
1
if ( TWIM_Write( 0x00 ) ) {
2
  //Fehlerbehandlung
3
}

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.