www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430: temperatur komp. real time clock & 10ms Interrupts


Autor: Jürgen R. (duke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bin auf der Suche nach folgender Lösung:
MSP430 (F449)
+ real time clock
+ temperatur kompensiert
+ alle 10ms soll ein Interrupt ausgelöst werden, um einen Eingang
abzufragen
+ und das ganze in C

Wer hat eine Idee?

Grüße

Autor: Gerhard Gunzelmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jürgen

bei der Frage "Wer hat ne Idee" wirst du dir hier die Zähne
ausbeissen. Auf dieser Page gibts nen Link zu MSP430. Schau da wenn dir
Grundlagen feheln. Dann kenn ich noch:
http://www.mathar.com/msp430.html

Dann: was meinst du mit temperaturkompensiert ? Wenn du für den Takt
einen Quarz oder einen Oszillator verwendest hast du minimale
Temperaturabweichungen. Was hast du denn für Vorstellungen zur
Abweichung bei Tempertauränderungen und welchen Temperaturbreich
stellst du dir vor ?

Gerhard

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Programmtechnisch ist Temperaturkompensation keine Kunst, einfach nen
Sensor (DS18B20) ran und dann aus ner Tabelle die Reloadwerte für die
RTC auslesen.

Das Problem ist aber ein meßtechnisches, d.h. überhaupt erstmal die
Temperaturkennlinie mit hoher Genauigkeit auszumessen.

Daher ist es ökonomischer, fertig temperaturkompensierte Oszillatoren
zu kaufen, z.B. den DS32kHz von Maxim.

Alternativ nimmt man Quarze im MHz-Bereich (z.B. 11,0592MHz), denn die
sind prinzipiell temperaturunempfindlicher und stabiler als Uhrenquarze
(32kHz).
Da reicht es dann völlig, einmal den Fehler auszumessen (z.B. über
einen Monat) und dann die exakte Quarzfrequenz in die Formeln für die
Reloadwerte einzutragen.
Wenn die Stromaufnahme nebensächlich ist, sind MHz-Quarze den
kHz-Quarzen immer vorzuziehen.


Wie man nen 10ms Timerinterrupt aufsetzt, sollte man bequem den
Beispielen des Compilers entnehmen können (einfach mal im Verzeichnis
"Example" stöbern).


Und wie man nun in nem 10ms Timerinterrupt ne RTC zählen läßt, sollte
jeder leicht können, der weiß, daß 1min = 60s, 1h = 60min, 1d = 24h
hat.


Peter

Autor: Jürgen R. (duke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Temperaturkompensation:
-----------------------
Der MSP430 (MSP430x43x MSP430x44x, MSP430FG461x) besitzt einen
Internal Integrated Temperature Sensor im
ADC12, SD16, SD16_A

Dieser könnte doch dazu verwendet werden um die Uhrenquarz (32kHz)
Ungenauigkeiten über Temperatur auszugleichen?


10ms Interrupts / RTC:
----------------------
Hier gibt es viele Möglichkeiten
Basic Timer
Timer A, B
...
Jeder scheint hier seinen Favorit zu haben.

Welche Variante ist zu empfehlen, um den meisten Strom zu sparen
(2x Mignon, LR6,AA), also in den LPM3 zu kommen,
jedoch die RTC so exact wie möglich zu halten.
Parallel muss noch ein Eingang alle 10ms abgefragt werden.
Die RTC kann jede Stunde neu synchronisiert werden.
Infos werden via LCD ausgegeben.

Die RTC zu zählen (100 x 10ms = 1sec) ist nicht das Problem,
mir geht es vielmehr um das richtige Setup.

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.