- Labornetzteil AliExpress         
Ergebnis 1 bis 3 von 3

Thema: Tiny2313: Hilfe bei Initialisierung von Timer1

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716

    Tiny2313: Hilfe bei Initialisierung von Timer1

    Anzeige

    Praxistest und DIY Projekte
    Guten Morgen,

    ich stehe gerade auf dem Schlauch. Ich möchte Timer1 von einem Tiny2313 initialisieren, es klappt aber nicht. Ich benötige alle 444µS einen IRQ. Dazu möchte ich den CTC-Modus des Timers nutzen und habe dazu folgendes versucht:

    Code:
    //F_CPU = 3686400
    
    #define TimeFirstBit  444 //µs
    #define PreScaler  8
    #define FirstBit_OCR  (((F_CPU / PreScaler) * TimeFirstBit) / 1000000)
    
    ISR (TIMER0_COMPA_vect)
    {
      //...
    }
    
    ISR (TIMER1_COMPA_vect)
    {
      //...
    }
    
    int Main
    {
    //...
     TCCR1A = 0;
     TCCR1B = (1<WGM12) | (1<<CS11);
     OCR1A = FirstBit_OCR;
     TIMSK = (1<<OCIE0A) | (1<<OCIE1A)
    
     sei ();
    //...
    }
    Der Wert für FirstBit_OCR müsste passen. Ich habe ihn mir via RS232 senden lassen und er ist 204.

    Wo ist mein Fehler? Ich habe gerade ewig das Datenblatt studiert und alle Register noch mal genau überprüft. Ich sehe den Wald vor lauter Bäumen nicht mehr.

    Normalerweise habe ich keine Probleme mit den Timern. Ich verwende im gleichen Programm auch den Timer0 für einen 10kHz Timer. Dieser ist ebenfalls mit CTC konfiguriert und läuft einwandfrei. Nur Timer1 wird geschätzt alle 2-3 Sekunden aufgerufen, auch egal welchen Wert ich für OCR1A setze. (Ich habe 0x1 und 0xFFF0 probiert). "Gefühlt" kommen die gleichen Zeiten dabei raus.

    Um eine Beeinflußung von Timer0 auszuschließen habe ich diesen schon testweise deaktiviert. Leider war dies ohne Änderung des Verhaltens von Timer1.

    Viele Grüße
    Andreas

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von Bumbum Beitrag anzeigen
    Code:
    int Main
    {
    //...
     TCCR1A = 0;
     TCCR1B = (1<WGM12) | (1<<CS11);
     OCR1A = FirstBit_OCR;
     TIMSK = (1<<OCIE0A) | (1<<OCIE1A)
    
     sei ();
    //...
    ???

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    Danke Searcher! Das war der Wald zwischen den ganzen Bäumen. Nun läuft es.

Ähnliche Themen

  1. PWM bei BASCOM und tiny2313! Warum Timer1??? (Gelöst, danke)
    Von popi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 04.09.2008, 09:21
  2. Antworten: 9
    Letzter Beitrag: 02.01.2008, 21:05
  3. Wilde Zeichen bei tiny2313 bei 90s2313 ok
    Von Zotti im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 27.01.2007, 01:15
  4. Antworten: 7
    Letzter Beitrag: 09.07.2005, 22:19
  5. Hilfe bei Anwendung von Billig-Funkmodule von Conrad
    Von iClou im Forum PIC Controller
    Antworten: 3
    Letzter Beitrag: 30.06.2005, 22:32

Berechtigungen

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

12V Akku bauen