- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 5 von 5

Thema: Verständnisfrage Timer

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    28.10.2005
    Beiträge
    14

    Verständnisfrage Timer

    Anzeige

    Praxistest und DIY Projekte
    Hallo.
    Ich möchte mit Timer3 eines Mega128 der mit externen, quarzgenauen 4MHz getaktet wird die exakte Zeit zwischen zwei Signalen messen.
    Die Zeit zwischen zwei Signalen kann im Bereich zwischen 4,5sec und 18msec variieren.
    Irgendwie muß ich wohl mit Capture arbeiten, aber wenn ich ehrlich bin hab´ ich null Durchstieg wie die Timer genau funktionieren.
    Hoffentlich kann mir von Euch jemand verklickern wie ich mein Problem lösen kann (und das wenn möglich auch noch mit Bascom und evtl. ein paar inline ASM-Anweisungen).

    Bitte helft einem Anfänger, ein Durchsteiger zu werden. Ich zähle auf Euch.

    Danke schon mal.

    Gruß RalfP

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    Die Timer der AVRs kann man für verschiedene Funktionen benutzen.
    Die Funktion die Du benötigst ist der Counter.
    Counter = Zähler
    Der Zähler macht genau das, was der Name sagt, er zählt.
    Was zählt er?
    Er zählt Impulse. Die Impulse können auf den Zähler aus verschiedenen
    Quellen kommen. Von außen über einen Pin oder von innen aus dem Quarz.
    Die von Dir benötigte Funktion braucht seinen Takt (Impuls) vom Quarz,
    damit der Zähler immer gleich schnell taktet (zählt).
    Man kann den Zähler starten, stopen und auch zurücksetzen auf 0.
    Deine Anwendung sieht also wiefolgt aus,
    Du setzt den Zähler auf 0,
    beim ersten Impuls startest Du den Zähler, beim nächsten Impuls
    liest Du den Zähler aus, gibst das Ergebniss aus und Stopst den Timer.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    28.10.2005
    Beiträge
    14
    Hallo Vitis.
    Vielen Dank erst mal, daß Du mir geantwortet hast.
    Diesen Ansatz habe ich auch schon mal durchdacht, dann aber wieder verworfen, da mir so jede zweite Pause zwischen zwei Impulsen verloren geht (vermute ich).
    Ich mutmaße, daß es für meinen Zweck besser wäre den Timer durchlaufen zu lassen und beim Auftreten eines Impulses vom aktuellen Zählerstand den zuvor gespeicherten Zählerstand (vom Auftreten des vorigen Impulses) abzuziehen und so die Zeit zu berechnen (Überläufe des Zählers müssen natürlich mit in die Berechnung einfließen).
    Um das Offset, das beim Sprung in eine ISR auftritt, auszugleichen soll es eine Möglichkeit mit dem Compare geben (hab ich mal irgendwo gelesen).
    Sollte ich in eine falsche Richtung denken, lass ich mich gerne eines besseren beleren.

    Gruß RalfP

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    davon haste auch nicht geschrieben, das zwischen allen Impulsen
    gemessen werden soll.
    Dann einfach Timer starten und bei jedem Impuls auslesen
    und rücksetzen.
    Den Compare kannste dann benutzen für
    Watchdog, sprich Overflow
    oder ne Overflowvariable hochzählen
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.07.2004
    Ort
    bei Stuttgart
    Alter
    42
    Beiträge
    760
    hi,
    wie lang sind denn deine impulse, und welche auflösung benötigst du denn?
    du kannst auch einfach den timer laufen lassen, und bei jedem überlauf gucken, ob ein impuls da ist.
    mfg jeffrey

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen