mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Blinklicht zu schnell, Externer Quartz oder interner?


Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Quartz-Experten...

ich möchte gleich zu meinem Problem kommen, ich habe mit der delay_ms 
Funktion eine schleife aufgebaut wo eine LED im sekundentakt getoggled 
werden soll. Wenn ich meine Fusebits auf den internen osc. setze, so 
kommt das mit der sekunde ganz gut hin, wenn ich allerdings einen 
externen mit 3.6MHz verwende, dann blinkt es um einiges schneller. Ich 
hab einiges über die Optimierung gelesen (steht auf -0s)
Wie bekomm ich die LED mit einem 3.6mhz im Sekundentakt zum blinken?

Besten Dank und schönen Abend
Florian

Autor: Frank L. (hermastersvoice)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
einfach dem Compiler nen kleinen Hinweis über den benutzten Takt 
zukommen lassen.

bye

Frank

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Frank,

meinste du mit dieser Zeile???
#define F_CPU 3686400L
ist drin, aber funktioniert nicht... das verwundert mich ja gerade...

Danke nochmal -.-

Gruss Flori

Autor: nixversteh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn es um einen möglichst genauen Sekundentakt geht, kann ich 
eigentlich nur folgenden Thread wärmstens empfehlen. 
Beitrag "Die genaue Sekunde / RTC"
Ansonsten wäre etwas mehr Code als "#define F_CPU 3686400L" 
möglicherweise hilfreicher.

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe nicht beachtet, dass die maximale delay_ms in meinem fall ca 
70ms  beträgt... ich hatte vorher angenommen, dass ich mit einer 
schleife von 4 mal 250ms zurechtkomme. nun steht in der delay_ms(50) und 
es fuktioniert mit einer schleife von 200... Danke

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> nun steht in der delay_ms(50) und
> es fuktioniert mit einer schleife von 200...

Eher nicht :-)

Autor: fubu1000 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Morgen,

The maximal possible delay is 262.14 ms / F_CPU in MHz.

Also in gut deutsch 71,110026041666666666666666666667 ms sind drin.


Gruss

Autor: fubu1000 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
natürlich maximal gemeint,
also 50ms passen
Gruss

Autor: fubu1000 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man iss noch früh,
also benutz den Timer 0/1/2 besser(sofern ATMEGA),
dann kannste währenddessen anderes erledigen.

Gruss

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.