www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATtiny13, Extreme Abweichung bei 'Uhr'


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

Bewertung
0 lesenswert
nicht lesenswert
Hallöchen zusammen,
ähnliches wurde hier schon mal angesprochen,
aber das hilft mir leider nicht weiter.

Mein Problem:
nach 1 Minute hab ich schon ca. 5 Sekunden Verzögerung in meiner 'Uhr'.

Die Interrupt-Routine kann eigentlich nicht zu lange sein,
wenn ich das richtig sehe und berechnet wird auch nichts weiter.

Könnt ihr bitte einen kleinen Blick drüber werfen :) Danke!

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Mein Problem:
>nach 1 Minute hab ich schon ca. 5 Sekunden Verzögerung in meiner 'Uhr'.

Dann benutz doch einen Quarz. Der interne RC Osci taugt nur
für Ampelsteuerungen.

Autor: tollo1400 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir gehts eigentlich mehr darum, wo mein Fehler liegt.
Eine so extreme Abweichung kann nie und nimmer NUR am internen 
Oscillator liegen, oder doch?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Eine so extreme Abweichung kann nie und nimmer NUR am internen
>Oscillator liegen, oder doch?

Buhaha!

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tollo1400 schrieb:

> Eine so extreme Abweichung kann nie und nimmer NUR am internen
> Oscillator liegen, oder doch?

Doch, kann schon.  Atmel garantiert dir nur 10 % Kalibriergenauigkeit
im Auslieferungszustand, und das auch nur für die Bedingungen, für
die der vorkalibrierte OSCCAL-Wert definiert ist (Vcc = 3 V, tamb =
25 °C beim ATtiny13).  In der Regel ist die Kalibrierung allerdings
schon etwas besser, so bei 1 % sollte sie schon liegen.  Wenn du
allerdings den ATtiny13 mit 5 V betreibst, kann er schon gut daneben
liegen.

Autor: tollo1400 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
10% - Das hätte ich nie gedacht. Danke für die Information.

Das ganze soll eigentlich nur eine Art Eieruhr werden,
da würde es ja eigentlich reichen, wenn ich die Werte ein wenig anpasse,
bis is ungefähr am Sekundentakt bin :)

Schönen Abend noch

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tollo1400 schrieb:
> 10% - Das hätte ich nie gedacht. Danke für die Information.

Nich soviel "denken" (d.h. vermuten, raten, glauben, ...) sondern halt 
erst mal die Fakten besorgen ist meist die bessere Strategie.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tollo1400 schrieb:

> Das ganze soll eigentlich nur eine Art Eieruhr werden,
> da würde es ja eigentlich reichen, wenn ich die Werte ein wenig anpasse,
> bis is ungefähr am Sekundentakt bin :)

Es genügt, wenn du dir den OSCCAL-Wert ermittelst, der für deine
Umgebung passt, sofern du eine einigermaßen in der Spannung stabile
Batterie hast (Lithiumzelle zum Beispiel).  Habe ich vor Jahren mit
einem PIC gemacht (und bin dann zu den AVRs gegangen, weil es mir
leid war, so viel Aufwand in so wenig Assemblercode stecken zu müssen 
;).

Wenn du den ATtiny13 durch einen ATtiny25 ersetzt, hast du auch
alternativ die Möglichkeit, einen einfachen Keramikresonator dran
zu klemmen.  Dann must du nichts weiter einstellen. ;-)

Autor: Katapulski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Linuxgeek

Deine Sprüche kannst Du auch an der DOS-Kommandozeile eingeben:

>Copy con nul

Wenn Du fertig bist, noch ein Ctrl-Z hinterher und Deine Texte
landen da, wo sie hingehören.

gez. Katapulski

Autor: tollo1400 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke Herr Wunsch hat gerne geholfen, sonst hätte er es nicht getan 
:P
und schließlich bräuchte keiner ein Forum wenn jeder jedes Datenblatt 
auswendig kennen würde. Es macht zwar Sinn die Info in '18. Electrical 
Characteristics' unterzubringen, aber suchen werden die meisten (wie 
auch ich) erstmal in "6. System Clock and Clock Options".

Grüße, tollo :)

Autor: tollo1400 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, da werde ich mich gleich mal informieren!

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du vergleichst 'timer', bevor Du herunterzählst.  Somit zählst Du auf 61 
anstelle von 60.  Einfacher wird es, wenn Du Dir vorstellst, Du möchtest 
statt 60 nur 1 Sekunde zählen und intialisierst timer also mit 1:  Dann 
fallen 2 Interrupts an, also 2 Sekunden, bis Dein Vergleich zubeißt.

Typischer Fall von fencepost error (Unbekannt?  Siehe "Jargon File").

Autor: tollo1400 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke dass du den Code angesehen hast, das ist ein ganz typischer Fehler 
meinerseits :) Hab's korrigiert.

Grüße

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.