Forum: Mikrocontroller und Digitale Elektronik Alarm setzen im pcf8583


von Jack (Gast)


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

von Dirk (Gast)


Angehängte Dateien:

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

von Jack (Gast)


Lesenswert?

Hallo Ihr,

vielen Dank schaue mir den code mal am wochenende an und
teste das alles und lasse euch mal wissen wie es ausschaut...


vielen dank noch mal

jack

von Gast (Gast)


Lesenswert?

In dem Code fehlt noch ein Overlay! Hier in der dritten Zeile... :-)


Declare Sub Gettime()


Dim Tm(5) As Byte At &H60             OVERLAY!!!
Dim I As Byte , Temp As Byte

von Tom (Gast)


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

von Tom (Gast)


Lesenswert?

Hat hier wirlich keiner eine Ahnung????????????????

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.