Bascom Bascom: Probleme mit date$ und time$ Zerlegung

trinity4711

Neues Mitglied
06. Feb. 2008
9
0
1
Walhorn
Sprachen
  1. BascomAVR
Hallo,
Ich habe mir eine Steuerung gebaut welche aus einem Atmega128 und ds1307(Realclock) und einem Glcd (240x64) mit T6963c Controller besteht.
Zur graphischen Darstellung benutzte ich das entsprechende Bascom-Tool von Evertdekker (Pixeldarstellung). Ich muß um eine Zahl oder Text, diesen zuerst in eine Stringvariable umwandeln. Und hier fängt mein Problem an. Ich weis das ich mit dem Befehl date$ und time$ den ds1307 beschreiben muß. Aber wie bekomme ich meine Werte für Tag, Monat, Jahr sowie Stunde, Minute und Sekunden ? Da ich schon öfters GLCD's (T6963c) verbaut und in Bascom programmiert habe, stehe ich doch vor einem Problem beziehungsweise die ganzen Forenbeiträge habe mich verwirrt. Zahlreiche Versuche sind kläglich gescheitert, als hätte man ein Brett vorm Kopf !

Code:
I2cstart ' Generate start code
I2cwbyte Ds1307w ' send address
I2cwbyte 0 ' Register-addresse im 1307

I2cstart ' Generate start code
I2cwbyte Ds1307r ' send address
I2crbyte _sec , Ack
I2crbyte _min , Ack ' MINUTES
I2crbyte _hour , Ack ' Hours
I2crbyte Weekday , Ack ' Day of Week
I2crbyte _day , Ack ' Day of Month
I2crbyte _month , Ack ' Month of Year
I2crbyte _year , Nack ' Year
I2cstop
_sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
_day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)

Select Case Weekday
Case 1
Wt = "Montag"
Case 2
Wt = "Dienstag"
Case 3
Wt = "Mittwoch"
Case 4
Wt = "Donnerstag"
Case 5
Wt = "Freitag"
Case 6
Wt = "Samtag"
Case 7
Wt = "Sonntag"

End Select

'Hier soll die Displayausgabe hin:

Sub Ausgeben

'Ausgeben auf dem LCD Display

'SYNTAX  Lcdtext String , Xoffset , Yoffset , Fontset , Inverse , Rotation

    'Stunden formatieren
    Strstunden = Str(stunden)
    If Len(strstunden) = 1 Then Strstunden = "0" + Strstunden

    'Minuten formatieren
    Strminuten = Str(minuten)
    If Len(strminuten) = 1 Then Strminuten = "0" + Strminuten

    'Sekunden formatieren
    Strsekunden = Str(sekunden)
    If Len(strsekunden) = 1 Then Strsekunden = "0" + Strsekunden


'Auf dem Display ausgeben

    z.B.
    Lcdtext Strstd , 20 , 30 , 2 , 0 , 0
    Lcdtext ":" , 50 , 30 , 2 , 0 , 0
    Lcdtext Strmin , 60 , 30 , 2 , 0 , 0
    Lcdtext ":" , 90 , 30 , 2 , 0 , 0
    Lcdtext Strseku , 100 , 30 , 2 , 0 , 0

' das gleiche auch für Wochentag, Tag, Monat und eventuell Jahr

   
    Cursor Off
End Sub


Return

Setdate:
_day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
I2cstart ' Generate start code
I2cwbyte Ds1307w ' send address
I2cwbyte 3 ' Register-addresse im 1307
I2cwbyte Weekday
I2cwbyte _day ' Send Data to SECONDS
I2cwbyte _month ' MINUTES
I2cwbyte _year ' Hours
I2cstop
Return

Settime:
_sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
I2cstart ' Generate start code
I2cwbyte Ds1307w ' send address
I2cwbyte 0 ' Register-addresse im 1307
I2cwbyte _sec ' Send Data to SECONDS
I2cwbyte _min ' MINUTES
I2cwbyte _hour ' Hours
I2cstop
Return
 
Hi,

irgendwo hier im Forum sollten meine Routinen stecken bei denen ich auch auf einem Mega128 den DS1307 verwendet habe. Eine Subroutine ist zum speichern der Zeit aus der Softwareuhr in die RTC und eine Subroutine ist zum abholen. Da sind auch noch Teile drin um die Softwareuhr zu stellen und weiterer Kram. Versuch mal mit der Forumssuche was zu finden. Ich müßte auch erstmal sehen in welchem der Threads das gelandet ist.

Thema: DS1307 "zu Fuß" in Bascom - #12

Thema: DS1307 reagiert am I2C-Bus nicht (läuft jetzt)Thema: DS1307 reagiert am I2C-Bus nicht (läuft jetzt)

Gruß
Dino
 
Hallo dino03,
erstmal vielen Dank für deinen Kommentar. Werde ihn an meinen Code anpassen

danke nochmals

Gruß Michael
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)