-         

Ergebnis 1 bis 4 von 4

Thema: timerinterrupt aufrufen

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941

    timerinterrupt aufrufen

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    hallo, ich möchte alle 64us einen timerinterrupt aufrufen.
    weis nicht , wie ich das jetzt anstellen soll. welche timer nimmt man.
    ich habe den AVR16 mit 8mhz der 3 timer hat, t0(8bit),t1(16bit) und t2(8bit).
    wenn ich einen vorzähler festlege, für welchen timer ist er dann gültig.
    manche setzen beim zählwert des timer ein zahl z.b. -56, was bewirkt die minuszahl beim zählen.
    mfg pebisoft

  2. #2
    mit AVR16 ist der atmega16 gemeint oder?
    Bei dem kann man für jeden Timer einen eigenen vorteiler einstellen.
    Für 64µs reicht der 8bit Timer0 aus wenn ein vorteiler von zb. 8 gewählt wird und der timer dann mit 191 (255-64) geladen wird.
    Dann löst er beim überlauf von 255 auf 0 einen Interrupts aus, in dem fall genau nach 64µ

    Das -56 dürfte eine Eigenheit der Programmierumbebung sein, ich hab das noch nirgens gesehen/benötigt. Könnte aber bedeuten 255-56 sodass der timer mit 199 geladen wird....

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    TCNT0 = -2; // 2 * 256 = 512 cycle
    warum bewirkt die -2 in winavr 512 zycle
    mfg pebisoft

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    28.04.2004
    Ort
    Nähe Köln
    Alter
    51
    Beiträge
    247
    Hallo Pebisoft

    TCNT0 = -2; // 2 * 256 = 512 cycle

    bewirkt nur, das in TCNT0 der Wert 254 eingetragen wird. Dieser entspricht dem Zweierkomplement von -2.

    Ist nur für den besseren Überblick.Man braucht halt nicht immer zu rechenen. 256 - x = irgendwas

    Die 512 Takte kommen in deinem Fall
    nur Zustande, wenn der Vorteiler auf 256 gestellt wird.

    Wie Peter Dannegger es in seinem RC5 Code es ja auch gemacht hat mit

    TCCR0 = 1<<CS02; //divide by 256

    MFG
    Dieter

Berechtigungen

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