-         

Ergebnis 1 bis 5 von 5

Thema: Bascom und PCF 8583

  1. #1

    Bascom und PCF 8583

    Anzeige

    ich habe etwas Verständigungsprobleme beim schreiben und lesen der Register 5 und 6 des PCF8583 mit Bascom. Das Programmbeispiel Clock.bas geht hier leider nicht auf das Lesen und Schreiben von Jahr und Wochentag ein. Hat jemand ein Programmbeispiel, wie man die beiden Werte in Bascom verarbeiten kann.

  2. #2
    Gast
    Servus Sepp,

    mit dem gleichen Problem schlage ich ich auch noch herum.
    Ich hatte auch schon einmal ein Paar Fragen zum PCF 8383 (siehe http://www.roboternetz.de/phpBB2/viewtopic.php?t=7957).
    Alles, insbesondere die Programmierung des Datums, konnte ich auch noch nicht lösen.
    Wenn du eine Lösung hast, wäre es super wenn du sie ins Netz stellen könntest.

    Nutzt du übrigens auch die Alarm-Funktion?

    Gruß
    tooltime

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    23.07.2005
    Ort
    Ingolstadt
    Alter
    50
    Beiträge
    32
    Hi,
    ich mußte noch irgendwo eine Assemblercode haben(glaube ich), sobald ich ihn gefunden haben melde ich mich hier noch mal (bin2 Wochen inm Urlaub)

    Viele Grüße
    Helge

  4. #4
    Gast

    Code für Wochentag ...

    Hallo tooltime. Dachte schon, meine Frage ist zu blöd, dass keiner antwortet. Ich habe dann etwas rumprobiert und mit Bitmanipulation das Problem gelöst. Werde mir aber trotzdem einen anderen chip besorgen, der einfacher zu programmieren ist. momentan aber leider keine zeit.
    Ich hoffe du kannst damit etwas anfangen.

    Gruss josef

    Codeausschnitt:

    Call Settime(23 , 59 , 45 , 31 , 12 , 2 , 1) 'Std Min Sec Tag Mon Jahr Wochentag

    Cls
    Wait 10 'clear screen

    Do
    Call Gettime
    Wtag = Wm 'Kombiregister zerlegen mit shift rechts
    Shift Wtag , Right , 5
    Pjahr = Jd
    Shift Pjahr , Right , 6
    Ptag = Jd
    Ptag.6 = 0 'Bit 6 und 7 löschen
    Ptag.7 = 0
    Pmonat = Wm
    Pmonat.7 = 0 'Bit 5,6 und 7 löschen
    Pmonat.6 = 0
    Pmonat.5 = 0
    If Wtag = 0 Then Stag = "So"
    If Wtag = 1 Then Stag = "Mo"
    If Wtag = 2 Then Stag = "Di"
    If Wtag = 3 Then Stag = "Mi"
    If Wtag = 4 Then Stag = "Do"
    If Wtag = 5 Then Stag = "Fr"
    If Wtag = 6 Then Stag = "Sa"
    Locate 1 , 1
    Lcd Stag ; "." ; Hex(ptag) ; "." ; Hex(pmonat) ; "." ; "20" ; Hex(pjahr)
    Locate 2 , 1
    Lcd Hex(h) ; ":" ; Hex(m) ; ":" ; Hex(s) ; " Err:" ; Err
    Wait 1
    Temp = Temp + 1
    If Temp > 10 Then Gosub Neu 'für den displaytest
    Loop
    End
    Sub Settime(h1 As Byte , M1 As Byte , S1 As Byte , D1 As Byte , Month1 As Byte , Jahr1 As Byte. Wtag1 As Byte)
    Dim Wm1 As Integer
    Dim Pj As Integer
    Wm1 = Wtag * 32 'Wochentag mit 32 multiplizieren
    Wm1 = Wm1 + Month1 'Wochentag und Monat addieren
    Pj = Jahr1 * 32 'Jahr mit 32 multiplizieren
    Pj = Pj + D1 'Jahr und Tag addieren
    Tm(1) = Makebcd(s1) 'seconds
    Tm(2) = Makebcd(m1) 'minutes
    Tm(3) = Makebcd(h1) 'hours
    Tm(4) = Makebcd(pj) 'days and Year
    Tm(5) = Makebcd(wm1) 'MONAT und Wochentag

    I2cstart 'generate start
    I2cwbyte &HA0 'write address
    I2cwbyte 0 'select control register
    I2cwbyte 0 'set year and day bit for masking
    I2cstart 'repeated start
    I2cwbyte &HA0 'write mode
    I2cwbyte 2 'select seconds Register
    For I = 1 To 5
    I2cwbyte Tm(i)
    Next 'write seconds
    I2cstop
    End Sub

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    23.03.2005
    Ort
    Bayern
    Beiträge
    62
    Hallo josef,

    tut mir leid, dass ich mich nicht eher gemeldet habe, aber diese automatische Benachrichtigung funktioniert irgendwie nicht immer.
    Ich denke ich hab´s jetzt auch raus. Mein Code sieht zwar etwas anders aus, funktioniert aber ganz gut.
    Mittlerweile finde ich den 8583 gar nicht mal so schlecht. Ich muss mir nur noch etwas mit der Zuweisung für das Jahr überlegen.

    Gruß
    tooltime

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •