Alarm setzen im pcf8583

Gast #43499
Lesenswert?

guten morgen bastler,

ich versuche gerade, einen 2313 aus seinem tiefschlaf von einem pcf8583
wecken zu lassen. dass soll über die alarmfunktion des pcf als
interrupt realisiert werden. nun habe ich schon eine weile rumprobiert
und finde aber viele widersprüchliche angaben über die zu setzenden
bits, deshalb hier kurz ein abriss der entsprechenden code-segmente:

zuerst, alarm aktivieren:
I2cwbyte &HA0           'write addres of PCF8583
I2cwbyte &H00           'select control / state register
I2cwbyte &H04           'select enable alarm control register

I2cwbyte &HA0           'write addres of PCF8583
I2cwbyte &H08           'select alarm control register
I2cwbyte &H80           'select alarm interrupt enable

Das war das, was ich in meinem verständniss tun müsste um den
interrupt zu enablen....

damit alles einfach bleibt (ich brauche die uhrzeit nicht wirklich)
setze ich in jedem durchlauf die uhrzeit auf 0.0.:00 zurück

I2cstart                'generate start
I2cwbyte &HA0           'write mode
I2cwbyte 2              'select seconds Register
I2cwbyte 0              'write seconds
I2cwbyte 0              'write minuts
I2cwbyte 0              'write hours
I2cwbyte 0              'write days
I2cwbyte 0          'write months
I2cstop

und dann schreib ich den alarm auf 0 uhr... und 10 sekunden fest

'alarmzeit wird auf +10s gesetzt
I2cstart            'generate start
I2cwbyte &HA0       'write mode
I2cwbyte 10         'select alarm seconds Register
I2cwbyte &H10       'write seconds
I2cwbyte 0          'write minuts
I2cwbyte 0          'write hours
I2cwbyte 0          'write days
I2cwbyte 0          'write months
I2cstop

damit ich in 10 sekunden (oder irgendwann) wieder geweckt werden.
in der int0 service routine setze ich dann nur wieder die neue uhrzeit
und den alarm

============================================================

allein, es will nicht. habe ich noch ein doofes bit vergessen????
mein i2c bus geht, ich kann das 1Hz signal (am IRQ) an- und
abschalten.....

hat jemand vielleicht eine idee????

gruss jack
Gast #43500
Lesenswert?

Hi,

Tobias und ich haben mit dem gleichen Chip gekaempft. Im Anhang ein
funktionierender Code. Bei mir zaehlt er im 2 sec takt ... Ich meine es
liegt daran das ich kein Kondensator am quarz habe... Sonst
funktioniert alles.


Das Programm ist fuer Bascom.
Ich gebe keine Garantie fuer irgendwelche Fehler.
Mfg

Dirk
Angehängte Dateien:
Gast #43503
Lesenswert?

Hallo Leute,

ich verwende den PCF8583 zum auslesen eines Zeitstempels für meine
Daten nun wollte ich den Interruptausgang INT noch nutzen,dass z.B.alle
5 Sekunden ein Interrupt ausgelöst wird.
Habe die Register schon auf einige Arten beschrieben jedoch am INT tut
sich nichts.
Kann mir jemand sagen mit welchen Werte ich in die Register schreiben
muss also in das control/status und alarm control Register.
Ich habe einige Werte Probiert aber ohne Erfolg hier mal die die ich
denke die richtig sind.
Control Status = 0x04(00000100) und Alarm Control = 0x83(10000011).
Ich hoffe einer hat sich schon Mal damit beschäftigt und kann mir
weiterhelfen.

Gruß

TOM

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren