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
Hey Dirk, falls du nen lauffähigen Quellcode hast, dann schick ihn mir doch bitte!! vielen dank schonmal. cu
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
Hi, nach langem suchen hab ich ein Beispiel gefunden auch fuer den Alarm. Es ist leider in C aber ich denke man kriegt es nun hin... Mfg Dirk
moin! Der link zur datei tst_PCF8583.c geht nicht!! Bitte nochmal posten danke, Tobi
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
Hi, Tobias wenn du magst komm nochmal in den chat... Mir ist was aufgefallen.... Mfg Dirk
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
So, alle Probleme behoben! Der lauffähige Code ist im Anhang. Bin bis morgen off, bis dann! mfG Tobi
Hi, Tobias ich hab den Code gesaugt und fuer mein 8535er umgeschrieben .... der funzt aber bei mir nicht. Die Zeit wird nicht gesetzt. Mfg Dirk
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.