mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik (Atmel) CTC counter zählen unterschiedlich schnell


Autor: Hans Wurst (hans_wurst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich verwende den ATmega3290p und dessen Timer0 und Timer1. Beide haben 
die gleichen prescaler-Einstellungen und bekommen jeweils auch den 
gleichen Wert für das Output Compare Register.

Bei langsamer "Geschwindigkeit" kommen die Pulse/Interrupts sehr genau 
gleichzeitig. Übergebe ich jedoch "schnellere" Werte an die Output 
Compare Register, driften die Geschwindigkeiten, in der die Impulse 
ausgegeben werden sehr stark auseinander.
Hat jemand schon ein ähnliches Problem gehabt? Außer den Einstellungen 
für den Prescaler und das Output Compare Register ist doch nichts weiter 
für die Pulsfolge einstellbar. Oder sehe ich das falsch?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans Wurst wrote:
> Bei langsamer "Geschwindigkeit" kommen die Pulse/Interrupts sehr genau
> gleichzeitig.
Was ist denn "langsam"? Bitte mal etwas präziser!

> Übergebe ich jedoch "schnellere" Werte an die Output
> Compare Register, driften die Geschwindigkeiten, in der die Impulse
> ausgegeben werden sehr stark auseinander.
> Hat jemand schon ein ähnliches Problem gehabt? Außer den Einstellungen
> für den Prescaler und das Output Compare Register ist doch nichts weiter
> für die Pulsfolge einstellbar. Oder sehe ich das falsch?
Code? Glaskugel ist in Reparatur. Aber wenn Du Interrupts aktiv hast, 
ist es ja wohl klar, dass ab einer gewissen "Geschwindigkeit" was 
verloren geht, besonders dann, wenn beide Interrupts exakt gleichzeitig 
auftreten sollen...

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es denn, wenn Du endlich mal erzählst, um welche 
Zeiten/Interrupt-Raten es hier geht? Noch mal frage ich nicht nach.

Mit Deinem Codeschnipsel kann niemand wirklich was anfangen, weil die 
ganzen Variablen und deren Funktion sowie der gesamte Kontext unbekannt 
sind.

Warum setzt Du Deine Steuerregister eigentlich im Oktalformat? Erstens 
ist das generell für 8-Bit-Register ziemlich ungeschickt (Hexadezimal 
wäre passender) und zweitens sollte man bei Steuerregistern generell die 
vordefinierten Bitnamen benutzen, damit man auch ohne Datenblatt sieht, 
was da gemacht wird!

Und zum Thema Interrupts bieten die Tutorials auf dieser Seite 
eigentlich genügend Informationen. Auch ein Blick ins Datenblatt schadet 
nicht. Interrupts gehen nur dann "verloren", wenn während einer 
Sperrphase (also z.B. während eines anderen Interrupt Handlers) 
mehrere gleiche Interrupt-Requests auftreten.

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.