Alternative zu delay_ms()

Gast #2028125
Lesenswert?
• ▲
▼
Hallo,

ich hab mir mich hier grade gefragt ob es nicht auch noch sinnvollere 
Möglichkeiten gibt als delay_ms() um eine Zeitspanne von mehreren 
Minuten abzuwarten.
Konkret möchte ich folgendes machen:

Mit einem LM50 und einem LM335 messe ich die Umgebungstemperatur (LM50 
sitzt direkt neben dem Atmega, LM335 ist etwa nen Meter weit weg). Das 
möchte ich aber nicht ständig machen sondern nur alle 30 Minuten. Wird 
eine spezieller Wert unterschritten so möchte ich für einige Minuten ein 
Heizelement einschalten.

Ich habe hierzu einen Atmega88 der seinen Takt durch einen formschicken 
8 MHz Quarz bekommt. Und wie gesagt frage ich mich ob delay_ms wirklich 
sinnvoll für Minuten ist oder ob es nicht besseres gibt. Für meine 
Anwendung ist Genauigkeit nicht soo wichtig (mir ists wurscht ob das 
Messintervall nun exakt 30 Minuten ist oder obs nur 29.3 Minuten sind) 
aber es interessiert mich nun ob und wie man es besser machen kann als 
mit delay_ms().
Gast #2028397
Lesenswert?
• ▲
▼
OK, Timer selbst aufbauen ist ja auch kein Ding. Das hab ich schon bei 
PICs gemacht. Dachte hier halt nur ich frag mal, nicht dass es da was 
gibt, dass ich nicht kenne (z.B. ein delay_min() oder so). Dank euch für 
die Info.
#2028405
Lesenswert?
• ▲
▼
Schon alleine deshalb, weil delay_<irgendwas> nicht <irgendwas>
an abgelaufener Zeit wartet, sondern letztlich entsprechend
CPU-Zeit abwartet bzw. sinnlos verbrät.
Laufen keine Interrupts, dann dauert delay_<irgendwas> tatsächlich
die erwartete Zeit.
Hat man dagegen 50% Rechenleistung in den ISRs, dann dauert
es 2*<irgendwas>, brauchen die ISRs 90% Rechenleistung, dann
ist man schon bei 10*<irgendwas>...
Persönliche Seite #2028428
Lesenswert?
• ▲
▼
Guck dir mal CTC an.
Also Count To Compare.
Damit kannst du wirklich extrem kleine Zeitspannen machen.
Meistens löst man aber eher auf Sekunden auf, und zählt damit dann einen 
Zähler für Sekunden und ggf. einen für Minuten hoch.
Zur Einstellung für deine Taktfrequenz kannst du
http://apexys-toan.blogspot.com/2011/01/avrtimercalculator.html
verwenden.
Mit freundlichen Grüßen,
Valentin Buck

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.