Hi!
Derzeit versuche ich gerade ein externes Timer-Modul (PCF8583) mit dem
AT90S4433 anzusteuern. Ich programmiere in Bascom und das Programm
clock.bas läuft auch schon. Wie oder mit welchem Befehl erreiche ich
aber, dass der PCF8583 zu einer bestimmten Zeit den Interrupt
schaltet?
Mit diesem Timer Modul möchte ich später einen ganzen Schaltkreis
einmal täglich "aufwecken".
Kann mir da jemand helfen?
mfG
Hi,
das hab ich gefunden:
orginal:
Sub Settime(ho As Byte , M As Byte , S As Byte)
S = Makebcd(s) ' seconds
M = Makebcd(m) ' minutes
Ho = Makebcd(ho) ' hours
I2cstart ' Start sequence for I2CBUS
I2cwbyte Wrtc ' point address to write to PCF8583
I2cwbyte 0 ' selects control register in register 0
I2cwbyte 0 ' starts high bits read
I2cstop ' Stop sequence for I2CBUS
I2cstart ' Start sequence for I2CBUS
I2cwbyte Wrtc ' point address to read from PCF8583
I2cwbyte 2 ' point to register 2
I2cwbyte S ' writes seconds, register 2
I2cwbyte M ' writes minutes, register 3
I2cwbyte Ho ' writes hours, register 4
I2cstop ' Stop sequence for I2CBUS
meine idee noch nicht getestet
init usw
I2cstart ' Start sequence for I2CBUS
I2cwbyte Wrtc ' point address to read from PCF8583
I2cwbyte 2 ' point to register 2
I2cwbyte S ' writes seconds, register 2
I2cwbyte M ' writes minutes, register 3
I2cwbyte Ho ' writes hours, register 4
I2cwbyte 9 ' Register 9 Alarm 1 Register anspringen
I2cwbyte Alarm ' Alarm = 15 alle 15 min wird ein int
I2cwbyte 1 ' ControlStatusRegister anspringen
I2cwbyte enable ' enable = 2 Clear Flag/enable Int
I2cstop ' Stop sequence for I2CBUS
Ich nur eine Idee bin mir nicht sicher ..... werde nun mal kurz die
Hardware aufbauen.... und dann mal bischen testen und spielen..
Mfg
Dirk
Moin!
Hast du den Code noch getestet? Ich habs eben mal ausprobiert, so wie
ich meinte dass es richtig ist. zweifel --> geht nicht!
Leider kann ich auch nicht sagen woran es liegt... Hast du vielleicht
was brauchbares?
Hier mein Code:
I2cstart
I2cwbyte &HA0 'write mode
I2cwbyte &H08 'select alarm control Register
I2cwbyte &B11110000
I2cstart 'repeated start
I2cwbyte &HA0 'write mode
I2cwbyte &H0A 'select seconds - alarm Register
I2cwbyte B1
For I = 2 To 5
I2cwbyte Tm(i)
Next
I2cstop
Den kompletten Code hab ich auch "geuploadet".
Bis später
Hi
du hast was vergessen. Du musst erst im Register 00 anspringen und das
Bit2 auf 1 setzen... damit der Alarm aktiviert ist. Speicherplatz 08
musste das Bit7 nich setzen.....
Mfg
Dirk
Der Chat von mikrocontroller.net oder was? der geht nicht, da bekomme
ich immer ein timeout. Kuehnel hat keinen chat oder doch?!
ich werde deinen tip mal testen
danke, ciao
Hi,
sry anscheinend hab ich auch meine Probs damit. Erstmal bau ein 10k
pullup an den INT Pin weil es ein Open Drain ist....
Bei mir toggled der Pin leider alle Sekunde. Ich habe ein kleinen
Fehler im Bascom Sample gefunden. Leider ist Mselec im Urlaub und ich
keine Antwort... Ich bin aber noch bei.....
Mfg
Dirk
Außerdem:
Die Application Note hilft leider nicht wirklich weiter (oder ich bin
wieder zu doof). Wenn man mal Datenblatt und AN für den PCF8583
vergleicht, dann macht der Autor der AN da ganz wilde Dinge, sowas wie
Alarm Minuten in den 100tel Sekunden-Bereich schreiben usw... ganz
komisch. evtl ist die AN doch nicht für den PCF8583 geschrieben.
sollten wir etwa die ersten sein, die dieses Thema in (PCF vs. Bascom)
in Angriff nehmen?
mfG
Tobi
Hi,
genau Tobias das finde ich auch sehr komisch. Herr Kuehnel hat mir
endlich geantwortet und ich hab Ihm mein Prg zugesendet. Leider kann
ich wohl von meiner Firma aus kein Anhang senden und ich weiss die Hp
nicht mehr somit komme ich erst Montag wieder ran.
Haste dein Int Pin jetzt ueber ein 10k Pullup gespeist, wenn ja dann
messe mal die Spannung mit einem Multimeter ..... wird bei Dir auch die
Spannung im 1 Sekundentakt getaktet?
Mfg
Dirk
Also mit dem Pullup funzt es jetzt! Ich setze einen dated-alarm, und
dieser wird auch via Int angezeigt!! juhuuu (code im anhang)
zweierlei problemchen:
- wie resete ich den interrupt am pfc? wenn der interrupt kommt, dann
bleibt de int auf masse, wie stelle ich das dann zurück?
- wenn ich den µC programmiert habe, dann läuft alles im ersten
durchlauf prima. Aber wenn ich dann die Spannungsversorgung ausschalte,
und dann wieder an, dann stehen die Sekunden plötzlich auf 95!! Allein
die 95 ist schon merkwürdig (bei sekunden??), wichtiger ist aber, WO
KOMMT DAS HER??
Irgendwelche Vorschläge??
mfG
Tobi
hehe, supi...
ich bin nicht zuhaus, und in der FH sind alle nötigen Ports zum chatten
gesperrt... kommst du an icq ran? das geht nämlich hier...
meine icq# bekommst du über meine emailadresse...
ansonsten entweder posten oder per email
cu