www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik kann keine Uhrzeit automatisch einstellen


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Habe nun endlich meinen DCF77-Empfänder zum Laufen gebracht.
er hat immer 2,7V im Sekundentakt geschaltet.
nun habe ich eine Treiberstufe gebaut. einen BC547 in der 
Emitterschaltung.
33k also basisvorwiderstand.
es funktioniert. jetzt schaltet er GND im sekundentakt.
Das signal geht an pind.6 von einem AtTiny2313.
da kann ich ihn auch noch verfolgen.
Der Zähler läuft.
der lcd zeigt erst 00.00.00 dann 00.00.01 u.s.w. an.
die Zeit wird aber nicht eingestellt.
die sol sich ja automatisch einstellen, oder?
hier ist mein Quellcode( aus AVR-Help kopiert an angepasst)

$regfile = "2313def.dat"
$crystal = 1000000

 Config Lcd = 16 * 2
 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4

  Cls
  cursor off
Config Dcf77 = Pind.6 , Timer = 1 , Timer1sec = 1 , Debug = 1

Enable Interrupts

Config Date = Dmy , Separator = .

Dim I As Integer

Dim Sec_old As Byte , Dcfsec_old As Byte

Sec_old = 99 : Dcfsec_old = 99


Do

For I = 1 To 78

Waitms 10

If Sec_old <> _sec Then

Exit For

End If

If Dcfsec_old <> Dcf_sec Then

Exit For

End If

Next

Waitms 220

Sec_old = _sec

Dcfsec_old = Dcf_sec

Locate 1 , 5
Lcd Time$ ; " "
Locate 2 , 5
Lcd Date$ ; " "


Loop

End

weiss einer warum das nicht läuft?
bitte, helft mir.
MfG Alexander

Autor: Dennis Nitschke (nilpferd)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

sehe ich das richtig, daß die einzige Verbindung zwischen DCF-Empfänger 
und ATTiny aus dem Sekundensignal besteht? Dann kann er die korrekte 
Uhrzeit nicht einstellen, woher soll er die auch bekommen. Der 
DCF-Empfänger müßte normalerweise an irgendeinem Anschluß die Uhrzeit 
ausgeben (meist seriell). Die mußt Du auswerten. Sonst kriegst Du nur 
eine Uhr, die zwar exakt die Sekunden zählt, aber immer von 00:00 an.

Grüße, Dennis

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das teil hat ja nur so zu sagen 3 Anschlüsse.
VCC, GND, TOC (dcf77signal) und PON (der ist aber nur zum einschalten.
was er ganue liefert kann ich nicht sagen, ich weiss nur, dass es sich 
immer was ändert. und zwar im Sekudentakt.
der Wecker hat damit ja auch die Uhrzeit eingestellt.

Autor: Boxi Boxitec (boxi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das ist natürlich Käse, was Dennis hier erzählt, da die 
Zeitinformationen ja in der Impulslänge der Sekundenimpulse enthalten 
ist.

ob der Code oben das leistet, kann ich nur erahnen, da es mir 
schleierhaft ist, wie man einen Mikrocontroller mit Basic programmieren 
kann...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehr schönes Beispiel, wie ein gut kommentierter Code auszusehen hat.

Daß man ihn dann selber nicht versteht und auch andere kaum helfen 
werden können, ist normal.


Peter

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter
kannst du noch was zum Thema sagen?
Wäre ganz nett! ^^

Alex

Autor: Dennis Nitschke (nilpferd)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Boxi Boxitec wrote:
> das ist natürlich Käse, was Dennis hier erzählt, da die
> Zeitinformationen ja in der Impulslänge der Sekundenimpulse enthalten
> ist.

Ist klar, aber erstens gibt es durchaus DCF-Empfänger, die ein serielles 
Signal ausgeben (einer hängt grad ca. 0,75m vor mir an der Wand), 
zweitens hat Alex was von nem Sekundensignal erzählt, daß er sich aus 
seinem Modul holt und über nen Transi verstärkt. Daher bin ich davon 
ausgegangen, daß er tatsächlich ein reines Sekundensignal meint.

@Alex
Wenn Dein Sekundensignal die Zeitinfo enthält, bist Du sicher, daß der 
BC547 das nicht wieder verfälscht, weil er einen kleinen Moment braucht, 
um durchzusteuern?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wenn Dein Sekundensignal die Zeitinfo enthält, bist Du sicher, daß der
>BC547 das nicht wieder verfälscht, weil er einen kleinen Moment braucht,
>um durchzusteuern?

was kann denn die Abhilfe sein?
wie soll ich denn überhaupt weiter vorgehen?

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube, so einfach wie Du denkst, geht das nicht.
Hier ist ein Link:
http://www.roboternetz.de/wissen/index.php/DCF77-D...

So wie das oben aussieht, zählst Du einfach nur die "rohen" 
Sekundenimpulse hoch.

Welche Version von Bascom hast Du im Gange?

MfG Paul

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1.11.8.7 ist die Bascom Version.

den Beispielcode habe ich hier geholt.
ich glaube der soll doch stimmen, oder?
ganz unten.

http://avrhelp.mcselec.com/configdcf77.htm?zoom_hi...

Autor: Dennis Nitschke (nilpferd)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paul Baumann wrote:
> So wie das oben aussieht, zählst Du einfach nur die "rohen"
> Sekundenimpulse hoch.

Dachte ich im ersten Moment nämlich auch. Ich nutze Bascom nicht, aber 
ich denke, das es eine eingebaute Routine für DCF haben wird und weiß, 
was mit den Sekundensignalen anzufangen ist.

@Alex
Hast Du mal hier reingeguckt?
http://www.mikrocontroller.net/articles/DCF77-Funk...
Das mit dem BC547 scheint so erstmal richtig zu sein. Möglicherweise 
hast Du ein Timingproblem, also daß die Impulslänge nicht richtig 
gemessen wird. Evtl. die Waitms mal versuchen anzupassen.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
> @Peter
> kannst du noch was zum Thema sagen?

Nö, jetzt mußt Du erstmal wieder was sagen, und zwar, was Du Dir bei dem 
Programm gedacht hast, eben als Kommentar hinter die Zeilen.

Fängt schon mal damit an, woher diese ominöse 78 kommt.

Wenn Du Dir garnichts dabei gedacht hast, ganz schlecht


Peter

P.S.:
Je weniger Mühe Du Dir gibst, umso weniger sind auch andere bereit zu 
helfen.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hast Du mal hier reingeguckt?
>http://www.mikrocontroller.net/articles/DCF77-Funk...
>Das mit dem BC547 scheint so erstmal richtig zu sein.

ich habe das anders.
der interne pull-up scheint aktiviert zu sein, und ich habe an dem 
Pind.6
immer 4V(wenn kein Empfänger da ist).
ich habe es so gebaut, dass der Transistor immer GND schaltet.
in deinem link ist das aber umgekehrt.
wie ist das denn richtig?

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dennis Nitschke wrote:

> @Alex
> Wenn Dein Sekundensignal die Zeitinfo enthält, bist Du sicher, daß der
> BC547 das nicht wieder verfälscht, weil er einen kleinen Moment braucht,
> um durchzusteuern?

Deine Kommentare dürften den OP nur verwirren. Bei der 
Pulsbreitenmodulation der Zeitinformation gehts um 100ms differenz 
zwischen den Informationen Hi und Low.

Ein BC547 hat Latenzzeiten, die irgendwo im Nanosekundenbereich liegen 
und sind somit absolut vernachlässigbar...

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Je weniger Mühe Du Dir gibst, umso weniger sind auch andere bereit zu
>helfen.

ich kann mir schon Mühe geben. dazu muss ich aber wissen, WAS falsch 
ist.
wonach ich suchen muss.

Autor: Boxi Boxitec (boxi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verfolge das hier schon ne Weile und mir drängt sich der Eindruck 
auf, du müßtest dir vielleicht erstmal überlegen, was du überhaupt tun 
willst und auf dieser Basis ein Konzept erstellen.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Boxi Boxitec

sag mal, prüfst du eigentlich alle angaben, die du im Dattenblatt liest?
Wenn im Datenblatt steht, dass pin 40 vom mega 16 als ADC pin werwendet 
werden kann, dann wird das wohl auch so stimmen, oder?
genau so ist das auch hier.
wenn im "datenblatt" von Bascom was steht, dann ist das schon so 
richtig.
ich finde man MUSS sich da nicht soooo rief reinsteigern.
man kann es so übernehmen, oder bei bedarf bearbeiten.
so habe ich das gemacht.
es werden Jahre vergehen, bis ich da alles durchgelesen und verstanden 
habe, denn es hängt alles miteinander zusammen.
und jetzt soll ich diese löde Uhr zur Seite legen, und Bascom studieren?
ich finde man kann es am besten lernen, indem man an fertigen Beispielen 
arbeitet.
IMHO.

Autor: Boxi Boxitec (boxi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weiß zwar nicht, was das mit meinem Post zu tun hat, aber wenn du nicht 
weißt, was du tust und aufgrund von Annahmen so drauf los wurschtelst, 
wirst du regelmäßig auf die Schnauze fallen. Is aber deine Entscheidung.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Boxi Boxitec
danke für deine hilfreichen posts!

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:

> ich kann mir schon Mühe geben. dazu muss ich aber wissen, WAS falsch
> ist.

Woher soll ein anderer wissen, was an Deinem Code falsch ist, wenn Du 
nicht erklärst, was Du Dir dabei gedacht hast?

In Deinen Kopf schauen kann ich nicht.


Ich kann Dir höchstens funktionierenden Code zeigen (Codesammlung), ist 
aber in Assembler bzw. C.

Ich könnte jetzt ganz profan erklären, alles was anders als mein Code 
aussieht, ist falsch.
Aber es gibt viele verschiedene Ansätze eine Aufgabe in Software zu 
lösen, d.h. was anderes muß nicht automatisch falsch sein.

Aber ohne Kommentierung kann das eben keiner sagen.


Peter

Autor: peter-neu-ulm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nehmen wir an, das Programm würde so laufen, dass es 150 ms nach einer 
steigenden Flanke, dem Beginn des Sekundenimpulses misst, ob eine 1 oder 
eine 0 anliegen.
Wenn jetzt ein Inverter in den Signalweg geschaltet wird, liegt die 
Steigende Flanke am Ende des Sekundenimpulses und die Messung nach 150 
ms fällt dann in die Zeit nach dem Sekundenimpuls, ist also immer 1 oder 
0, je nach Programm.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Peter Dannegger
wenn es dir nichts ausmacht, dann bitte eine .hex - datei.
AtTiny2313 ; interner oszillator. 1Mhz
DCF am PD6
LCD im 4-bit modus ohne Busy am port B

danke

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ich habe es so gebaut, dass der Transistor immer GND schaltet.
>in deinem link ist das aber umgekehrt.
>wie ist das denn richtig?

Preisfrage: Wo könnte man das denn nachschauen?
Und als Super-Sonder-Bonusfrage: Unter welchen Stichwort, damit man 
nicht das ganze Manual lesen muß, weil, das dauert ja Jahre...

(Ab hier nicht weiterlesen, wenn du selber raten möchtest)
RTFM
XXXXX (Die Antworten zu Bonusfragen werden nicht verraten)

Oliver

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
RTFM hat nichts mit Bascom zu tun, oder?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
an Oliver:
sorry, ich verstehe dich nicht!

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
arrgh:-)

Also dann: RTFM heisst read the friendly manual (ok, eigentlich heisst 
es nicht friendly, somdern fuxxing)

Du benutzt in dem Progamm eine Bascom-Funktion, die irgend etwas tun 
soll. Dann schau doch mal ins manual, was denn da zu dieser Funktion 
steht. Der einzige Nachteil ist halt, daß die frei verfügbare 
Bascom-Doku Englisch ist.

Also
http://avrhelp.mcselec.com/

auf search drücken

Das Zauberwort, in userem Fall "DCF77" eingeben.

Da kommt dann ein Eintrag zu CONFIG DCF77 - hallo, das steht ja auch 
oben im Programm !!

Also draufklicken, und lesen. Wenn du was nicht verstehst, hier wieder 
fragen.

Oliver

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Oliver

du hast nicht alles in diesem Theard gelesen!

Das programm habe ich von http://avrhelp.mcselec.com/  !!!!



>den Beispielcode habe ich hier geholt.
>ich glaube der soll doch stimmen, oder?
>ganz unten.  http://avrhelp.mcselec.com/configdcf77.htm?zoom_hi...

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wennn das hier noch irgendwas werden soll, schau doch einfach mal in die 
Doku. Wenn du alle Parameter zu dcf77 verstanden hast, und sicher bist, 
das die alle richtig für DEINE Schaltung eingestellt sind, und dann noch 
Fragen vorliegen, oder es immer noch nicht geht, dann frag halt nach. 
Vorher nicht.

Oliver

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
> @ Oliver
>
> du hast nicht alles in diesem Theard gelesen!
>
> Das programm habe ich von http://avrhelp.mcselec.com/  !!!!

Und?

Was hindert dich daran, dort mal die Doku zu lesen.
Insbesondere hat der Config Parameter INVERTED meine
Aufmerksamkeit erregt.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Un ob Timer1sec = 1 das tut, was du erwartest, ist auch fraglich.

Nochmehr Hilfe gibt es jetzt aber wirklich nicht.

Oliver

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es gibt also keine lösung..
ok.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verstehst du kein Deutsch, oder kein Englisch?

Oliver

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sind beides Fremdsprachen.
komme nicht aus Deutschland

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>sind beides Fremdsprachen.
>komme nicht aus Deutschland

Na, dann Glückwunsch zu dem hervorragend funktionierenden 
Übersetzungsprogramm, mit dem du hier deine Beiträge übersetzen lässt. 
Da das anscheinend kein Bascom beherrscht, lass es dann lieber.

Oliver

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
> es gibt also keine lösung..
> ok.


Doch. Es gibt mit Sicherheit eine Lösung.
Aber dir ist nicht geholfen, wenn hier jemand die Lösung
auf einem Silbertablett präsentiert. Du musst lernen
dir aus Dokus die notwendigen Informationen zusammenzusuchen.
µC Programmierung ist nun mal etwas anspruchsvoller als einen
MP3 Player einschalten. Da müssen alle durch. Sei froh, dass
es die dann doch relativ ausführliche BASCOM Hilfe gibt und
lerne sie zu benutzen. In weiterer Folge wirst du in nicht
allzulanger Zeit auf Probleme stossen, bei denen du völlig
alleine (also ohne irgendeine Hilfe) dastehst.

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stell Dich doch mal mit dem Cursor auf den Befehl "Config DCF 77" und 
drücke F1, um zur Hilfe für diesen Befehl zu gelangen.

Was passiert zum Bleistift, wenn Du den Parameter "Timer1sec" auf Null 
setzt?!......

Man kann nicht von den Entwicklern erwarten, daß jedes Codebeispiel 
genau
mundgerecht ist.

Bedenke: Es könnte noch schlimmer kommen, wenn Du selbst eine Routine
für die Auswertung schreiben müßtest. Den Befehl "Config DCF77" gibt es
nämlich noch gar nicht so lange. Manch einer wäre in einer anderen 
Programmiersprache froh, wenn er es so schön vorbereitet bekommen würde.

;-)

MfG Paul

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist der Grund, warum ich immer sage: Programmieren lernt man nicht. 
Endweder man hat einen Hang zum Autodidaktismus oder man hat ihn nicht. 
Im letzteren Fall sollte man es besser bleiben lassen.

Schliesslich bringt man einem völlig unmuskalischen Menschen auch nicht 
das Klavierspielen bei.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Na, dann Glückwunsch zu dem hervorragend funktionierenden
>Übersetzungsprogramm

ich meinte, dass ich in Deutschland noch gar nicht so lange wohne.
ich benutze kein Programm zum Übersetzen

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Was passiert zum Bleistift, wenn Du den Parameter "Timer1sec" auf Null
>setzt?!......
schon probiert.
ob du es glaubst, oder nicht, aber es ändert sich NICHTS.
was macht dieser Parameter eigentlich?
bin aus der AVR-Hilfe nicht viel schlauer geworden, da ich nicht sehr 
gut englisch kann.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
guten morgen!
wie kann ich den Internen pull-up abschalten?
Danke

Autor: Boxi Boxitec (boxi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
RTFM

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Portd = 0 ?

Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
also es ist noch was komisches..
habe mal ein Bild gezeichnet.
warum funktioniert das so nicht?
ich sollte ja 5V am Ausgang haben, oder?

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
> also es ist noch was komisches..
> habe mal ein Bild gezeichnet.
> warum funktioniert das so nicht?
> ich sollte ja 5V am Ausgang haben, oder?

Nein, das ist eine Collectorschaltung. Ein sogenannter Impendanzwandler 
bzw Spannungsfolger.

Wenn du eine Verstärkung haben möchtest, setzt zu den Widerstand 
zwischen Collector und +5V. Der Emitter kommt direkt an GND.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wenn du eine Verstärkung haben möchtest, setzt zu den Widerstand
>zwischen Collector und +5V.
aber ich möchte ja 5V schalten und nicht gnd.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Signalinvertierung, die eine Emitterschaltung mit sich bringt, 
kannst du problemlos softwaretechnisch ausgleichen.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>kannst du problemlos softwaretechnisch ausgleichen.

mit dem bascom-befehl "Config Dcf77 = Pind.6" ist schon alles "fest" 
eingestellt, oder?

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte überflieg wenigstens die DCF-Doku von Bascom. Die Antwort springt 
dich an. 100%ig.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
den Artikel schon x mal durchgelesen...
ich sehe es einfach nicht! :(

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> http://avrhelp.mcselec.com/index.html?configdcf77.htm

Wenn du tatsächlich das "Inverted"-Flag nicht siehst, bist du blind.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
entschuldigung, ich meinte es anders.
im Programm selbst (unten) steht ja nirgendwo "INVERTED = 0" oder so, wo 
ich statt 0 eine 1 reinmachen kann.
das meinte ich

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
> im Programm selbst (unten) steht ja nirgendwo "INVERTED = 0" oder so, wo
> ich statt 0 eine 1 reinmachen kann.

Und wo ist jetzt das Problem? Traust du dir nicht zu die paar Zeichen 
einzufügen?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
> entschuldigung, ich meinte es anders.
> im Programm selbst (unten) steht ja nirgendwo "INVERTED = 0" oder so, wo
> ich statt 0 eine 1 reinmachen kann.
> das meinte ich


Wie wäre es, wenn du dein Augenmerk einfach mal auf die Beschreibung
der einzelnen Möglichkeiten dieses Config Befehls richten würdest
und nicht nur auf das angegebene Programm. Das angegebene Programm
ist nämlich genau das: Ein Beispiel, wie man in einer speziellen
Konfiguration diesen Befehl benutzen kann. Nicht mehr und nicht
weniger. Es ist keinesfalls dazu gedacht alle Möglichkeiten
und alle Varianten aufzuzeigen.
So ist das generell mit Beispielprogrammen: Sie illustrieren
eine Möglichkeit! Will man wissen, was sonst noch so alles geht,
dann gilt der Erklärungstext eines Kommandos.

Und komm mir jetzt nicht mit: Ich kann kein Englisch.
So viel Englisch kannst du allemal und wenn wirklich nicht,
dann nimm den Text und steck ihn in eine Übersetzungsmaschine
hinein und denk darüber nach, was das Kauderwelsch welches die
Maschine ausspuckt wohl im Zusammenhang mit der Konfiguration
eines DCF Eingangs bedeuten könnte. So schwer ist das nicht.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe das schon so erweitert:
Config Dcf77 = Pind.6 , INVERTED = 1 , UPDATE = 0 ,  Timer = 1 , Timer1sec = 0 , Debug = 1


Enable Interrupts

Config Date = Dmy , Separator = .

Dim I As Integer

Dim Sec_old As Byte , Dcfsec_old As Byte

Sec_old = 99 : Dcfsec_old = 99

er will einfach nicht.
ich weiss auch nicht wo das Problem genau liegt. entweder am Programm, 
oder am Empfänger.
Habe jetzt den OP zur Verstärkung genommen.
SIEHT ok aus.
aber tuts noch nicht.

Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ich habe jetzt noch paar bilder von der Schaltung gemacht.

Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
und Empfänder

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
> ich habe das schon so erweitert:
>
>
> Config Dcf77 = Pind.6 , INVERTED = 1 , UPDATE = 0 ,  Timer = 1 ,
> Timer1sec = 0 , Debug = 1

Und warum Gross? Warum schreibst du es nicht so, wie es in der Doku beschrieben steht?

[c]
' Config Dcf77 = Pind.2 , Debug = 1 , Inverted = 0 , Check = 2 , Update = 0 , Updatetime = 30 , Switchpower = 0 , Secondticks = 50 , Timer1sec = 1 , Powerlevel = 1 , Timer = 1

Ich hab zwar keine Ahnung, ob bascom case-sensitiv arbeitet, aber im 
Zweifelsfalle würde ich mich da immer an die Vorgabe halten.

> Habe jetzt den OP zur Verstärkung genommen.

Welchen OP? Wie sieht die Schaltung aus? Invertiert der das Signal?

> SIEHT ok aus.
> aber tuts noch nicht.

Du hattest schonmal in einem anderen Posting beschrieben, das dein 
Wecker 1-2Stunden braucht, bis die Zeit stimmt. In diesem Fall ist das 
ein Zeichen, das der Empfang nicht optimal ist. Der Empfang muss für 
eine Erfolgreiche synchronisierung für mindestens 2-5Minuten absolut 
fehlerfrei sein. In der Regel reichen 3Minuten.

Damit der Empfang optimal ist, legt man dem Empfänger weit von der CPU 
weg oder anderen Störquellen (rechner, bohrmaschine, waschtrockner, 
umluftbackofen usw).

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es ist ja nicht so, dass ich mir keine Mühe geben will.
ich habe noch kein Gefühl für sowas. und nur darum bitte ich euch um 
Hilfe.
aber die meisten Beiträge sehen ungefäht so aus " kannst du nicht lesen, 
oder was?"
leider :(

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:

> und Empfänder

Seh ich da einen halben Faradayscher Käfig im Hintergrund (fliegennetz 
aus Metall?)

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Welchen OP? Wie sieht die Schaltung aus? Invertiert der das Signal?
LM324N  ist nicht invertiert.
schaltet von 0.1V bis auf 4.3V. ich finde das müsste reichen, um die 
Flanken zu merken.

dass der Wecker 2 Stunden gebrauch hat, muss glaube ich am Wecker ligen.
Der Empfänger ist ca.2m vom PC entfernt. klebt auf der Scheibe.
Empfang hat er jede sekunde.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>fliegennetz aus Metall?

das ist kein Fliegennetz. :) und nicht aus metall

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:

> Empfang hat er jede sekunde.

Dir ist offensichtlich nicht ganz klar, wie das DCF-Signal funktioniert. 
Eine Sekunde hält nur ein 59tel der Information, die es braucht um die 
Uhrzeit und Datum zu dekodieren. Es braucht also 59 sekunden, bis einmal 
die komplette Zeit dekodiert werden kann. Dazu kommt der Sync mit der 
59' sekunde und eine Referenzeit zum Verifizieren.

Ich sagte bereits: um zu Syncen braucht eine DCF-Uhr mindestens 2 
Minuten. Mindestens. Eher drei.

Ich frage nochmal: wie sieht die OP-Schaltung aus? Wenn sie nicht 
Invertiert, brauchst du natürlich auch die Inverted-configuration nicht.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
>>Welchen OP? Wie sieht die Schaltung aus? Invertiert der das Signal?
> LM324N  ist nicht invertiert.
> schaltet von 0.1V bis auf 4.3V.

Das sollte allerdings reichen.
Hast du auch kontrolliert, ob das genau so am µC Pin
PD6 ankommt?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>wie sieht die OP-Schaltung aus?
http://www.stegem.de/Elektronik/OP2/op.jpg
ganau so.

und "Inv = 0".

also ich warte schon immer 5-6 minuten, bevor und sage, dass es nicht 
geht.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hast du auch kontrolliert, ob das genau so am µC Pin PD6 ankommt?
natürlich.
kommt alles an.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
fuf, es läuft jetzt endlich..
durch wildes Ausprobieren.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
> fuf, es läuft jetzt endlich..
> durch wildes Ausprobieren.

Ausprobieren ist nicht weiter schlimm.
Was jetzt aber wichtig ist: Das jetzige mit
deiner Urversion vergleichen und verstehen was die
Änderungen waren und was sie bewirkt haben.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
> fuf, es läuft jetzt endlich..
> durch wildes Ausprobieren.

Ja? Metallfliegengitter abgehangen? :)

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lag an dieser Zeile:
Config Dcf77 = Pind.6 , Inv = 0 , Upd = 0 , Timer = 1 , Timer1sec = 0 , 
Debug = 1 , Check = 2 , Switchpower = 0 , Secondticks = 50 , Powerlevel 
= 1

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
[OT]
Also das fand ich mit Abstand am besten:

Peter Dannegger wrote:
> Ich kann Dir höchstens funktionierenden Code zeigen (Codesammlung), ist
> aber in Assembler bzw. C.

Alex wrote:
> @ Peter Dannegger
> wenn es dir nichts ausmacht, dann bitte eine .hex - datei.
> AtTiny2313 ; interner oszillator. 1Mhz
> DCF am PD6
> LCD im 4-bit modus ohne Busy am port B

Aber ein Versuch wars wert! ;)
[/OT]

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Also das fand ich mit Abstand am besten:

jo, das fand ich auch lustig! :)))


kann man den Empfang noch etwas verstärken? ;)

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst den Empfang optimieren, in dem du vom einen Pol der 
Feritantenne an Erde (zb. Heizkörper) anschliesst und an dem anderen Pol 
der Feritantenne eine Wurfantenne sprich ein langes stück Litze zum 
Fenster raushängst.

Eine Verstärkung ist in der Regel nicht möglich: wer ein schlechtes 
Signal verstärkt, erhält ein verstärktes schlechtes Signal.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Eine Verstärkung ist in der Regel nicht möglich: wer ein schlechtes
>Signal verstärkt, erhält ein verstärktes schlechtes Signal.

hast natürlich recht.
danke

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ich habe das ding jetzt nach hause mitgenommen ;)
jetzt versucht er schon seit 30 minuten die Zeit zu sync. , klappt aber 
nicht.
ich habe noch eine LED zur Kontrolle. die blinkt auch ganz brav mit.
Empfang sollte gut sein, weil das ding auf der Fenstebrank steht.
auf der Arbiet hat es so ca. 7 minuten gedauert.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schon fast 40 minuten..
ist das nicht schon zuuuu lange?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
eine Frage habe ich noch.
konnte es nicht komplett verstehen.
wie kann man das übersetzen?
es dauert immer min. 15min. bis er die Zeit syncr. hat. ist mir etwas zu 
lange, und ich suche noch auf irgendwas, womit ich diese Fehlerfreie 
durchläufe beeinflussen kann. also nicht 5 z.b. , sondern nur 2.
werde aber nicht fundig.


The number of times that the DCF signal state is read. This is the 
number of times per second that the interrupt is executed. This value is 
calculated by the compiler. The highest possible timer pre scale value 
is used and the lowest possible number of times that the interrupt is 
executed. This gives least impact on your main application.

You can override the value by defining your own value. For example when 
you want to run some own code in the interrupt and need it to execute 
more often.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, ist auch egal.. dann nehme ich das so an ;)
mir ist aber noch was aufgefallen.
mein alter funkwecker..
In jeder Position in der Wohnung und in jeder Lage konnte er noch die 
Zeit einstellen.
jetzt habe ich nur noch auf der Fensterbank einen richtigen, sauberen 
Empfang, und nur Wagerecht in Richtung Frankfurt ausgerichtet.
kann mir einer erklären wie das angehen kann?
Danke

Autor: Boxi Boxitec (boxi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erzähl doch mal, was das projekt an dem du da arbeitest für einen rahmen 
hat. Das würde mich langsam schon mal interessieren.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Erzähl doch mal, was das projekt an dem du da arbeitest für einen rahmen
>hat.
ich mache die ganzen Sachen nur so, zur Übung. Macht schon ´ne Menge 
Spass.
Mit den Fusebits habe ich das nicht verstanden. Sind schon bestimmt x0 
µC draufgegangen. :(

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so, ich möchte es noch mal versuchen mit den Fusebits.
und zwar möchte ich einen Quarz crystal mit 4Mhz verwenden.
habe das Datebblatt gerage vor mir.
Könnt ihr mir, dem blöden Menshen sagen, wo das steht, wie ich die 
Häckchen setzen muss? Ich sehe es einfach nicht.

http://pdf1.alldatasheet.com/datasheet-pdf/view/80...

ich bin auf der seite 23...

Device Clocking Option CKSEL3..0
External Clock 0000 - 0001
Calibrated Internal RC Oscillator 4MHz 0010 - 0011
Calibrated internal RC Oscillator 8MHz 0100 - 0101
Watchdog Oscillator 128kHz 0110 - 0111
External Crystal/Ceramic Resonator 1000 - 1111
ok, so weit, so gut.

weiter...

CKSEL3..1 Frequency Range(1) (MHz)
Recommended Range for Capacitors C1
and C2 for Use with Crystals (pF)
100(2) 0.4 - 0.9 –
101 0.9 - 3.0 12 - 22
110 3.0 - 8.0 12 - 22
111 8.0 - 12 - 22

auch klar...


Table 5. Start-up Times for the Crystal Oscillator Clock Selection
CKSEL0 SUT1..0
Start-up Time from
Power-down and
Power-save
Additional Delay
from Reset
(VCC = 5.0V) Recommended Usage
0 00 258 CK(1) 14CK + 4.1 ms Ceramic resonator, fast
rising power
0 01 258 CK(1) 14CK + 65 ms Ceramic resonator,
slowly rising power
0 10 1K CK(2) 14CK Ceramic resonator,
BOD enabled
0 11 1K CK(2) 14CK + 4.1 ms Ceramic resonator, fast
rising power
1 00 1K CK(2) 14CK + 65 ms Ceramic resonator,
slowly rising power
1
01 16K CK 14CK Crystal Oscillator, BOD
enabled
1
10 16K CK 14CK + 4.1 ms Crystal Oscillator, fast
rising power
1
11 16K CK 14CK + 65 ms Crystal Oscillator,
slowly rising power


nichts mehr klar. :(

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um dich mit dem Fusebits auseinanderzusetzen, solltest du erstmal 
halbwegs die Zahlensystem beherrschen (dez, hex, binär)....

Das fände ich ziemlich Elementar.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thomas
WO ist mein 4Mhz ext. Crystal? ich sehe nur 3.0Mhz bis 8.0MHz.
erklär es mit bitte ein für alle mal.
danke

Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
anhang vergessen

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und was bedeuten 14CK + xms???
was ist das alles???????

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> es dauert immer min. 15min. bis er die Zeit syncr. hat. ist mir
> etwas zu lange, und ich suche noch auf irgendwas, womit ich diese
> Fehlerfreie durchläufe beeinflussen kann. also nicht 5 z.b. ,
> sondern nur 2. werde aber nicht fundig.

Hiermit hast du rausgefunden, warum das BASCOM-Modul System hier
in diesem Forum nicht sonderlich beliebt ist.

Die Bausteine die du mit BASCOM mitbekommst sind super, solange
sie genau das tun was du möchtest, bzw. sich darauf konfigurieren
lassen. Aber wehe, wenn nicht! Dann stehst du da und hast
keinerlei Einflussmöglichkeiten mehr.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>solltest du erstmal halbwegs die Zahlensystem beherrschen (dez, hex, binär)....

kann ich. ausser hex. dafür aber gray

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Startuptime und der ganze Fusebitskram ist alles im Datenblatt vom 
Atmel beschrieben.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
> @Thomas
> WO ist mein 4Mhz ext. Crystal? ich sehe nur 3.0Mhz bis 8.0MHz.
> erklär es mit bitte ein für alle mal.

4 liegt doch im Bereich 3 bis 8 drinnen.

Diese Einstellun der Fuse Bits bedeutet:
Wenn du einen Quarz im Bereich 3 bis 8 Mhz hast, dann
musst du diese Einstellung nehmen. Es ist nicht so, dass
du mit den Fuse Bits die Quarzfrequenz einstellst. Sondern
du konfigurierst den internen Schwingkreis so, dass er mit
dem externen Quarz klarkommt. Und je nachdem in welchem
Bereich dieser Quarz schwingt, muss der interne Schwingkreis
etwas anders abgestimmt werden.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Aber wehe, wenn nicht! Dann stehst du da und hast keinerlei Einflussmöglichkeiten 
mehr.

man kann Check = 0 setzen. dann übernimmt er die Zeit, ohne sie zu 
vergleichen.. kommt soooo ein Müll raus. z.B. 23.15.07 (für heute)
u.s.w.
Bei Check = 1 vergleicht er zwar die Zeit, aber irgendwie hatte ich vor 
30 minuten auf einmal 23:45:10 also statt 08:45:10.
mit Check = 2 funktionier alles soweit gut. aber ich nutze den int. Rc 
osc.  und er geht immer 3-4 sekunden pro minute zu schnell.
also auch für´n Arsch. und bis er die Zeit abgeglichen hat ( bei check=2 
), ich schon min. eine Stunde um, weil der Empfang offensichtlich nicht 
sehr gut ist.
den ext. Crystal kann ich nicht verwenden.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also den 4MHz-Quarz zu finden ist doch wirklich kein Problem.

In deinem Datenblattauszug stehen die CKSEL-Einstellungen für 4MHz. Das 
ist für Bit 3 bis Bit 1 110, da sich 4MHz meistens zwischen 3 und 8 MHz 
befinden. In dem Tool ist das also "medium frequency" für einen externen 
Crystal/Resonator.

Die Startup-Clocks sind im Datenblatt beschrieben, wie mein Vorredner 
bereits erwähnt hat. Bei deiner Anwendung kannst du da reinschreiben was 
du willst. Ist nicht sonderlich relevant.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>In dem Tool ist das also "medium frequency" für einen externen Crystal/Resonator.

ich sehe beim besten Willen nichts mit "medium frequency" in diesem 
Tool.
also wenn ich das richtig verstehe, ich das ein Bonärcode. also 100 für 
1, 010 für 2, 110 für 3, u.s.w.
oder?

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Bei deiner Anwendung kannst du da reinschreiben was
>du willst.

Das brauchst du nicht erwähnen, er schreibt sowieso irgendetwas rein ;-)

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unbekannter wrote:

> Das brauchst du nicht erwähnen, er schreibt sowieso irgendetwas rein ;-)

Könntest du bitte deinen Müll, den wirklich niemand lesen möchte, im 
Heiseforum ablassen und nicht hier. Danke!

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Das brauchst du nicht erwähnen, er schreibt sowieso irgendetwas rein ;-)

ich freue mich für dich, dass du so schlu bist und alles kanst!

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also normalerweise nummeriert man die Bits von rechts nach links. 
Weiterhin habe ich geschrieben, dass im Datenblatt CKSEL 3 bis 1 
angegeben sind. Also insgesamt 4 Bits mit in deinem Fall 110X. Das 0. 
(nullte) Bit wählt zusammen mit den SUT-Bits die Startup-Clocks.

Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
also ich habe die fuses jetzt eingelesen.
so sieht es jetzt aus: Anhang
 wenn ich das jetzt richtig verstanden habe, muss ich CKSEL0 wegmachen, 
und dafür CKSEL2 reinsetzen, oder?

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Also normalerweise nummeriert man die Bits von rechts nach links.
Da hast du Recht, beim AVR bedeutet aber eine logische 1 dass diese Bit 
nicht programmiert ist.

Alex: Meiner Meinung nach, den Haken bei CKSEL3 weg, der Rest bleibt so.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Meiner Meinung nach, den Haken bei CKSEL3 weg, der Rest bleibt so.

aber ich muss ja noch ein Häckchen setzen, bzw. wegmachen, damit er mit 
ext. Crystal läuft, oder?
sonst ist er ja bei 4Mhz intern RC.

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
>>Meiner Meinung nach, den Haken bei CKSEL3 weg, der Rest bleibt so.
>
> aber ich muss ja noch ein Häckchen setzen, bzw. wegmachen, damit er mit
> ext. Crystal läuft, oder?
> sonst ist er ja bei 4Mhz intern RC.

Hm, ich habe jetzt einfach dieses Tool benutzt und
"Externer Kristall, Frequenz 3 bis 8 Mhz, Start-Up 14 CK + 4.1 ms" 
ausgewählt. Bei SUT1 und SUT0 muss also ein Haken hin, sowie bei CKSEL1 
und CKSEL0

Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
und bei CKSEL3 dann weg, oder?
so?
soll ich auf Write klicken?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
soll ich auf Write klicken??

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soll der Takt intern wirklich durch 8 geteilt werden? (Der Haken bei 
CKDIV8 ist noch gesetzt)
Noch etwas: Ich habe jetzt nicht den kompletten Thread gelesen, in 
deinem 1. Beitrag steht aber "$crystal = 1000000" Hast du einen 1Mhz 
Kristall?
Wenn ja, dann müssen die Fuses natürlich anders gesetzt werden.
Eine Möglichkeit wäre: Kein Haken bei SUT1, SUT0, CKSEL3, CKSEL1, 
CKSEL0. Nur ein Haken bei CKSEL2.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Beitrag steht aber "$crystal = 1000000" Hast du einen 1Mhz Kristall?
nein, 4 MHz. Quellcode auch schon geändert.
also CKDIV8 weg und write?

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>also CKDIV8 weg und write?

Ja.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so, danke! jetzt hat es geklappt :)

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>so, danke! jetzt hat es geklappt :)

Nur der Schreibvorgang oder funktioniert jetzt auch das Programm so wie 
es soll?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Nur der Schreibvorgang oder funktioniert jetzt auch das Programm so wie
es soll?

auf dem ersten blick beides.

muss jetzt nur noch die Zeit stoppen, und gucken wie genau meine Uhr 
jetzt nun läuft.
wenn die immernoch nicht genau ist, woran kann es liegen?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also die ist jetzt zu langsam.
ca. 1 sek. pro minute verspätung :(

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bei mir om code sind volgenden Zeilen:

Waitms 10
und
Waitms 220

ist sowas überhaupt zulässig, wenn man eine Uhr baut?
also wait- befehl und eine Uhr... finde ich etwas komisch.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, das deine Uhr zu langsam ist hängt einzig und alleine mit dem 
Systemtakt zusammen. Offensichtlich schwingt das Quarz langsamer als 
erwartet.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Offensichtlich schwingt das Quarz langsamer als erwartet.
werde sofort mal den 1.6GHz Counter anschliessen ;)

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mein schöner Frequence counter von HAmeg sagt 4.00009MHz

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>werde sofort mal den 1.6GHz Counter anschliessen ;)

Das wäre keine schlechte Idee! Wenn bei Fusebit "CKOUT" ein Haken 
gesetzt ist, kannst du an PORTD2 den Clock-Takt ausgeben lassen. Dort 
sollten dann 4Mhz rauskommen.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mich beschleicht das gefühl, daß deine Fuse-einstellung nicht 
geschrieben wurden und dein mega8 immernoch vom Internen RC auf 1MHz 
schwingt. Setz mal $crystal=1000000 und überprüf dann nochmal die 
zeit....

ich wette ich habe recht!

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>also die ist jetzt zu langsam.
>ca. 1 sek. pro minute verspätung :(

Wie kannst du das bereits nach einer Minute Laufzeit beurteilen?

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>mich beschleicht das gefühl, daß deine Fuse-einstellung nicht
>geschrieben wurden und dein mega8 immernoch vom Internen RC auf 1MHz
>schwingt. Setz mal $crystal=1000000 und überprüf dann nochmal die
>zeit....

Dann sollte er mal besser die Einstellungen mit Ponprog auslesen und 
nachsehen, ob sie wirklich geschrieben worden sind.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe ich schon.. da zählt er die sunkunden wie verrückt ;)

also ich habe jetzt im Quellcode die beiden Waitms auf 0 gesetzt.
läuft schon seit 5 minuten. kann bis jetzt keine abweichung feststellen 
:)

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>also ich habe jetzt im Quellcode die beiden Waitms auf 0 gesetzt.
>läuft schon seit 5 minuten. kann bis jetzt keine abweichung feststellen
>:)

Du könntest auch das Programm durch
Do




Loop

ersetzen!

Die wait-Anweisungen werden schon ihren Sinn haben, dein Quellcode im 1. 
Beitrag kann doch aber nicht das komplette Programm sein. Irgendwo muss 
ja auch z.B. die Variable "_sec" definiert worden sein und irgendwie 
durch das Programm verändert werden.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Wait-anweisungen haben keinen Einfluss auf die Uhr. Lediglich das 
Display wird jetzt laufend aktualisiert.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das programm läuft jetzt so:

[c]

$regfile = "2313def.dat"
$crystal = 4000000

 Config Lcd = 16 * 2
 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , 
Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4

  Cls
  Cursor Off
Config Dcf77 = Pind.6 , Inv = 0 , Upd = 0 , Timer = 1 , Timer1sec = 0 , 
Debug = 1 , Check = 2 , Switchpower = 0 , Secondticks = 50 , Powerlevel 
= 1


Enable Interrupts

Config Date = Dmy , Separator = .

Dim I As Integer

Dim Sec_old As Byte , Dcfsec_old As Byte

Sec_old = 99 : Dcfsec_old = 99


Do

For I = 1 To 78

Waitms 0

If Sec_old <> _sec Then

Exit For

End If

If Dcfsec_old <> Dcf_sec Then

Exit For

End If

Next

Waitms 0





Sec_old = _sec

Dcfsec_old = Dcf_sec

Locate 1 , 5
Lcd Time$ ; " "
Locate 2 , 5
Lcd Date$ ; " "
Locate 4 , 5
Lcd Bin(dcf_bits) ; " "
Locate 2 , 15
Lcd Bdcf_impuls ; " "


Loop

End
[c/]

hat aber immer noch verspätung. ca. 3 sekunden in 20 minuten

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach mal nen Foto von der Beschlatung des Schwingkreises...hab da so 
eine vermutung.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jop, sofort :)

Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
num. 1

Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
num. 2

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AHAHAHAHAH!

Eine deine Kamera keinen Makromodus?

Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
und das letzte.
habe die C´s auf verschiedenen Seiten, weil die nicht anders gepasst 
haben :)

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein, wenn ich die Kamera dichter ran stelle, dann ist alles 
verschwommen

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>nein, wenn ich die Kamera dichter ran stelle, dann ist alles
>verschwommen

Nein, nicht noch näher ran. Versuche es mal mit WEITER WEG.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Versuche es mal mit WEITER WEG.
jetzt im Erns?

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>jetzt im Erns?

Probier es doch einfach mal aus. Jede Kamera kann nur bis zu einem 
gewissen Mindestabstand zum Objekt scharfstellen, bei besseren Kameras 
kann das durchaus weniger als 10cm sein, bei Kameras ohne Makrofunktion 
leider nicht.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe da mal so eine Idee.
die Uhr läuft ja etwas langsamer.
was passiert, wenn ich den compiler anlüge und $crystal = 3999998
schreibe?
dann soll sie ja schneller laufen, oder?
ist das nicht die Lösung dann?

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehe ich das Richtig?! Keine Kondensatoren???!!!

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Keine Kondensatoren???!!!
doch, sind da.
22p
ein oben, ein unten. gegen GND geschaltet.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also meine geile Uhr geht 10 sekunden pro Stunde zu langsam.
am Quarz ist 4.00009MHz. (gemessen).
waran kann es liegen?
also wenn mal ganzen Tag kein Empfang habe, dann ist die ganz toll 
verstellt :(
hat jemand einen Tipp?

Autor: nummernschalter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gratulation ! 10 Sekunden pro Tag ist ein guter Wert. I.d.R. weichen µP 
gesteuerte Uhren immer etwas ab. Das kann man aber durch geschickte 
Auswahl des Quarzes beeinflussen. Da die Abweichung bekannt und immer 
gleich ist, kannst Du eine Korrektur einbauen, z.B. alle 144 Minuten 
eine Sekunde dazurechnen.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>10 Sekunden pro Tag ist ein guter Wert.
natürlich!
und ich habe 10 sekunden pro STUNDE! :(((
was mache ich denn nun?

Autor: nummernschalter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das liegt vermutlich an der Verwendung von BASCOM AVR. Am Besten Du 
programmierst den Zeitgeber für Deinen 1/100 Sekunden-Takt in Assembler.

Ich habe zwar auch eine DCF77-gesteuerte Uhr in BASCOM AVR programmiert, 
jedopch gänzlich auf das "Selberzählen" verzichtet. Das übernimmt eine 
I2C-Echtzeituhr. Die ist auch unabgeglichen relativ genau und läßt sich 
durch einen Goldcap 2-3 Tage puffern. Das hat den Vorteil, daß sofort 
nach einem Stromausfall die aktuelle Uhrzeit zur Verfügung steht.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ nummernschalter

noch eine Möglichkein gibt es nicht?
was ist damit?

ich habe da mal so eine Idee.
die Uhr läuft ja etwas langsamer.
was passiert, wenn ich den compiler anlüge und $crystal = 3999998
schreibe?
dann soll sie ja schneller laufen, oder?
ist das nicht die Lösung dann?

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du bei dir auf der Firma irgendwo einen Frequenzähler rumstehen 
hast, könntest du nachmessen, ob der Schwingkreis tatsächlich mit 4Mhz 
schwingt.

Autor: nummernschalter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube das bringt im konkreten Fall nichts, da Du die Zeitgeber ja 
selber Einstellen (Vorteiler) mußt. Abgesehen davon werden alle 
Komponenten, die der Kompiler mit seinen errechneten Werten "versorgt" 
nicht mehr richtig funktionieren. z.B. "wait", serielle Schnittstelle 
usw.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:

> was passiert, wenn ich den compiler anlüge und $crystal = 3999998
> schreibe?

Wenn schon, dann würde ich da auch das Ergebnis deines
Frequenzmessers reinschreiben.

Also:

$crystal = 4000090

Dann lügst du auch nicht, denn dein Quarz macht ja wirklich
diese Frequenz.

> dann soll sie ja schneller laufen, oder?

Kommt drauf an, was BASCOM mit dieser Angabe macht.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PS:
Wenn du die Abweichung deines Quarzes von 4000090 hz mal
in Bezug auf die SollFrequenz von 4000000 Hz setzt und das
ganze auf 1 Stunde umlegst, dann kommst du drauf, dass du dann
bei 3600 Sekunden (=1 Stunde) rund 8 Sekunden Abweichung haben
wirst. Deine 10 Sekunden sind also realistisch. Wenn du
die Abweichung mal über einen Tag feststellst, dann kannst du
die tatsächliche Quarzfrequenz noch wesentlich genauer errechnen.
(Aber dazu musst du den Quarz dann temperieren. Der ändert seine
Frequenz auch mit der Temperatur).

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde den Parameter "Secondtics=50" mal weglassen. In der Hilfe 
steht, daß der Compiler diesen Wert selbst errechnet. Nur wenn man 
selbst festlegt, daß man im Interrupt mehr Zeit braucht, sollte man den 
Wert von Hand verändern.

Ich habe hier übrigens eine Uhr mit Attiny 2313, die nur mit einem 4Mhz-
Quarz betrieben wird (ohne DCF). Die läuft seit 2 Jahren mit einer so 
geringen Abweichung, daß ich sie nur mal bei Sommer/Winterzeitwechsel 
stellen muß. Link: http://www.lexatronic.de/

MfG Paul

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:

> bei 3600 Sekunden (=1 Stunde) rund 8 Sekunden Abweichung haben
> wirst.

Oops. Da ist mir wohl am Taschenrechner irgendwo eine oder 2 Nullen
zuviel reingerutscht. Es sind 0.08 Sekunden. Erklärt also deine
Abweichung nicht. Kam mir irgendwie seltsam viel vor, dafür dass
der Quarz nur um 90 Hz danebenliegt.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich würde den Parameter "Secondtics=50" mal weglassen.
ganz weglassen, oder auf 0 setzen?

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz weg.
MfG Paul

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, danke! werde ich mal morgen versuchen

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Selbst bei einem 100% genauen 4MHz Quarz kannst du keine genaue Sekunde 
erzeugen. Der minimale Fehler beträgt 0,006%. Besser wäre ein 4,096MHz 
Quarz.

MfG Spess

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Besser wäre ein 4,096MHz Quarz.
kann mir jemand meine 2 Fragen beantworten?
1. Warum ist dieses Quarz besser? Kann man ein Quarz aus alten 
Funkwecker nehmen?
2. dann stehe ich wieder vor dem Problem mit den Fusebits.
gerabe Zahlen, könnte ist mit 3-bin BCD code noch darstellen, aber wie 
mache ich nun 4,096?

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

1.Die Vorteiler der Timer sind 2er-Potenzen. Z.B. 1024.
  4000000 / 1024 = 3906,25
  4096000 / 1024 = 4000

2. Kommt auf den Quarz an.

Was hat das mit den Fusebits zu tun ????

MfG Spess

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem ist, das dir die Grundlagen fehlen. Solange du die nicht 
lernst, wirds du immer wieder auf neue Fragen stossen, die du dir selber 
beantworten könntest, würdest du dich mit den Grundlagen E-Technik und 
Digitaltechnik befassen.

Autor: Paul Baumann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@Spess 53
Ich habe mal ein Programm angehangen, was mir wunderschön 1Hz aus 4Mhz
erzeugt. Mit Timer 1 ginge das sogar noch einfacher, aber den hatte ich 
schon "besetzt". ;-)

MfG Paul

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm,
soweit ich mich erinnere liefert DCF77 die Zeitinformation über die 
Impulsdauer.
Jede Sekunde kommt ein Low-Impuls (Signal ist low-aktiv). Je nach dauer 
des Low-Impulses (100 oder 200 ms) wird ein 0- oder 1-Bit repräsentiert. 
Du brauchst jetzt nur 59 Bits abzuwarten, dann hast du eine komplette 
DCF77-Sequenz empfangen. natürlich musst du noch wissen, ab wann du die 
Bits zählen musst. Nun, immer der Minutenanfang wird durch einen etwas 
längeren low-Impuls gekennzeichnet, sofern ich das noch richtig im Kopf 
habe.
also - langen low-Impuls abwarten und danach alle Bits merken, je nach 
dem ob der Impuls 100 oder 200 ms dauerte. Die Bits nachher gemäss 
Wikipedia decodieren und gewünschte Bits ausgeben - fertig.
Wahrscheinlich hat weiter obe das schon jemand beschrieben, aber wenn 
nicht hast dus hier nochmal ;) ansonsten ist eine sehr gute Beschreibung 
von DCF77 auf Wikipedia.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

@Paul Entschuldige, ein solcher Aufwand zur Erzeugung eines 
Sekundensignals lag bisher ausserhalb meines Vorstellungsvermögens. In 
Assembler brauche ich dafür ca. 10 Befehle. Mit geeigneter 
Hardwareauswahl kann man sich eine Menge Stress ersparen.

MfG Spess

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Brrr...also ich bin ja selber Assembler- und GCC-Coder aber dieses 
Pseudo-elitäre "in assembler ist kürzer und schneller" gequatsche geht 
mir auf den Sack weils einfach nicht wahr ist!

Assembler hat den Nachteil, das der Code schwerer zu lesen ist und die 
Sprache einen überhauptnicht bei seiner Arbeit unterstüzt, strukturiert 
an eine Problemlösung ranzugehen. Man ist ständig auf seine eigne 
Disziplin angewiesen den Stack und den Code selbst aufgeräumt zu halten. 
C und Bascom nehmen da einem sehr viel arbeit ab und der Code ist für 
jedermann auf Anhieb verständlich.

Um zu verdeutlichen was ich meine:
Setz dich mal vor einen Assemblerprogrammcode den du vor 2-3 Jahren 
geschrieben hast und versuche nur anhand des Programmcodes zu erkennen, 
um welches Programm es sich handelt. Das geht mit C deutlich einfacher.

Assembler hat ganz klar auch seine Vorteile, aber der Aussage "in 
assembler gehts schneller" ist nur äusserst bedingt richtig. Vor allem 
was die Laufzeitgeschwindigkeit betrifft stimmts nur in den wenigsten 
Fällen, da hier Erfahrung mit Hardware und Plattform des Programmierers 
gefragt ist. Häufig kann ein C-Compiler Optimierungen fahren, wo nahezu 
jeder Hobbyprogrammierer nicht drankommt.

Schon gewusst: nur die wenigstens Berufsprogrammierer suchen sich ihre 
Plattform selber aus sondern müssen sich an ein Team anpassen. 
Professionalität bedeutet also, sich anpassen zu können und andere 
Plattformen zu respektieren.

Autor: Paul Baumann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@Spess53

Nun gut, Du hast gewonnen. ;-) ...aber ein klein weing kürzer geht es 
schon noch - mit dem Timer 1.

MfG Paul

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab jetzt nicht in euren Code hineingeschaut (Omg. bas Dateien muss 
ich erst speichern und dann öffnen!), aber warum lasst ihr den Timer 
nicht einfach im CTC Modus laufen?

Vorteiler 64 und 62500 ins jeweilige CTC-Register und fertig.
4000000/64/62500 = 1Hz

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie kann man eigentlich Quarzfrequenz ermitteln?
also auf dem quarz stehen ganz viele Zahlen. z.B.
98-21
51116.60
08tq89 K
was ist das für ein Quarz?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe jetzt ein 6.40040 MHz Quarz gefunden.
wie muss man ist dem Fall die Fusebits setzen?
also bei 1MHz - 001, bei 2MHz - 010, bei 3Mhz - 011, bei 4Mhz - 100, 
5Mhz - 101 u.s.w.
und wie macht man das bei 6.40040? Einfach fusebits für 6Mhz setzen, und 
den Compiler 6.40040 Mhz erzählen?
Also bei 6Mhz is das ja 110. Richtig so?

Autor: Max Schradin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ne Alex, langsam macht das echt keine Spass mehr dir zu helfen. Willst 
du die Gedult des Forums testen oder bist du wirklich so unselbständig 
und überhaupt nicht lernfähig/lernwillig?

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Max Schradin wrote:

> Ne Alex, langsam macht das echt keine Spass mehr dir zu helfen.

??? Wenn ich das richtig sehe ist das dein erster Post in diesem Thread.

Autor: tex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>??? Wenn ich das richtig sehe ist das dein erster Post in diesem Thread.
Das Feld "Name" ist geduldig....

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ne Alex, langsam macht das echt keine Spass mehr dir zu helfen.

brauchst du nicht! ;)

die Uhr ist fertig! :)
läuft NOCH 2 sek /2 Stunden zu schnell jetzt, aber ich krige das schon 
besser hin! ;)
Danke, dass du mir geholfen hast!

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>die Uhr ist fertig! :)

Glückwunsch, war ja auch eine schwere Geburt ;-)

Autor: Boxi Boxitec (boxi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in der zeit hättest du fast schon ne vernünftige programmiersprache 
lernen können!

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>in der zeit hättest du fast schon ne vernünftige programmiersprache
>lernen können!
ich habe mir Assembler angeguckt.
ALLES dichter Wald ;)

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Neben Assembler gibt es ja auch z.B. noch C

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zuviele voids.. :)

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Neben Assembler gibt es ja auch z.B. noch C

finde ich noch unverständlicher ;)

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>in der zeit hättest du fast schon ne vernünftige programmiersprache
>>lernen können!
>ich habe mir Assembler angeguckt.
>ALLES dichter Wald ;)

BASCOM wahr jetzt aber auch nicht gerade eine einzelne Fichte ;-)

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>BASCOM wahr jetzt aber auch nicht gerade eine einzelne Fichte

im Bascom sind die Befehle LESBAR :)))

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> finde ich noch unverständlicher ;)
?!?
wie es Niels Hüsken schon zuvor geschrieben hat: Assembler und 
Lesbarkeit bzw. Verständlichkeit nach einiger Zeit... naja...
Es mag sicher C-Programme geben, die schwer zu lesen sind; aber ich 
glaube in asm sind die noch schwieriger zu lesen.
Trotzdem: jedem das Seine!

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>die Uhr ist fertig! :)
>läuft NOCH 2 sek /2 Stunden zu schnell jetzt, aber ich krige das schon
>besser hin! ;)

2 sek /2 Stunden Abweichung bei einer DCF77-FUNKUHR ist allerdings eine 
einmalige Leistung. Das dürfte vor dir noch keiner hinbekommen haben.

Oliver

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oliver wrote:

> 2 sek /2 Stunden Abweichung bei einer DCF77-FUNKUHR ist allerdings eine
> einmalige Leistung. Das dürfte vor dir noch keiner hinbekommen haben.

Naja, für jemanden, der keinen blassen Schimmer hat von dem was er tut 
ist das schon nicht schlecht. Aber sowenig aus so einem Projekt 
mitzunehmen ist tatsächlich ne Leistung.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na ja.
Jemand der einen Videorekorder 'programmieren' kann
ist deshalb auch noch lange kein Programmierer.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>2 sek /2 Stunden Abweichung bei einer DCF77-FUNKUHR ist allerdings eine
>einmalige Leistung.
wie wäre es mal mit ALLES lesen, und dann posten?
weiter ober steht noch in dem Fall, wenn KEIN DCF signal da ist!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
>>BASCOM wahr jetzt aber auch nicht gerade eine einzelne Fichte
>
> im Bascom sind die Befehle LESBAR :)))

Falsch.
In Bascom gibt es eine Menge fertiger Bausteine, die
dem Unbedarften suggerieren, dass er ein Programm
progammiert hat, wenn er in Wirklichkeit nur ein paar
vorgefertigte Bausteine mit etwas verbindendem Kit
zu einer ausführbaren Einheit kombiniert hat.

In Wirklichkiet hast ja nicht du den DCF Empfänger
programmiert. In Wirklichkeit hast ja nicht du die
Uhr programmiert. All das hat schon jemand vorgefertigt.
Du schaltest es nur noch ein und holst die Ergebnisse ab.
Dagegen ist auch nicht unbedingt etwas einzuwenden.
Solange man versteht was man da eigentlich tut.

Nichts gegen Lego bauen. Aber Modellbau ist was anderes :-)

Autor: Boxi Boxitec (boxi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@KHB: schön gesagt

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ich weiss nicht, wie ich das beschreiben soll... NERVENAUSBRUCH 
passt am ehersten.

auf dem arbeit habe ich alles eingestellt.
mit der Stoppuhr abgeglichen. es waren nur 2 sek / 2 Stunden zu schnell.
ich komme nach hause. schalte das ein...
16 SEKUNDEN in 2 MINUTEN zu schnell.
WIE kann das angehen? WARUM?
gleich alles vom Tisch runtergeschmissen.
eine geraucht.
wieder alles zusammengesammelt.
also ich weiss echt nicht mehr weiter.
suche schon seit einer Stunde kramphaft bei google mit dem Stichwort 
"DCF Clock AVR Bascom" und finde NICHTS passendes.
ich brauche einen Quellcode, der funktioniert, damit ich den bearbeiten 
kann.
selbst ein zu schreiben, bin ich nicht in der Lage.
wenn ich was finde, dann ist das mit 7-segment-Anzeige.
kann aber auf mein LCD nicht übertragen.
WAS soll ich machen?
es geht jetzt ums prinzip, und nicht um diese blöde Uhr.

Autor: nummernschalter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen.

Vielleicht wäre es jetzt an der Zeit, sich doch einmal mit Assembler zu 
befassen. Kauf' Dir ein Buch und lasse zunächst einige Lampen blinken. 
Danach kannst Du Dich dann mit Zeitgebern befassen und Du wirst 
plötzlich verstehen, was es mit den krummen MHz'en auf sich hat, wenn Du 
Vorteiler und Zeitgeber Register berechnest.

BASCOM AVR ist zwar eine feine Sache, wenn man schnelle Ergebnisse 
braucht, allerdings gibt es einige Tücken, wie ich selber erfahren 
musste. Prozessor- und Assemblerkenntisse wären in jedem Fall sehr von 
Vorteil.

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ich brauche einen Quellcode, der funktioniert,
Den wirst du bestimmt irgendwo finden, aaaaaber:

>damit ich den bearbeiten kann.

Bei deinem jetztigen Wissensstand lieber nicht. (nicht böse gemeint)

>WAS soll ich machen?
>es geht jetzt ums prinzip, und nicht um diese blöde Uhr.

Am besten ganz von Anfang an beginnen, damit du die Grundlagen 
beherrscht.
Evtl. erst mal klein Anfangen und nur eine LED zum blinken bringen. Ein 
Patentrezept kann ich die leider auch nicht geben, aber mit Copy & Paste 
+ wildes Editieren ohne den Code halbwegs zu verstehen für nicht zum 
Ziel und kann, wie du ja schon selbst erleben musstest, sehr schnell 
frustierend sein.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:

> 16 SEKUNDEN in 2 MINUTEN zu schnell.
> WIE kann das angehen? WARUM?

Wie ich bereits sagte, du wirst das Thema nie im Griff haben, wenn du 
die Grundlagen nicht kennst.

Ich schlage vor du bastelst dir erstmal in Bascom eine eigene Uhr, die 
mit dem Systemtakt und einem Timerinterrupt arbeitet und zwar OHNE 
irgendwelche Module zu verwenden.

Danach kannst du dich an die dekodierung des DCF-77-Signals wagen. OHNE 
Module zu verwenden.

Danach kannst du beide Projekte kombinieren und zusammenfügen. OHNE blah 
blah blah...

Autor: Boxi Boxitec (boxi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt 10 Arten von Menschen: Solche, die binär verstehen und solche 
die es nicht verstehen!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.