-         

Ergebnis 1 bis 2 von 2

Thema: Timer1 beim Mega128 initialisieren

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.04.2005
    Ort
    Minden
    Alter
    32
    Beiträge
    227

    Timer1 beim Mega128 initialisieren

    Anzeige

    Hallo,
    ich habe beim mega128 Timer0 bereits in Betrieb.
    Zum Beispiel so....
    Code:
    TCCR0 = 0;
    TCCR0 = _BV(WGM01) |_BV(CS01) | _BV(CS00) | _BV(CS02);
    OCR0 = 156;
    TCNT0 = 0;
    TIFR = _BV(OCF0);
    TIMSK = _BV(OCIE0);
    Die Interruptroutine funktioniert auch wunderbar.

    Nur würde ich lieber den 16 Bit Timer verwenden. Zwecks höherer Auflösung und bis zu 3 Compare Werten. Nur blicke ich bei Timer1 durch das Datenblatt nicht ganz durch.

    Könnte mir jemand mal ein Beispiel geben wie ich Timer1 initialisieren kann?
    Dann könnte ich das nachvollziehen.

    Vielen Dank im Voraus
    gruß ceekay \/

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.04.2005
    Ort
    Minden
    Alter
    32
    Beiträge
    227
    Konnte es doch selbst lösen.

    hab mir die "iom128.h" und das Datenblatt nochmal zur Brust genommen

    Für alle die es interessiert wie der Timer1 initialisiert wird:
    TCCR1A = 0; //Normal Mode
    TCCR1B = _BV(CS10) | _BV(CS12); //Prescaler auf 1024
    TCCR1C = 0;
    TCNT1L = 0; //Timer zurück setzen
    TCNT1H = 0; //Timer zurück setzen


    OCR1AH = 00111101;
    OCR1AL = 00001001; //entpricht 15625

    TIMSK = _BV (OCIE1A); //CompareA Interrupt zulassen
    Leider hab ich noch nicht rausbekommen wie ich den CTC Mode verwenden kann, damit der Zähler beim Compare Match automatisch zurück gesetzt wird. Zur Zeit setze ich ihn noch manuell in der Interruptroutine zurück.

    Vielleicht weiß das ja jemand
    gruß ceekay \/

Berechtigungen

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