Forum

Einloggen | Registrieren | RSS  

xy(R)

E-Mail

30.12.2018,
19:08

@ matzi682015

OCR1AL

» Habe jetzt beide Kondensatoren auf 47pF vergrößert, und habe nun den
» Eindruck, dass die Uhr etwas langsamer, also nach geht.

Du kannst ja noch etwas mit den Werten spielen.


» Eine Frage hätte ich doch jetzt, die mir unter den Nägeln brennt: Wieso
» muss im Programm genau die Frequenz des Taktes oder Quarzes angegeben
» werden, wenn diese aber sowieso nie exakt ist und sich ziehen läßt?

Muss man ja gar nicht.

matzi682015(R)

E-Mail

Aachen,
30.12.2018,
19:45

@ xy

OCR1AL

» » Habe jetzt beide Kondensatoren auf 47pF vergrößert, und habe nun den
» » Eindruck, dass die Uhr etwas langsamer, also nach geht.
»
» Du kannst ja noch etwas mit den Werten spielen.
»
»
» » Eine Frage hätte ich doch jetzt, die mir unter den Nägeln brennt: Wieso
» » muss im Programm genau die Frequenz des Taktes oder Quarzes angegeben
» » werden, wenn diese aber sowieso nie exakt ist und sich ziehen läßt?
»
» Muss man ja gar nicht.

Das Quarz ist Hardware, warum tut man dann in der Software das einstellen?

--
greets from aix-la-chapelle

Matthes :hungry:

xy(R)

E-Mail

30.12.2018,
19:58

@ matzi682015

OCR1AL

» Das Quarz ist Hardware, warum tut man dann in der Software das einstellen?


Damit man in Hochsprachen einfach wait(x) (x in Sekunden) schreiben kann.

matzi682015(R)

E-Mail

Aachen,
30.12.2018,
21:01

@ xy

OCR1AL

» » Das Quarz ist Hardware, warum tut man dann in der Software das
» einstellen?
»
»
» Damit man in Hochsprachen einfach wait(x) (x in Sekunden) schreiben kann.

erstens weiß doch die hardware nicht welche Software programmiert ist, und die Software weiß auch nicht mit welcher Frequenz der Quarz schwingt... Das Quarz schwingt mit meinetwegen 4MHz +/- 1kHz oder so, und die Hardware hat ihre Laufzeiten, also der µC intern, wie kann man da dann exakt 1s schalten?

Kannste mir bitte einen Tip geben, ein kompaktes Buch oder so, wo ich etwas über Programme und Hochsprachen lernen kann? Ich habe mal mit Pascal programmiert, ganz früher mit Basic. Aber ich habe noch keinen wiedereinstieg hingekriegt, ich weiß einfach nicht wo ich da anfangen soll. Didaktisch wäre es - so denke ich - am Einfachsten, zuerst mal ein kleines Programm schreiben, aber womit und worüber? Ich habe das STK500-EvaluationBoard von Atmel, ein kleines Platinchen Arduino Uno, dann einen USB-Stick mySmartUSB light, und noch ein D-SubSteckerSeriell- auf USB-Adapter von Digitus.

--
greets from aix-la-chapelle

Matthes :hungry:

xy(R)

E-Mail

30.12.2018,
21:24

@ matzi682015

OCR1AL

» Kannste mir bitte einen Tip geben, ein kompaktes Buch oder so, wo ich etwas
» über Programme und Hochsprachen lernen kann?

Not my department.

Du solltest dafür einen neuen Thread beginnen.

finni(R)

30.12.2018,
22:17

@ matzi682015

OCR1AL

» ein kleines Platinchen Arduino Uno

Der ist doch schon ein guter Anfang für C++

bastelix(R)

02.01.2019,
02:53

@ matzi682015

OCR1AL

» erstens weiß doch die hardware nicht welche Software programmiert ist, und
» die Software weiß auch nicht mit welcher Frequenz der Quarz schwingt...
Bei den ATMega und ATTiny die ich verwende muss man (einmalig) den Oszillator einstellen, damit der µC weiß ob er einen externen oder internen Oszillator verwenden soll. Ob die Frequenz-Information für die Hardware wichtig ist kann ich dir nicht sagen.

» Das Quarz schwingt mit meinetwegen 4MHz +/- 1kHz oder so, und die Hardware
» hat ihre Laufzeiten, also der µC intern, wie kann man da dann exakt 1s
» schalten?
Exakt über einen längeren Zeitraum eigentlich nicht. Intern wird das wait() oder ähnliche Funktionen so gelöst, dass der µC einfach so viele Taktzyklen nichts macht (NOP) wie es bei der verwendeten Taktfrequenz dauert bis die gewünschte Zeit vergangen ist. Um die nötigen Taktzyklen zu berechnen braucht die Software die Information über die Taktfrequenz.
Um eine LED alle zwei Sekunden für eine Sekunde leuchten zu lassen oder ein Bus-Protokoll in Software zum implementieren reicht das (egal ob das jetzt in einer Hochsprache oder in Assembler geschrieben ist) trotz der Frequenzabweichungen. Es geht da ja nur um maximal ein paar Sekunden. Für eine Uhr ist das was anderes, da kumulieren sich die Abweichungen über einen verhältnismäßig langen Zeitraum.

» Kannste mir bitte einen Tip geben, ein kompaktes Buch oder so, wo ich etwas
» über Programme und Hochsprachen lernen kann?
Da schließe ich mich xy an. Für die Frage macht ein neuer Thread Sinn.

matzi682015(R)

E-Mail

Aachen,
03.01.2019,
21:38

@ bastelix

OCR1AL

» » erstens weiß doch die hardware nicht welche Software programmiert ist,
» und
» » die Software weiß auch nicht mit welcher Frequenz der Quarz schwingt...
» Bei den ATMega und ATTiny die ich verwende muss man (einmalig) den
» Oszillator einstellen, damit der µC weiß ob er einen externen oder internen
» Oszillator verwenden soll. Ob die Frequenz-Information für die Hardware
» wichtig ist kann ich dir nicht sagen.
»
» » Das Quarz schwingt mit meinetwegen 4MHz +/- 1kHz oder so, und die
» Hardware
» » hat ihre Laufzeiten, also der µC intern, wie kann man da dann exakt 1s
» » schalten?
» Exakt über einen längeren Zeitraum eigentlich nicht. Intern wird das wait()
» oder ähnliche Funktionen so gelöst, dass der µC einfach so viele Taktzyklen
» nichts macht (NOP) wie es bei der verwendeten Taktfrequenz dauert bis die
» gewünschte Zeit vergangen ist. Um die nötigen Taktzyklen zu berechnen
» braucht die Software die Information über die Taktfrequenz.
» Um eine LED alle zwei Sekunden für eine Sekunde leuchten zu lassen oder ein
» Bus-Protokoll in Software zum implementieren reicht das (egal ob das jetzt
» in einer Hochsprache oder in Assembler geschrieben ist) trotz der
» Frequenzabweichungen. Es geht da ja nur um maximal ein paar Sekunden. Für
» eine Uhr ist das was anderes, da kumulieren sich die Abweichungen über
» einen verhältnismäßig langen Zeitraum.
»
» » Kannste mir bitte einen Tip geben, ein kompaktes Buch oder so, wo ich
» etwas
» » über Programme und Hochsprachen lernen kann?
» Da schließe ich mich xy an. Für die Frage macht ein neuer Thread Sinn.

ok, ich mache mich mal so schlau. Danke für die vielen Beiträge! Und ich habe jetzt den Eindruck, dass die Uhr stabil läuft mit (fast) exakt 1Hz. Muss ich noch ein paar
Wochen beobachten.

--
greets from aix-la-chapelle

Matthes :hungry: