hi wie programmier ich am einfachsten eine uhr? hab gedacht mit 3 Variablen (sek min std) und pro sekunde die sek eins hochzählen bei mehr als 59 dann eben min um eins erhöhen usw. nur wie bekomm ich einen 1sekunden takt? hab gedacht mit nem quarz so um ca. 1khz den am interuppt eingang anlegen dann ne zählervariable und wenn die bei 1000 ist sek um eins erhöhen. was meint ihr bessere ideen oder ist die idee schon gut? mfg Christian
Einfach nen Timer nehmen, je nach Quarz mit Prescaler und Preset auf eine Sekunde stellen und beim Overflow die Sekundenvariable um eins erhöhen...
Achso noch was: ist net so übel genau, wenns wirklich genau werden soll DCF77 Empfänger nehmen!
hi mir reicht es auf 10 minuten /jahr genau locker. DCF77 ist denk ich mal zu kompliziert. @akw meinst du ohne extra quarz einfach mit nem timer und das klappt und wird rel. genau? wie genau wird es denn in etwa? mfg chrisi01
@Christian Ich habe hier eine Uhr mit ATTINY2313 und 4Mhz-Quarz dran. Die läuft jetzt ein halbes Jahr und geht 3 Sekunden nach. Ich denke, daß diese Genauigkeit reicht. MfG Paul
hi aber dann muss ich ja jede flanke zählen bis 4 millionen und bei nen 8mhz controller ist die halbe leistung des controller schon "verbraten" oder gibts da nen schaltungstechnischen trick? ich mein der controller muss ja bei jeden 2 takt dann in die interuptfunktion reichen würde die genauigkeit LOCKER mfg Christian
Warum Flanken zählen? Du hast deinen Controller mit 4 Mhz. Dann hast du nen Timer der hochzählt. Der Quarz kommt nicht an nen Interupt. Du hast ja beim Timer nem Prescaler, dein 16 Bit Timer geht nur bis zu ner gewissen Zahl und dann stellst du den Timer per Preset schon so hoch, dass es bis zum Overflow genau ne Sekunde dauert und zählst dann hoch. Hoffe das war verständlich ^^ gruß
Hier noch was von mir: On Timer1 Sekunde_plus Config Timer1 = Timer, Prescale = 64 Enable Timer1 Enable Interrupts Timer1 = 49910 Zuerst Prescaler auf 64 heißt bei nem Takt von 1 Mhz 1562,5. Dann stellt man den Timer auf 49910 ein, dann dauerts bis zum Overflow ungefähr ne Sekunde. Hoffe du weißt was ich mein! gruß
hi ich denke das wärs wenn ich schonmal mit timer gearbeitet hätte ;) ich hab mitlerweile so ziemlich alles verwendet aber timer hatten wir noch nicht in der schule... vllt. kannst du es nochmal für dummis erklären die zwar von uC Ahnung haben aber och nie mit timer gearbeitet haben :) notfalls wart ich noch 2 Wochen und dann werd ich das schon noch erfahren in der Schule :) mfg Christian
Also hier ist ein Link, dort ist alles sehr gut erklärt wie ein Timer funktioniert und weiter unten auch wie man nen Sekundentakt erzeugt... Ist zwar in Bascom aber übersetzen wirst du ja hinbekommen wenn du mal weißt wies geht! http://www.roboternetz.de/wissen/index.php/Bascom_und_Timer
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.