PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sehr genaue Stoppuhr mit Timer



c4vl3r
09.10.2006, 16:34
Hi,
hab jetzt schon ewig gesucht aber einfach leider nicht das richtige gefunden....
Mein Anliegen:
Ich möchte eine möglichst genaue "Stoppuhr" mit Bascom basteln. Die Schaltung besteht aus zwei Lichtschranken, sobald die erste unterbrochen wird soll der Timer loslaufen und stoppen sobald die zweite unterbrochen wird. Die Abfrage der Schranken geschieht bis jetzt in einer Schleife, denke bei 16 MHZ is das genau genug, oder doch besser HW-Interrupt nutzen?
Mein Problem ist: ich habe noch nicht ganz begriffen wie ich aus dem Wert des Timers z.b. Hunderstel oder Tausendstelsekunden berechne. Die Zeit die zwischen den beiden Unterbrechungen liegt wird immer unter 1 s bleiben, welchen Prescaler verwende ich da am besten? Am besten so genau wie möglich...
Man, man, diese Timer machen mich noch wahnsinnig ;-) Würde mich über Tips freuen ;-)

MfG

Daniel

c4vl3r
09.10.2006, 21:54
problem gelöst ;-)

Vitis
09.10.2006, 22:29
und wie hast du's gelöst?

c4vl3r
10.10.2006, 15:37
hab meine gesuchte formel gefunden, damit lässt sich aus dem Timerwert die abgelaufene Zeit berechnen. X ist hier der Wert des Timers.

Zeit = X * Prescaler / Taktfrequenz (in Hz)

IE04
12.10.2006, 17:30
Hi Daniel,

würdest du dein Bascom-Projekt veröffentlichen? Mich interessiert diese Art von Schaltung nämlich auch.

MFG

Jens

c4vl3r
13.10.2006, 13:37
was interessiert dich denn genau daran oder wo liegt dein problem? mal sehen ob ich dir helfen kann!
bye,
Daniel

Olle_Filzlaus
13.10.2006, 14:52
Hallo,

ich habe ein ähnliches problem. ich habe eine uhr programmiert und die läuft auch "sehr" genau. in einer stunde ca 2sekunden falsch. habe das auch mit dem prescaler richtig berechnet. aber da ging die uhr noch mehr falsch. habe also die vorladung des prescalers geändert und soweit optimiert das es möglichst genau geht.

aber wie bekommst du das ganz genau. habe mal im netz gelesen das ich dann den quarz mit einem widerstand trimmen muss. also das mmein quarz zu ungenau ist und ich deswegen die abweichungen habe.

also wie hast du das gemacht das es so genau geht???

thx arno

felack
13.10.2006, 16:33
Hallo Filzlaus,

an einem Quarz hast du normalerweise zwei 22pF Kondensatoren. Um die Frequenz einstellbar zu machen, musst Du einen davon durch einen 30pF Trimmkondensator ersetzen. Damit kannst Du dann die Frequenz genau einstellen. Wenn die Uhr genau sein soll solltest Du aber nicht mit der Prescalereinstellung rumexperimentieren, sondern den Interrupt hardwaremäßig mit "Timer/Counter1 Compare Match A oder B" auslösen, dann ist die Genauigkeit nur noch von der eingestellten Quarzfrequenz und nicht mehr vom Programm abhängig.

felack

c4vl3r
13.10.2006, 17:36
genauso wie felack es gesagt hat würde ich es an deiner stelle tun. bei einer uhr ist ungenauigkeit am falschen platz, weil sie ja ständig läuft und der fehler mit der zeit immer größer wird.
ich verwende einen 8-Bit Timer mit einem 8er Prescaler. Mir reicht das, ist nämlich schon ziemlich genau ;-)