Forum: Mikrocontroller und Digitale Elektronik Bascom, DS1338, Clock , Time$, Zusammenhang


von Mario G. (rodenberger)


Lesenswert?

Hallo,
ich hab mir bei Display3000 das D083 mit Atmega 2560 und DS1338 
(Echtzeituhr) gekauft.

Ich verstehe gerade die Zusammenhänge von Time$ und dem DS1338 nicht.
Da fehlt mir das Hintergrundwissen, da ich auch keine Erklärung dazu 
gefunden habe.

Im Programm ist die Routine
RTC_DS1338.bas
integriert.

OK, die Routine ist verständlich

Die Variablen (?)

   _hour
   _min
   _sec

auch.

Am Anfang des Programmes steht.

Config Clock = Soft
Date$ = "01.01.15"
Time$ = "12:59:00"

$include Rtc_ds1338.bas

Gosub Checkdatetime 'der RTC wird ausgelesen

Soweit alles klar.
Nun wird die RTC Routine aber nicht mehr angesprungen.
UND Date$ sowie Time$ wurden aus dem RTC übernommen, also die aktuelle 
Zeit.
WARUM? das steht nirgens das diese übernommen werden sollen

Die Zeitanzeige am Display läuft aber.
Sowohl die Anzeige von Date$ und der Variablen _sec ....
Oder hängen diese direkt zusammen???

Oder macht Bascom hier was automatisch???
Wo ist der Unterschied, wenn ich statt
Clock = Soft , Clock = User einstelle

Die Frage wäre also warum _sec trotzdem läuft.
Und syncron dürfte es auf Dauer ja nicht laufen.
Also müste ich
Gosub Checkdatetime
Sagen wir alle 24h erneut aufrufen?

Ich hoffe ich habe es verständlich erklärt.

DANKE!

: Verschoben durch User
von Fred R. (Firma: www.ramser-elektro.at/shop) (fred_ram)


Lesenswert?

Was hat das mit einem FERTIGEN Projekt zu tun?

von Mario G. (rodenberger)


Lesenswert?

Fred R. schrieb:
> Was hat das mit einem FERTIGEN Projekt zu tun?
stimmt, falsches Unterforum. Sorry

Hmmmm, wohin damit ?
Verschieben bitte !

von Uwe D. (monkye)


Lesenswert?

Wo ist der Programmcode? Es ist ein bissel wie Kaffeesatz lesen.

Bei "Clock=Soft" muss eigentlich ein 32k Quartz an die Pins des AVR.

Bei "Clock = User" hat der ANWENDER die Aufgabe die Sekunden zu 
befördern.

von Mario G. (rodenberger)


Lesenswert?

Rtc_ds1338.bas ist leider geschütz.

Ein zusätzlicher Quarz ist nicht angeschlossen.
In der RTC Routine wird der RTC ausgelesen und die Zeit an die Variablen 
_sec, _min usw. übergeben, bzw. können zum stellen geschrieben werden.

Dann vermute ich das diese direkt mit Time$ durch Bascom zusammenhängen, 
ODER? Dann wäre das logisch.

In der Routine steht:
I2cwbyte &B00010011   'enables output line of 32 khz AND set OSF flag to 
0

Werden dann hier die 32 KHz duch das I2C erzeugt ?

Ansonsten schreibe ich nur zur Anzeige Time$ und _sec .... aufs Display 
in einer schleife um zu sehen welche Variablen sich ändern.
Das machen sie alle ohne die RTC Sub erneut aufzurufen.

von Mario G. (rodenberger)


Lesenswert?

OK, jetzt doch gefunden hier im Forum:

Zitat:
When you use the CONFIG CLOCK directive the compiler will DIM the
following variables automatic : _sec , _min , _hour, _day , _month ,
_year
The variables TIME$ and DATE$ will also be dimensioned. These are
special variables since they are treated different. See TIME$ and
DATE$.
The _sec, _min and other internal variables can be changed by the user
too.
But of course changing their values will change the DATE$/TIME$
variables.

Auf Deutsch: Der Compiler dimensioniert die Variablen _sec, _min
usw. von allein.

Zitat Ende

Gut, dann ist alles klar.
Will es ja auch verstehen und nicht nur Codeschnipsel kopieren!!!

Bleibt nur noch das 32 KHz signal.
Das ist aber erst mal nicht so wichtig.

DANKE!!!

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.