Forum: Compiler & IDEs PCF8583 Problem


von semicolon (Gast)


Lesenswert?

Hallo

Ich sitzte seit einer ganzen Woche an der RTC und komme einfach nicht 
weiter. Ich möchte sie nur als Timer verwenden. Zum Testen wäre es super 
wenn ich mal nach 10 Sekunden einen Interrupt auslösen kann, der mir am 
AVR Controller ein LED löscht.

Obwohl ich folgenden Code verwende:

#define I2C_Write 0
#define I2C_Read 1

static unsigned char Control_Status_Register_addr = 0x00;
static unsigned char Alarm_Control_Register_addr = 0x08;
static unsigned char Alarm_Timer_Location_addr = 0x0F;
static unsigned char Timer_Location_addr = 0x07;
static unsigned char RTC_sla_addr = 0x50;

//Alarm Interrupt Enable, Timer Alarm Enable, Timer function seconds
  i2c_start(RTC_sla_addr+I2C_Write);
  i2c_write(Alarm_Control_Register_addr);
  i2c_write(0x4A);
  i2c_stop();

  //Alarm enabel in Control/status register wird gesetzt
  i2c_start(RTC_sla_addr+I2C_Write);
  i2c_write(Control_Status_Register_addr);
  i2c_write(0x04);
  i2c_stop();

  //Timer auf 10 Sekunden stellen
  i2c_start(RTC_sla_addr+I2C_Write);
  i2c_write(Timer_Location_addr);
  i2c_write(0x84);
  i2c_stop();

Eigentlich sollte es so richtig sein oder hat jemand einen Fehler 
entdeckt.

Aber anstelle das nach 10 Sekunden der Interrupt Pin der PCF8583 auf Low 
gezogen wird, toggelt dieser im Sekundentakt vor sich hin, obwohl ich 
ein Timer konfiguriert habe. Er tut einfach so wie ihn das gar nicht 
stören würde.

Was mache ich falsch an dem scheiss Ding?

von holm (Gast)


Lesenswert?

IMHO solltest Du vor Beschreiben der Register im Controlregister mit bit 
7
den Laden anhalten...

Gruß,

Holm

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.