Hallo,
Ich wollte über eine Uhr mit bauen,welche die Zeit auf einem LCD
anzeigt.
Ich habe dafür den Timer so eingestellt, dass er jede Sekunde einen
Interrupt auslöst.
Dann werden die Variablen für die Zeit nach oben gezählt und
anschließend aus gegeben.
Über den INT0 möchte ich später die beleuchtung des Displays für eine
bestimmte Zeit anschalten können.
Das funktioniert auch alles, nur leider wird der Interrupt immer wieder
auf gerufen, solange der Taster gedrückt bleibt. Dadurch läuft dann die
Uhr nicht mehr weiter.
Eigentlich sollte der Interrupt ja nur auslösen, wenn der Pegel am Pin
sich verändert. Daher gehe ich davon aus, dass der Taster prellt?
Ich habe deshalb versucht, den das ganze durch ein _delay_ms(20) direkt
nach dem aufwachen zu verhindern.
Das behebt das Problem aber nicht, wenn der Taster trotzdem länger
gedrückt wird.
Nach dem drücken des Tasters noch länger zu warten macht ja auch keinen
Sinn, dann kann ich mir den sleep mode auch gleich sparen.....
Hat jemand eine Idee, wie ich das Problem lösen kann?
Verwendet wird ein ATMEGA32(Intern 1Mhz) auf dem Stk500.
Danke im Voraus!
Schöne Grüße
Florian
Florian schrieb:> Das funktioniert auch alles, nur leider wird der Interrupt immer wieder> auf gerufen, solange der Taster gedrückt bleibt. Dadurch läuft dann die> Uhr nicht mehr weiter.>> Eigentlich sollte der Interrupt ja nur auslösen, wenn der Pegel am Pin> sich verändert.
Nö.
1
MCUCR&=~(1<<ISC01)&~(1<<ISC00);
das ist genau das was du programmiert hast: Interrupts solange LOW-Level
am Pin anliegt.
Ohne mir jetzt den ganzen Code angesehen zu haben:
Florian schrieb:> MCUCR &= ~(1 << ISC01) &~(1 << ISC00);
MCUCR ist nach einem Reset komplett auf "0".
0 & 0 ergibt 0
Somit steht in ISC01 und ISC00 auch der Wert "0". Das wiederum heißt:
"The low level of INT0 generates an interrupt request."
Karl Heinz Buchegger schrieb:> das ist genau das was du programmiert hast: Interrupts solange LOW-Level> am Pin anliegt.
Oh.. ok habe ich übersehen.
mit MCUCR |= (1<<ISC01); klappt es :)
Danke!
Ingo schrieb:> Warum zerlegst du deine Uhrzeit in einer und Zehner und weist den dann> sogar noch n uint16 zu! Erklär ma! Also man kanns auch umständlich> machen...
Ich zerlege die Zeit, um die Anzeige auf dem LCD zu ermöglichen, dadurch
muss ich nur die jeweilige Zahl+48 anzeigen lassen.
Falls es da eine einfachere Methode gibt, nur her damit ;)
Da lasse ich mich gerne eines besseren beleheren.
uint16_t ist natürlich absolut überflüssig, das hatte keinen bestimmten
Grund. Da reicht ein int8_t auch.
Ich hätte noche eine Frage:
Wie kann man denn das Display dimmen?
Sprich:
Int0 -> Display auf volle Helligkeit
nach 5 Sekunden -> Display auf halbe Helligkeit -> nach 5 Sekunden ->
Display aus.
Florian schrieb:> Ich zerlege die Zeit, um die Anzeige auf dem LCD zu ermöglichen, dadurch> muss ich nur die jeweilige Zahl+48 anzeigen lassen.> Falls es da eine einfachere Methode gibt, nur her damit ;)> Da lasse ich mich gerne eines besseren beleheren.
Des einen Freud ist des anderen Leid.
Auf der einen Seite ist das numerische Bearbeiten der Zeitwerte
einfacher, wenn man nicht nach Einern und Zehner trennt
1
Sekunde++;
2
if(Sekunde==60){
3
Sekunde=0;
4
Minute++;
5
if(Minute==60){
6
Minute=0;
7
Stunde++;
8
if(Stunde==24)
9
Stunde=0;
10
}
11
}
Insbesondere wenn es dann irgendwann mal darum geht, mit der Zeit dann
auch was zu machen, wie zb Weckzeit oder damit zu rechnen, ist das schon
mal eine Vereinfachung.
Auf der anderen Seite muss man dann eben zu Anzeigezwecken die komplette
Zahl wieder in Zehner und Einer zerlegen.
1
voidlcd_zahl(uint8_tzahl)
2
{
3
uint8_tzehner=zahl/10;
4
uint8_teiner=zahl%10;
5
6
lcd_data(zehner+'0');
7
lcd_data(einer+'0');
8
}
> Grund. Da reicht ein int8_t auch.
uint8_t.
u
unsigned
> Wie kann man denn das Display dimmen?
helligkeitsanschluss an einen PWM Anschluss vom µC hängen und einen
Timer für PWM aufsetzen.
Im übrigen gehört die LCD ANzeige aus der ISR raus.
Denn der Timer und damit die Zeit, muss auch dann weiterlaufen, wenn das
LCD was anderes anzeigen soll. Daher muss Zeitweiterschaltung und
Anzeige voneinander getrennt werden.
Karl Heinz Buchegger schrieb:> Im übrigen gehört die LCD ANzeige aus der ISR raus.> Denn der Timer und damit die Zeit, muss auch dann weiterlaufen, wenn das> LCD was anderes anzeigen soll. Daher muss Zeitweiterschaltung und> Anzeige voneinander getrennt werden.
Soll ich den Anzeige Code also auch in die while(1) schleife
verschieben?
Ich dachte, dass es nicht zum Problem wird, wenn das in der ISR abläuft,
da diese ja nur jede Sekunde aufgerufen wird und das Schreiben auf das
Display im ms Bereich abläuft(weit weniger als 1 Sekunde dauert).
Karl Heinz Buchegger schrieb:> Insbesondere wenn es dann irgendwann mal darum geht, mit der Zeit dann> auch was zu machen, wie zb Weckzeit oder damit zu rechnen, ist das schon> mal eine Vereinfachung.
Ja das stimmt. Werde das mal so umbauen :)
Mit nur einer Variable wird das nicht klappen oder?
Idee:
Variable jede Sekunde nach oben Zählen und dann für die Anzeige wieder
zerlegen. Aber das dürfte schon daran scheitern, dass der Wert zu groß
wird.
1s*60*60*24 = 86400s/d und ein uint16_t geht ja nur bis 65535.
Wenn man auf die Sekunden Anzeige verzichten kann sollte es allerdings
möglich sein oder? 60min*24 = 1440min/d
Kann jemand abschätzen wie genau eine Uhr sein kann, wenn man den uC nur
mit dem Internen Oszillator betreibt und nicht mit einem Quarz?
Ist die Uhr genauer, wenn ich jede Sekunde einen Interrupt habe oder
wenn der Interrupt nur jede Minute ausgelöst wird?
Für das Auge wird wohl die Minute genauer sein, da man Abweichungen im
Sekunden Bereich dann nicht sofort sieht. Aber wie ist es wirklich?
Der Stromverbrauch sollte sich aber dadurch drastisch reduzieren lassen,
da der Controller dann wesentlich mehr Zeit im sleep mode verbringt.
Danke für die Antworten :)
>Variable jede Sekunde nach oben Zählen und dann für die Anzeige wieder>zerlegen. Aber das dürfte schon daran scheitern, dass der Wert zu groß>wird.>1s*60*60*24 = 86400s/d und ein uint16_t geht ja nur bis 65535.
Wieso das? Karl Heinz hat doch oben schon skizziert, wie es gehen
könnte.
>Kann jemand abschätzen wie genau eine Uhr sein kann, wenn man den uC nur>mit dem Internen Oszillator betreibt und nicht mit einem Quarz?
Interner Oszillator wesentlich ungenauer als ext. Quarz, aber auch der
führt noch zu einigen Sekunden Abweichungen pro Tag. guckst du hier:
Beitrag "Genauigkeit eines Quarzoszillators">Ist die Uhr genauer, wenn ich jede Sekunde einen Interrupt habe oder>wenn der Interrupt nur jede Minute ausgelöst wird?
Abweichung ist relativ, d.h. unabhängig von Sekunde oder Minute oder
Tag, immer beispielsweise 1 Promill.
Auf den Energieverbrauch hat Interrupt pro Sekunde vs. Interrupt pro
Minute kaum Auswirkungen, denn der Interrupt ist -wenn du ihn denn kurz
gemacht hast- in einigen µs durch. Da kannst du deutlich mehr holen,
wenn du einen tieferen Sleep-Mode als Idle wählst, z.b. In deinem Fall
Power-Save. Das wiederum setzt voraus, daß du Timer2 im Async-Mode mit
einem Uhrenquarz betreibst. Die dazu verwendeten 32.768kHz-Uhrenquarze
sind zudem etwas genauer als Standard-Quarze. Aber auch hiermit kommst
du für einen genaue Anzeige nicht um eine externe Zeitbasis drumrum.
Standard: DCF77-Empfänger. Gibt es auch fertig als Modul zu kaufen beim
Elektrohöker deiner Wahl.
Gruss, Heinz
Florian schrieb:>> Für das Auge wird wohl die Minute genauer sein, da man Abweichungen im> Sekunden Bereich dann nicht sofort sieht. Aber wie ist es wirklich?> Der Stromverbrauch sollte sich aber dadurch drastisch reduzieren lassen,> da der Controller dann wesentlich mehr Zeit im sleep mode verbringt.
Drastisch ist übertrieben.
Und irgendwann ist dann auch ein Punkt erreicht, an dem zwar der µC so
gut wie keinen Strom mehr verbraucht, die Lebensdauer deiner
Stromversorgung aber von der Selbstentladung der Akkus dominiert wird.
Florian schrieb:> Karl Heinz Buchegger schrieb:>> Im übrigen gehört die LCD ANzeige aus der ISR raus.>> Denn der Timer und damit die Zeit, muss auch dann weiterlaufen, wenn das>> LCD was anderes anzeigen soll. Daher muss Zeitweiterschaltung und>> Anzeige voneinander getrennt werden.>> Soll ich den Anzeige Code also auch in die while(1) schleife> verschieben?> Ich dachte, dass es nicht zum Problem wird, wenn das in der ISR abläuft,> da diese ja nur jede Sekunde aufgerufen wird und das Schreiben auf das> Display im ms Bereich abläuft(weit weniger als 1 Sekunde dauert).
Solange du an deinem Programm nichts mehr änderst oder hinzufügst, ist
das auch ok.
Aber mal eine kurze Zwischenfrage: Wie stellst du eigentlich die Uhr
ein? Könnte es wohl sein, dass du dann ein Problem kriegst, wenn sowohl
im Einstellcode als auch in der ISR auf das LCD zugegriffen wird? Was
wird wohl passieren, wenn du in der Hauptschleife einen String ausgibst,
der von einem ISR Aufruf unterbrochen wird, der dann seinerseits wieder
etwas aufs LCD schreibt? (Und nebenbei bemerkt dann auch noch die
Anzeige löscht)
> 1s*60*60*24 = 86400s/d und ein uint16_t geht ja nur bis 65535.
und wie hoch geht ein uint32_t ?
> Kann jemand abschätzen wie genau eine Uhr sein kann, wenn man> den uC nur mit dem Internen Oszillator betreibt und nicht mit> einem Quarz?
Der intene Oszillator ist temperaturabhängig.
Das ist zwar ein Quarz auch, aber wesentlich weniger.
Quarze nimmt man deshalb, weil ihre Temperaturstabilität besser ist.
Natürlich kann man jeden Oszillator (egal welcher) auf das 1/100-tel
Herz genau ausmessen und das im Programm berücksichtigen. Nur was hilft
dir das, wenn der Oszillator um bis zu 50Hz (Hausnummer) schneller wird,
nur weil die Heizperiode im Winter anfängt und deine Frau/Freundin es
gerne kuschelig warm hat?
Such mal im Wiki nach dem Artikel
AVR - Die genaue Sekunde / RTC
PeDa hat da beschrieben, wie man eine genau gehende Uhr mit einem QUarz
macht, indem man die exakte Quarzfrequenz aus der Gangabweichung
ermittelt und im Programm berücksichtigt.
Karl Heinz Buchegger schrieb:> Auf der anderen Seite muss man dann eben zu Anzeigezwecken die komplette> Zahl wieder in Zehner und Einer zerlegen.
Man darf aber auch itoa() oder sprintf() benutzen.
Auch bei 1MHz ist das für den AVR nur ein Klacks.
Karl Heinz Buchegger schrieb:> Solange du an deinem Programm nichts mehr änderst oder hinzufügst, ist> das auch ok.> Aber mal eine kurze Zwischenfrage: Wie stellst du eigentlich die Uhr> ein? Könnte es wohl sein, dass du dann ein Problem kriegst, wenn sowohl> im Einstellcode als auch in der ISR auf das LCD zugegriffen wird? Was> wird wohl passieren, wenn du in der Hauptschleife einen String ausgibst,> der von einem ISR Aufruf unterbrochen wird, der dann seinerseits wieder> etwas aufs LCD schreibt? (Und nebenbei bemerkt dann auch noch die> Anzeige löscht)
Das stimmt, wäre wirklich sinnvoller das dann an einer anderen stelle
aus zugeben. (vor dem aktivieren des sleep modes?)
katastrophenheinz schrieb:> Standard: DCF77-Empfänger. Gibt es auch fertig als Modul zu kaufen beim> Elektrohöker deiner Wahl.
Da wäre dann auch eine Datumsangabe mit dabei oder?
Das wäre dann vermutlich die einfachste Lösung.
Wie sieht es denn mit dem Empfang dieser Teile aus? haben die an "jeder"
Stelle Empfang? Oder muss die Uhr dann möglichst am Fenster Platziert
werden o.ä?
Muss der Empfänger außerhalb eines Gehäuses angebracht werden, oder kann
ich ihn auch mit ins Gehäuse einbauen? (Plastik Gehäuse)
Karl Heinz Buchegger schrieb:> Such mal im Wiki nach dem Artikel> AVR - Die genaue Sekunde / RTC> PeDa hat da beschrieben, wie man eine genau gehende Uhr mit einem QUarz> macht, indem man die exakte Quarzfrequenz aus der Gangabweichung> ermittelt und im Programm berücksichtigt.
Danke für den Link, werde ich mir mal ansehen :)
Peter Dannegger schrieb:> Karl Heinz Buchegger schrieb:>> Auf der anderen Seite muss man dann eben zu Anzeigezwecken die komplette>> Zahl wieder in Zehner und Einer zerlegen.>> Man darf aber auch itoa() oder sprintf() benutzen.> Auch bei 1MHz ist das für den AVR nur ein Klacks.
Danke für den Tipp, habe beides bisher nicht benutzt, werde ich mir auch
ansehen.
Zur Not kann die Frequenz ja auch erhöht werden. Das sollte außer einem
höheren Stromverbrauch ja keinen Nachteil bringen oder?
> Zur Not kann die Frequenz ja auch erhöht werden.
Vergiss es.
Selbst bei 1Mhz ist dein µC so schnell, dass eine derartige Ausgabe für
ihn ein Klacks ist. 1Mhz - das sind über den Daumen 800-TAUSEND
Operationen in der Sekunde. Was denkst du was es für eine Rolle spielt,
ob eine Ausgabe da jetzt 400 oder 500 Operationen benötigt?
Dein Hauptproblem ist die zeitliche Konstanz der Taktfrequenz unter
allen denkbaren Umständen. Das ist DAS Kriterium für eine Uhr. Alles
andere sind Nebenschauplätze.
>Da wäre dann auch eine Datumsangabe mit dabei oder?
Ja, und noch mehr.
>Das wäre dann vermutlich die einfachste Lösung.
Kommt drauf an, bei den einfachen DCF77-Modulen musst du aus dem
demodulierten Signal die Nutzinformation selbst zusammenbasteln. Es gibt
aber tonnenweise Beispielcode hier im Forum. Die komplexeren Module
können das von sich aus, aber die gehen dann schon in Richtung komplette
Funkuhr.
>Wie sieht es denn mit dem Empfang dieser Teile aus? haben die an "jeder">Stelle Empfang? Oder muss die Uhr dann möglichst am Fenster Platziert>werden o.ä?
Wenn du nicht gerade im Stahlbetonbunker wohnst, dann sollte das gehen.
Störender sind die Felder, die dein Home-Equipment ausstrahlt. Also
vielleicht nicht direkt neben das Fernost-Schaltnetzteil stellen.
>Muss der Empfänger außerhalb eines Gehäuses angebracht werden, oder kann>ich ihn auch mit ins Gehäuse einbauen? (Plastik Gehäuse)
Plastik kein Problem, solange kein Störsender mit drinsteckt, s.oben.
Gruss, Heinz
Karl Heinz Buchegger schrieb:> Dein Hauptproblem ist die zeitliche Konstanz der Taktfrequenz unter> allen denkbaren Umständen. Das ist DAS Kriterium für eine Uhr. Alles> andere sind Nebenschauplätze.
Ich werde es erst einmal mit dem Internen timer laufen lassen, und dann
bei der nächsten gelegenheit einen Uhrenquarz mit bestellen.
Dass sollte ja dann keine größere Umstellung sein oder?
(von timer1 auf 2 wechseln und dort Prescaler etc anpassen)
katastrophenheinz schrieb:> Da wäre dann auch eine Datumsangabe mit dabei oder?> Ja, und noch mehr.> Muss ich mal nachlesen, was da alles noch drin steckt :)>>Das wäre dann vermutlich die einfachste Lösung.> Kommt drauf an, bei den einfachen DCF77-Modulen musst du aus dem> demodulierten Signal die Nutzinformation selbst zusammenbasteln. Es gibt> aber tonnenweise Beispielcode hier im Forum. Die komplexeren Module> können das von sich aus, aber die gehen dann schon in Richtung komplette> Funkuhr.>
Wie kann ich denn zwischen den einfachen und komplexen unterscheiden?
Das komplexe demoudliert das Signal von alleine? Wie kommen dann die
daten auf meinen uC?
>>Wie sieht es denn mit dem Empfang dieser Teile aus? haben die an "jeder">>Stelle Empfang? Oder muss die Uhr dann möglichst am Fenster Platziert>>werden o.ä?> Wenn du nicht gerade im Stahlbetonbunker wohnst, dann sollte das gehen.
Das ist schonmal gut :D
> Störender sind die Felder, die dein Home-Equipment ausstrahlt. Also> vielleicht nicht direkt neben das Fernost-Schaltnetzteil stellen.>
Wird beachtet ;)
Ich denke, ich werde das ganze vorerst mal mit einem Uhrenqaurz
aufbauen, später dann evtl mal mit einem DCFF77 Modul.
Allerdings ist die Lösung mit Quarz deutlich günstiger(ca 1€) im
Gegensatz zum DCFF77 Modul(10€ aufwärts).
Das Datum, der Wochentag und ob gerade ein Schaltjahr ist, das
Umschalten zwischen Sommer und Winter Zeit würe sich über das DCF77 sehr
einfach lösen lassen.
Mit einem Quarz sollte das doch aber auch möglich sein, sofern die Uhr
einmal eignestellt ist oder?
Wird zwar vom Programmieraufwand wesentlich größer, aber spart bei jeder
Zukünfitgen Uhr 10 € :P
Außerdem ist es eine gute Übung ;)
Ich werde jetzt erst einmal versuchen, die Uhr mit Alarmfunktion und die
Datumsanzeige zu erstellen, später soll dann noch ein Temperatursensor
dazu kommen.
Oder unterschätze ich den Aufwand, der nötig sein wird um die Uhr mit
Datumsanzeige zu Programmieren und es wäre sinnvoller ein DCF77 Modul zu
verwenden?
Danke für eure Antworten!
Ihr habt mir wirklich super weiter geholfen.
Florian schrieb:> Ich werde es erst einmal mit dem Internen timer laufen lassen, und dann> bei der nächsten gelegenheit einen Uhrenquarz mit bestellen.
Wozu?
Die genaue Frequenz musst du auch bei einem Uhrenquarz feststellen. Der
schwingt auch nicht aus dem Stand heraus auf exakt 32768.0000000000 hZ,
sondern muss mit Kondensatoren gezogen (also abgeglichen) werden, bzw.
man muss die exakte Frequenz aus der Abweichung errechnen und per
Programm berücksichtigen.
> Dass sollte ja dann keine größere Umstellung sein oder?> (von timer1 auf 2 wechseln und dort Prescaler etc anpassen)
Das du dich da mal nicht täuscht. An einem Uhrenquarz am Timer 2 sind
Leute schon verzweifelt. :-)
>Dass sollte ja dann keine größere Umstellung sein oder?
Wie Karl Heinz schon sagt: im Asynchron-Modus musst du einige
Besonderheiten beim Zugriff beachten, ist aber kein Hexenwerk, sondern
steht alles im Manual.
Hinsichtlich Genauigkeit bringt der Uhrenquarz an Timer2 nur wenig,
diese Konstellation bringt aber deutliche Vorteile hinsichtlich
Energieverbrauch, weil du statt IDLE den POWER-SAVE Sleep-Modus nehmen
kannst. Idle (3V3/1Mhz) = 250µA; Power Save (3V3) = 10µA lt. Datenblatt
>Wie kann ich denn zwischen den einfachen und komplexen unterscheiden?>Das komplexe demoudliert das Signal von alleine? Wie kommen dann die>daten auf meinen uC?
Die einfachen haben einen Ausgang, an dem das demodulierte Funksingal
ausgegeben wird ( kurzer oder langer Puls ), es ist an dir aus den
Pulsen und der aktuellen Sekunde die Nutzdaten ( Datum, Uhrzeit, etc )
zusammenzubasteln. Glücklicherweise haben das bereits Heerscharen von
Programmierern vor dir getan und du kannst auf vorhandenen Quellcode
zugreifen.
Die komplexeren Module machen diese Auswertung von sich aus und haben
ein Interface( z.B. i2c, Seriell ), über das du die einzelnen
Datumskomponenten direkt abfragen kannst.
>Oder unterschätze ich den Aufwand, der nötig sein wird um die Uhr mit>Datumsanzeige zu Programmieren und es wäre sinnvoller ein DCF77 Modul zu>verwenden?
Versuchs erstmal ohne DCF77-Modul, guck wie weit du durch Anpassungen
mit der Genauigkeit kommst. Wenn für deinen Anspruch zu ungenau, dann
DCF77-Modul dazu.
Wenn Energieverbrauch ein Thema, dann Uhrenquarz an Timer2 und
Power-Save Sleepmode, sonst belass es bei dem Standard Quarz und
Idle-Sleepmode. Und ein neuerer AVR-Typ mit P hinter der Typbezeichnung
bringt nochmal was wg. Energieverbrauch
Gruss, Heinz
Karl Heinz Buchegger schrieb:> Florian schrieb:>>> Ich werde es erst einmal mit dem Internen timer laufen lassen, und dann>> bei der nächsten gelegenheit einen Uhrenquarz mit bestellen.>> Wozu?> Die genaue Frequenz musst du auch bei einem Uhrenquarz feststellen. Der> schwingt auch nicht aus dem Stand heraus auf exakt 32768.0000000000 hZ,> sondern muss mit Kondensatoren gezogen (also abgeglichen) werden, bzw.> man muss die exakte Frequenz aus der Abweichung errechnen und per> Programm berücksichtigen.>
Um die Uhr über lange Zeit möglichst genau zu machen. Der Uhrenquarz
schwankt doch weniger in der Frequenz, wenn die Temperatur sich ändert.
Außerdem kann man dann einen tieferen Schlaf modus nutzen, da der
Interne Oszillator ja nich dauernd laufen muss.
Und schaden kann es ja auf keinen Fall ;)
>> Dass sollte ja dann keine größere Umstellung sein oder?>> (von timer1 auf 2 wechseln und dort Prescaler etc anpassen)>> Das du dich da mal nicht täuscht. An einem Uhrenquarz am Timer 2 sind> Leute schon verzweifelt. :-)
Na hoffentlich gehöre ich nicht dazu :P
Florian schrieb:> Um die Uhr über lange Zeit möglichst genau zu machen. Der Uhrenquarz> schwankt doch weniger in der Frequenz, wenn die Temperatur sich ändert.
Darauf würde ich nicht wetten.
Ein Uhrenquarz jat den Charme, dass er mit seinen 32768Hz eine 2-er
POtenz ist und als solcher wunderbar in diskret aufgebaute Teilerketten
eingesetzt werden kann.
Ok, vielleicht ist er ein wenig unempfindlicher, was die temperatur
angeht. Davon versteh ich nicht viel. Meine letzte Uhr hängt an der 50Hz
Netzfrequenz, dann interessiert mich das alles herzlich wenig, weil sich
die Stromlieferanten um die genaue Frequenz kümmern und nachführen :-)
> Außerdem kann man dann einen tieferen Schlaf modus nutzen, da der> Interne Oszillator ja nich dauernd laufen muss.> Und schaden kann es ja auf keinen Fall ;)
das ist ein Argument.
Aber schon angesprochen: es ist letzten Endes ziemlich uninteressant,
wenn dein µC theoretisch 10 Jahre lang aus der Batterie/Akku laufen
könnte, sich der Akku aber nach 2 Jahren selbst bis auf 0 entladen hat.
:-)
> Na hoffentlich gehöre ich nicht dazu :P
Na, ja.
Wenn du dir sorgen um die programmtechnische Datumsweiterschaltung
machst :-)
Karl Heinz Buchegger schrieb:> Florian schrieb:>>> Um die Uhr über lange Zeit möglichst genau zu machen. Der Uhrenquarz>> schwankt doch weniger in der Frequenz, wenn die Temperatur sich ändert.>> Darauf würde ich nicht wetten.> Ein Uhrenquarz jat den Charme, dass er mit seinen 32768Hz eine 2-er> POtenz ist und als solcher wunderbar in diskret aufgebaute Teilerketten> eingesetzt werden kann.> Ok, vielleicht ist er ein wenig unempfindlicher, was die temperatur> angeht. Davon versteh ich nicht viel. Meine letzte Uhr hängt an der 50Hz> Netzfrequenz, dann interessiert mich das alles herzlich wenig, weil sich> die Stromlieferanten um die genaue Frequenz kümmern und nachführen :-)>
Ich werde es erst einmal mit dem Internen Oszillator aufbauen, wird mir
das zu ungenau muss halt was anderes her :D
Das mit der Netzfrequenz läuft wie ab?
230V über einen Trafo auf 5V und dann die 50Hz als externen Timer
nutzen?
Hat natürlich den Vorteil, dass man das Problem mit der Stromversorgung
Automatisch mit löst. Und um Sleep modes braucht man sich auch keinen
Kopf machen.
>> Außerdem kann man dann einen tieferen Schlaf modus nutzen, da der>> Interne Oszillator ja nich dauernd laufen muss.>> Und schaden kann es ja auf keinen Fall ;)>> das ist ein Argument.> Aber schon angesprochen: es ist letzten Endes ziemlich uninteressant,> wenn dein µC theoretisch 10 Jahre lang aus der Batterie/Akku laufen> könnte, sich der Akku aber nach 2 Jahren selbst bis auf 0 entladen hat.> :-)>
Ja das stimmt natürlich auch wieder :D
Man macht sich immer viel zu viele Gedanken ;)
>> Na hoffentlich gehöre ich nicht dazu :P>> Na, ja.> Wenn du dir sorgen um die programmtechnische Datumsweiterschaltung> machst :-)
Die Datumsweiterschaltung ist nicht das Problem ;) immer wenn die Uhr
bei 00:00:00 an kommt, den tag +1 ;)
Komplizierter wird das Ganze dann mit dem Schaltjahr ;) oder wenn man
beispielsweise angezeigt haben möchte, wann Ostern ist. Das ist ja
abhängig vom Mond? oder so :D auf jeden Fall verschiebt es sich jedes
Jahr :D
Darum mache ich mir eher Sorgen :D
Florian schrieb:> Komplizierter wird das Ganze dann mit dem Schaltjahr ;)
ist eine einfache Abfrage
> oder wenn man> beispielsweise angezeigt haben möchte, wann Ostern ist.
Dafür hat C.F. Gauss eine berühmte Berechnungsmethode gefunden.
http://de.wikipedia.org/wiki/Gau%C3%9Fsche_Osterformel
Florian schrieb:> Karl Heinz Buchegger schrieb:>> Florian schrieb:>>>>> Um die Uhr über lange Zeit möglichst genau zu machen. Der Uhrenquarz
...
> Die Datumsweiterschaltung ist nicht das Problem ;) immer wenn die Uhr> bei 00:00:00 an kommt, den tag +1 ;)> Komplizierter wird das Ganze dann mit dem Schaltjahr ;) oder wenn man> beispielsweise angezeigt haben möchte, wann Ostern ist. Das ist ja> abhängig vom Mond? oder so :D auf jeden Fall verschiebt es sich jedes> Jahr :D> Darum mache ich mir eher Sorgen :D
wie sieht es dann mit Normalzeit/Sommerzeit Umschaltung aus? Das macht
Dir der DCF77 auch ...
Thomas Eckmann schrieb:>> Dafür hat C.F. Gauss eine berühmte Berechnungsmethode gefunden.>> http://de.wikipedia.org/wiki/Gau%C3%9Fsche_Osterformel>> Ist auch nur ein Vierzeiler.
Na dann ist das doch gar nichtso wild, wie ich dachte....
Danke :)
Wolfgang Heinemann schrieb:> wie sieht es dann mit Normalzeit/Sommerzeit Umschaltung aus? Das macht> Dir der DCF77 auch ...
Deswegen überlege ich ja, ob es sich wirklich lohnt das alles selbst zu
programmieren, oder eben den DCF77 zu verwenden.
Ich werde mal sehen, wie weit ich mit dem Programm komme, falls es zu
umfangreich wird, kann ich ja immer noch auf den DCF77 zurück greifen.
Dann habe ich zumindest den Code für eine Uhr und ein paar andere Sachen
auf dem Rechner. Das kann man ja immer brauchen ;)
Hat jemand sonst noch Ideen, was man in so einem Projekt unterbringen
kann?
Bisher schwebt mir folgendes vor:
- Uhrzeit
- Datum
- Temperatur
- Bestimmte Tage(Ostern, Weihnachten, evtl Geburtstage)
Das ganze soll dann auf einem lcd ausgegeben werden.
ob 2x16 oder 4x20 weiß ich noch nicht, das wird letztenendes vom Umfang
abhängen. Das ganze soll dann in etwas so aussehen:
----------------
|07:58:30 25°C|
|DO.12.Sep 2013 |
|Ostern o.ä. |
|Geburstage o.ä |
----------------
Bein einem 2*16 Display, muss man dann per knopfdruck zwischen den
Zeilen 1-2 und 3-4 umschalten. Dadurch wäre dann auch noch mehr Platz
für andere Dinge wie ....?
Habe mir das Vorgestellt, wie eine Art Menü. Man drückt eine Taste, nach
dem aufwachen wird abgefragt, ob diese gedrückt ist und wenn ja, dann
wird weiter geschaltet (Uhrzeit+Datum)->(Feiertage+Geburtsage)->(weitere
Funktionen)->(etc)
Hi Florian,
Florian schrieb:> Thomas Eckmann schrieb:
...
> Hat jemand sonst noch Ideen, was man in so einem Projekt unterbringen> kann?
da Du die Hintergrundbeleuchtung dimmen möchtest, vermute ich mal das
die Uhr im Schlafzimmer, neben dem Bett stehen soll.
Dann baue doch noch eine Erkennung der REM-Schlafphasen ein. Dann kannst
Du einen Wecker programmieren der Dich "sanft" aus dem Schlaf holt ...
Wolfgang Heinemann schrieb:> da Du die Hintergrundbeleuchtung dimmen möchtest, vermute ich mal das> die Uhr im Schlafzimmer, neben dem Bett stehen soll.> Dann baue doch noch eine Erkennung der REM-Schlafphasen ein. Dann kannst> Du einen Wecker programmieren der Dich "sanft" aus dem Schlaf holt ...
Die Idee finde ich gut, danke dafür. :)
Habe mir das gerade mal bei Wikipedia an gesehen, Sensoren, die die
Gehirnaktivität messen, bekommt man wohl nicht ohne weiteres. ;)
Die zweite Methode über einen Bewegungssensor wäre vermutlich nicht
schlecht. Allerdings habe ich nicht unbedingt Lust mit einem Armband zu
schlafen, dass dann am Wecker hängt und unter Verwendung von
Standardbauformen, wird das auch nicht sonderlich komfortabel werden :D
Hat jemand so etwas schon mal gemacht?
Kann man den Sensor auch am Bett anbringen und so Bewegungen messen?
Da sehe ich allerdings ein weiteres Problem, wenn man nicht alleine
schläft, erkennt der Sensor nicht, von wem die Bewegung kommt und weckt
einen dann in der Tiefschlafphase, weil jemand anderes sich gerade
bewegt hat.
Hi Florian,
Florian schrieb:> Wolfgang Heinemann schrieb:
...
> Hat jemand so etwas schon mal gemacht?
ich habe schon mehrere Artikel im Internet gesehen, weis aber nicht mehr
wo. Suche doch mal nach "DIY REM"
> Kann man den Sensor auch am Bett anbringen und so Bewegungen messen?
Eine Lösung hatte einen Sensor in das Kopfkissen gebaut. Das schien mir
Praktikabel. Eine andere Lösung basierte auf einer Brille. In der Brille
war eine LED und ein Lichsensor. Durch die Augenlider hindurch wurden
damit die Augenbewegungen gemessen ...
> Da sehe ich allerdings ein weiteres Problem, wenn man nicht alleine> schläft, erkennt der Sensor nicht, von wem die Bewegung kommt und weckt> einen dann in der Tiefschlafphase, weil jemand anderes sich gerade> bewegt hat.
Das mag sein ... bietet aber viel Raum für Experimente ;-)
Wenn Du schon die Beleuchtung dimmen möchtest, dann spendiere auch noch
einen LDR, damit das automatisch geht. Ein IR-Abstandssensor (oder PIR)
könnte Bewegungen erfassen und Du könntest mit einem "Wink" die
Beleuchtung ein schalten ... kein Tastensuchen im Dunkeln.
Ein Temperatursensor könnte Dir beim Aufstehen die Außentemperatur
verraten.
Die Farbe der Hintergrundbeleuchtung könntest Du mit RGB-Leds ändern und
damit eine schöne ambiente Beleuchtung bauen.
MP3-Player, und Internetradio sind vielleicht auch nett ...
Ach, baue doch einfach direkt ein Android Gerät auf, dann kannst Du auch
Apps drauf laden ;-)
Hi,
bring doch erstmal den Umfang aus FeatureRelease V1.0 zum fliegen. D.h.
Uhrzeit auf Quarzbasis ausreichend genau. Wenn das dann fliegt hast du
auch Anhaltspunkte, wieviel Aufwand du in die hier mal eben kurz
entworfenen FeatureReleases V2.0 bis VEsoterik.0 stecken musst.
>Habe mir das Vorgestellt, wie eine Art Menü. Man drückt eine Taste, nach>dem aufwachen wird abgefragt, ob diese gedrückt ist und wenn ja, dann>wird weiter geschaltet (Uhrzeit+Datum)->(Feiertage+Geburtsage)->(weitere>Funktionen)->(etc)
Schon mal über einen Dreh/Drücksteller nachgedacht? Damit kannst du dann
z.B. deine variablen Daten einfach und intuitiv eingeben ( Geburtstage
o.ä. ), oder aauch durch mehr als 4 anzuzeigende Zeilen scrollen. Aber
auch der fällt definitiv erst ins Release V2.0.
Gruss, Heinz
Wolfgang Heinemann schrieb:> Eine Lösung hatte einen Sensor in das Kopfkissen gebaut. Das schien mir> Praktikabel. Eine andere Lösung basierte auf einer Brille. In der Brille> war eine LED und ein Lichsensor. Durch die Augenlider hindurch wurden> damit die Augenbewegungen gemessen ...
Eine Brille ist auch nicht besser :D
Aber die Kopfkiseen Methode sollte ok sein.
Wolfgang Heinemann schrieb:> Wenn Du schon die Beleuchtung dimmen möchtest, dann spendiere auch noch> einen LDR, damit das automatisch geht.
Ich möchte die LED ja nicht in abhängigkeit vom Umgebungslicht dimmen,
sondern, wenn die Display beleuchtung an ist, soll diese nach z.b. 3s
nur noch halb so stark leuchten, und nach 5s Komplett aus schalten.
>Ein IR-Abstandssensor (oder PIR)> könnte Bewegungen erfassen und Du könntest mit einem "Wink" die> Beleuchtung ein schalten ... kein Tastensuchen im Dunkeln.
Das ist eine geniale Idee :) nur diese Teile sind doc ziemlich
empfindlich oder? Die Beleuchtung soll ja nur angehen, wenn meine Hand
über ihm ist und nicht, wenn sich irgendwo im Raum etwas bewegt oder
wenn man sich nachts im Bett dreht?
> Ein Temperatursensor könnte Dir beim Aufstehen die Außentemperatur> verraten.
Auch eine gute Idee :) nur dann muss ein Kabel aus dem Fenster gehängt
werden. das macht den Wecker dann nicht sonderlich felxibel/portabel
> Die Farbe der Hintergrundbeleuchtung könntest Du mit RGB-Leds ändern und> damit eine schöne ambiente Beleuchtung bauen.
Die LEDs für die Hintergrundbeleuchtung sind ja schon am Display
eingebaut.
Oder meinst du zusätzlich für den Wecker? Also Nachttisch z.b.?
> MP3-Player, und Internetradio sind vielleicht auch nett ...>> Ach, baue doch einfach direkt ein Android Gerät auf, dann kannst Du auch> Apps drauf laden ;-)
:D Ja wäre schon nett ;) aber kann man das mit einem AVR überhaupt
machen?
katastrophenheinz schrieb:> bring doch erstmal den Umfang aus FeatureRelease V1.0 zum fliegen. D.h.> Uhrzeit auf Quarzbasis ausreichend genau
Wird gemacht :)
katastrophenheinz schrieb:> Schon mal über einen Dreh/Drücksteller nachgedacht? Damit kannst du dann> z.B. deine variablen Daten einfach und intuitiv eingeben ( Geburtstage> o.ä. ), oder aauch durch mehr als 4 anzuzeigende Zeilen scrollen. Aber> auch der fällt definitiv erst ins Release V2.0.
Ja habe ich.
Das sollte ja keine großen Änderungen im Programm machen oder?
Soweit ich das Verstanden habe, gibt der Drehsteller bei jedem Einrasten
einen Puls aus. Je nachdem ob links oder rechts gedreht wird, an einem
anderen. Also müsste man diese nur an die Pins anschließen, die bisher
die Taster zum umschalten der Menüpunkte besetzen?
Noch eine allgemeine Frage:
Ist es sinnvoller die Pins active low oder high zu betreiben?
Nochmal vielen Dank für die guten Ideen und Hilfestellungen bei meinen
Problemchen :)
Hi Florian,
Florian schrieb:> Wolfgang Heinemann schrieb:>> Eine Lösung hatte einen Sensor in das Kopfkissen gebaut. Das schien mir
...
>>Ein IR-Abstandssensor (oder PIR)>> könnte Bewegungen erfassen und Du könntest mit einem "Wink" die>> Beleuchtung ein schalten ... kein Tastensuchen im Dunkeln.>> Das ist eine geniale Idee :) nur diese Teile sind doc ziemlich> empfindlich oder? Die Beleuchtung soll ja nur angehen, wenn meine Hand> über ihm ist und nicht, wenn sich irgendwo im Raum etwas bewegt oder> wenn man sich nachts im Bett dreht?
Empfindlich werden die Teile durch die Linse, die auf dem PIR-Element
steckt. Über geeignete Linsen kann man den Arbeitsbereich einschränken.
Wenn man die Linse ganz weg lässt funktioniert der PIR nur auf wenige
cm. Dazu kann man noch die Richtung bestimmen in dem man den Sensor
hinter einem Loch montierst.
Als es noch keine Smartphones gab wurde eine Freisprecheinrichtung für
Ericsson Handys hergestellt. Bei dieser Freisprecheinrichtung genügte
ein Wink vor dem, in die Halterung, eingesetzten Handy um einen Anruf
anzunehmen. So war sicher gestellt das das Handy während der Fahrt nicht
angefasst werden musste um einen Anruf entgegen zu nehmen. Das Gerät
enthielt einen PIR-Sensor ohne Linse hinter einem kleinen Loch im
Gehäuse montiert.
>> Ein Temperatursensor könnte Dir beim Aufstehen die Außentemperatur
...
> Nochmal vielen Dank für die guten Ideen und Hilfestellungen bei meinen> Problemchen :)
Aber katastrophenheinz hat schon recht, fang erst mal klein an.
Hauptsache es läuft schon mal etwas, das ist gut für die Motivation :-)
> Empfindlich werden die Teile durch die Linse, die auf dem PIR-Element> steckt. Über geeignete Linsen kann man den Arbeitsbereich einschränken.> Wenn man die Linse ganz weg lässt funktioniert der PIR nur auf wenige> cm. Dazu kann man noch die Richtung bestimmen in dem man den Sensor> hinter einem Loch montierst.>
Das ist super, dann muss so ein Teil auf jeden Fall mit rein ;)
Das kommt gleich zusammen mit dem Uhrenqaurz auf meine Liste für die
nächste Bestellung.
Wenn wir gerade bei bestellen sind, was wäre denn ein geeigneter
Temperatursensor für dieses Projekt?
Ich hätte da an etwas wie TSIC206 gedacht. Dürfte genauer sein als einen
Temperaturabhängigen Widerstand zu benutzen oder?
> Als es noch keine Smartphones gab wurde eine Freisprecheinrichtung für> Ericsson Handys hergestellt. Bei dieser Freisprecheinrichtung genügte> ein Wink vor dem, in die Halterung, eingesetzten Handy um einen Anruf> anzunehmen. So war sicher gestellt das das Handy während der Fahrt nicht> angefasst werden musste um einen Anruf entgegen zu nehmen. Das Gerät> enthielt einen PIR-Sensor ohne Linse hinter einem kleinen Loch im> Gehäuse montiert.>
Interesant :) Danke für die Info.
>>> Ein Temperatursensor könnte Dir beim Aufstehen die Außentemperatur> ...>> Nochmal vielen Dank für die guten Ideen und Hilfestellungen bei meinen>> Problemchen :)>> Aber katastrophenheinz hat schon recht, fang erst mal klein an.> Hauptsache es läuft schon mal etwas, das ist gut für die Motivation :-)
Naja also die Uhr läuft ;) und eine Datumsanzeige habe ich auch schon :)
Jetzt muss dann erstmal sichergestellt werden, dass die Uhr auch genau
ist und dann müssen ein Paar Temperatursensoren her ;)
Wie ist es denn mit Gehäußen, was verwendet man da am besten, damit das
ganze dann am Ende auch gut aussieht?
Kann man mit einfachen Mitteln schöne Gehäuse bauen?
Habe leider weder einen 3D Drucker, noch eine Fräse in meiner Wohung :P
Florian schrieb:>> Empfindlich werden die Teile durch die Linse, die auf dem PIR-Element>> steckt. Über geeignete Linsen kann man den Arbeitsbereich einschränken.>> Wenn man die Linse ganz weg lässt funktioniert der PIR nur auf wenige>> cm. Dazu kann man noch die Richtung bestimmen in dem man den Sensor>> hinter einem Loch montierst.>>> Das ist super, dann muss so ein Teil auf jeden Fall mit rein ;)
besorge Dir einen fix und fertig aufgebauten mit Digitalausgang und
montierter Linse. Nur den PIR zu kaufen und den Verstärker dann selbst
zu bauen ist etwas mühselig.
> Das kommt gleich zusammen mit dem Uhrenqaurz auf meine Liste für die
...
> Wie ist es denn mit Gehäußen, was verwendet man da am besten, damit das> ganze dann am Ende auch gut aussieht?> Kann man mit einfachen Mitteln schöne Gehäuse bauen?> Habe leider weder einen 3D Drucker, noch eine Fräse in meiner Wohung :P
Wenn Du einen PIR in das Gehäuse einbauen möchtest solltest Du darauf
achten das es lichtdicht ist und zwar im UV Bereich, also kein dünnes,
durchscheinendes Kunststoffgehäuse.
Ansonsten ist das natürlich hochgradig Geschmackssache.
>Wenn wir gerade bei bestellen sind, was wäre denn ein geeigneter>Temperatursensor für dieses Projekt?
Ich würde einen 18B20 nehmen: OneWire-Interface, kostet nicht die Welt,
ausreichend genau, umfangreicher Beispielcode vorhanden
>Kann man mit einfachen Mitteln schöne Gehäuse bauen?
Um diese Frage werden hier regelmäßig blutige Glaubenskriege geführt.
Schönheit liegt im Auge des Betrachters. Stell ein Bild deiner Kiste mit
request for comments hier ein. Ein unterhaltsames Wochenende ist
garantiert - allerdings auf deine Kosten ;-).
>Je nachdem ob links oder rechts gedreht wird, an einem>anderen. Also müsste man diese nur an die Pins anschließen, die bisher>die Taster zum umschalten der Menüpunkte besetzen?
Nee, nicht wirklich. Such mal hier im Forum nach Drehencoder. Egal ob
Beispielcode, Funktionsweise, Unterschiede, du findest Erklärungen für
alles.
>nur dann muss ein Kabel aus dem Fenster gehängt>werden. das macht den Wecker dann nicht sonderlich flexibel/portabel
Stichwort Funkstrecke. Ein Feature für ReleaseUmfang 5.0
>Ist es sinnvoller die Pins active low oder high zu betreiben?
Wie meinst du das? Active High oder Low bestimmt der
Schnittstellenpartner. Wenn im Datenblatt von dem "Active Low"
drinsteht, dann ist das so, ohne daß du da was dran drehen kannst.
Gruss, Heinz
Wolfgang Heinemann schrieb:> besorge Dir einen fix und fertig aufgebauten mit Digitalausgang und> montierter Linse. Nur den PIR zu kaufen und den Verstärker dann selbst> zu bauen ist etwas mühselig.
okay, danke.
katastrophenheinz schrieb:>>Wenn wir gerade bei bestellen sind, was wäre denn ein geeigneter>>Temperatursensor für dieses Projekt?> Ich würde einen 18B20 nehmen: OneWire-Interface, kostet nicht die Welt,> ausreichend genau, umfangreicher Beispielcode vorhanden>
Gut werde ich mir ansehen :)
>>Kann man mit einfachen Mitteln schöne Gehäuse bauen?> Um diese Frage werden hier regelmäßig blutige Glaubenskriege geführt.> Schönheit liegt im Auge des Betrachters. Stell ein Bild deiner Kiste mit> request for comments hier ein. Ein unterhaltsames Wochenende ist> garantiert - allerdings auf deine Kosten ;-).>
:D mal sehen ;) erst mal muss die Kiste ja laufen ;)
>>nur dann muss ein Kabel aus dem Fenster gehängt>>werden. das macht den Wecker dann nicht sonderlich flexibel/portabel> Stichwort Funkstrecke. Ein Feature für ReleaseUmfang 5.0>>>Ist es sinnvoller die Pins active low oder high zu betreiben?> Wie meinst du das? Active High oder Low bestimmt der> Schnittstellenpartner. Wenn im Datenblatt von dem "Active Low"> drinsteht, dann ist das so, ohne daß du da was dran drehen kannst.>
Ich meinte damit ob ich die Pins meines uC besser mit einem Pull up oder
Pull down Widerstand versehe. Um dann in der Software abzufragen ob der
Pin low oder high ist, damit eine bestimmte aktion ausgelöst wird?
Gruß Florian
Ich habe die Uhr übrigens heute Nacht laufen lassen, nach 7h geht sie um
2,41 Minuten vor. Das erscheint mir ein wenig viel oder?
Werde nochmal die Einstellung des Timers überprüfen, evtl. habe ich da
ja einen Zahlendreher.
Florian schrieb:> Ich habe die Uhr übrigens heute Nacht laufen lassen, nach 7h geht sie um> 2,41 Minuten vor. Das erscheint mir ein wenig viel oder?> Werde nochmal die Einstellung des Timers überprüfen, evtl. habe ich da> ja einen Zahlendreher.
Solange du keinen Quarz drann hast, sondern den internen Oszillator
benutzt, ist das alles Makulatur.
Was denkst du eigentlich, warum wir uns den Mund fusselig geredet haben,
dass du einen Quarz brauchst.
>Ich meinte damit ob ich die Pins meines uC besser mit einem Pull up oder>Pull down Widerstand versehe. Um dann in der Software abzufragen ob der>Pin low oder high ist, damit eine bestimmte aktion ausgelöst wird?
Für Input-Pins kann optional ein interner PullUp aktiviert werden.
Solange keine explizite Festlegung dagegenspricht (z.B. bei i2c ) würde
ich den nehmen. Reduziert Bastelzeit.
>Das erscheint mir ein wenig viel oder?
Wer hätte das gedacht?!? Reality meets Theory.
a) wie hoch ist die Abweichung in Prozent?
b) Riskier mal einen Blick ins Atmel-Manual, was du for free downloaden
kannst. Da gibts neben anderen spannenden Sachen ziemlich weit hinten
auch Diagramme, z.B. "RC Oscillator Frequency vs. VCC" bzw. "vs Temp"
c) Ermittle, ob deine Abweichung im Rahmen der Spec. liegt
d) ggf. Fehlerabstellung, um dann festzustellen:
e) Nimm endlich den verdammten externen Quarz.
Gruss, Heinz
Karl Heinz Buchegger schrieb:> Solange du keinen Quarz drann hast, sondern den internen Oszillator> benutzt, ist das alles Makulatur.> Was denkst du eigentlich, warum wir uns den Mund fusselig geredet haben,> dass du einen Quarz brauchst.
Ihr braucht euch nicht den Mund fusselig reden, ich habe das schon
kapiert.
Deshalb habe ich ja gesagt, dass ich mir einen Uhrenquarz besorgen
werde.
Da ich aber momentan keinen Quarz hier habe, bleibt mir ja nur der
interne Oszillator.
Allerdings hätte ich nicht erwartet, dass dieser so ungenau ist.
Ist es im allgemeinen ratsam immer einen externen Quarz zu benutzen?
oder reicht der interne aus, wenn man nicht gerade eine Uhr bauen will?
katastrophenheinz schrieb:>>Da ich aber momentan keinen Quarz hier habe, ...> Hast du doch! Nämlich den vom STK500. Kann man als clock source> konfigurieren.
Oh. okay.... habe das gerade versucht... klappt leider nicht.
Ich habe außerdem gerade festestellt, dass jegliches ändern der Freuqenz
in den Fusebits trotzdem zu einer richtigen Anzeige auf dem LCD führen?
Also ich stelle 8 MHz ein, lcd funktioniert genauso bei 1,2,4 MHz sogar
wenn er ich die Fusebits auf ext. clock setze Funktioniert es?
Das kann doch eigenltich nicht sein?
Benutze das Avr plugin für eclipse.
Irgendwie Verstehe ich das gerade überhaupt nicht, kann mir jemand
helfen?
Florian schrieb:> katastrophenheinz schrieb:>>>Da ich aber momentan keinen Quarz hier habe, ...>> Hast du doch! Nämlich den vom STK500. Kann man als clock source>> konfigurieren.>> Oh. okay.... habe das gerade versucht... klappt leider nicht.>> Ich habe außerdem gerade festestellt, dass jegliches ändern der Freuqenz> in den Fusebits trotzdem zu einer richtigen Anzeige auf dem LCD führen?> Also ich stelle 8 MHz ein, lcd funktioniert genauso bei 1,2,4 MHz sogar> wenn er ich die Fusebits auf ext. clock setze Funktioniert es?> Das kann doch eigenltich nicht sein?> Benutze das Avr plugin für eclipse.>> Irgendwie Verstehe ich das gerade überhaupt nicht, kann mir jemand> helfen?
Hat sich erledigt, habe das Problem gefunden.
Ich weiß nur leider nicht mit welcher Freqeunz der uC dann läuft?
Habe gelesen, dass man diese über AVR Studio einstellen kann?
Geht das über Eclipse&Avr Plgin auch? Habe kein AVR Studio.
>Habe gelesen, dass man diese über AVR Studio einstellen kann?
Ja kann man. Mögliche Werte sind 3686400/n, n=1,2,3,...
Nutzt dir aber nichts, weil du den aktuell eingestellten Wert nicht
kennst.
>Habe kein AVR Studio.
Kannst du dir für lau runterladen. Wo ist das Problem? Und wenn du es
nur dafür nutzt, die Target clock auf einen definierten Wert
einzustellen. Dafür reicht auch AVR Studio 4.
Das STK500 hat einen mit "Crystal" beschrifteten Sockel, Quarze gibt es
beim old fashioned "Radio- und Fernsehtechniker" um die Ecke oder im
Internetz zum bestellen. Notfalls nimm irgendein Stück digitalen
Elektronikschrott und löte einen Quarz aus. Kann doch so schwer nicht
sein.
Gruss, Heinz
katastrophenheinz schrieb:>>Habe gelesen, dass man diese über AVR Studio einstellen kann?> Ja kann man. Mögliche Werte sind 3686400/n, n=1,2,3,...> Nutzt dir aber nichts, weil du den aktuell eingestellten Wert nicht> kennst.
Gut, danke.
>>>Habe kein AVR Studio.> Kannst du dir für lau runterladen. Wo ist das Problem? Und wenn du es> nur dafür nutzt, die Target clock auf einen definierten Wert> einzustellen. Dafür reicht auch AVR Studio 4.>
Avr Studio läuft nur auf Windows, ich habe aber Linux.
> Das STK500 hat einen mit "Crystal" beschrifteten Sockel, Quarze gibt es> beim old fashioned "Radio- und Fernsehtechniker" um die Ecke oder im> Internetz zum bestellen. Notfalls nimm irgendein Stück digitalen> Elektronikschrott und löte einen Quarz aus. Kann doch so schwer nicht> sein.
Das weis ich, und davon werde ich mir bei der nächsten Gelegenheit auch
welche holen.
Aber momentan habe ich leider keinen zur Hand.
Werde jetzt noch einmal versuchen, den uc über die Clock des stk500
laufen zu lassen.
> Gruss, Heinz