-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Timer als Counter zu konfigurieren

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    07.07.2011
    Beiträge
    35

    Timer als Counter zu konfigurieren

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    hallo liebe Leute;

    Der Timer ist ein Counter der mit jedem Takt das Spaziealregister um eins erhöht. das ist mir schon klar.
    was mir nicht klar ist, wie wird solcher Timer/COUNTER mit dem externen Ereignisse im Zusammenhang gebracht?

    also soweit ich weiss, er (counter) soll das externe Ereigniss und nicht der Takt zählen . ok ich verstehe es, dass der Counter einen Taktsignal braucht um er zählen zu können, aber letzendlich will ich das externe Ereigniss zählen.oder? also es muss irgendwie zwei Register vorhanden, ein für Zählen im Bezug auf Taktsystem und anderer für Zählen der Externe Events. oder?

    Ich weiss nicht, es fehlt mir irgendwie eine kitte dabei. es fehlt mir was um die Funktion des Timers als Counter richtig zu verstehen.

    Ich bitte um Erklärung bitte!!!

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Welchen Controller verwendest du? Normalerweise gibt es für den aktuellen Zählstand ein Register. Man stellt nur die "Taktquelle" um. Also entweder interner Takt vom Controller oder ein externes Ereignis.

    MfG Hannes

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    07.07.2011
    Beiträge
    35
    ICh verwende Advacned Timer (TIM1).
    Laut der Datasheet kann man dieser Timer im Encoder Interface Mode treiben lassen.
    Weiters steht drinn, dass der Counter countet herauf oder herunter nach der Drehrichtung des Encoders.
    das klingt schön für mich bis ich auf diesem Satz gestolppert und zwar Einstellung des TaktCounter.

    Ich habe versucht den TIMer wie folgt zu konfigurieren, können Sie bitte einen kurzen Blick daruaf werfen, und mir sagen ob was noch fehtl bzw. falsch ist.

    Daanke für Ihre Hilfe.

    void TIMX_Encoder (void)

    {
    //-------------------Encoder-Interface
    TIM_EncoderInterfaceConfig(TIM1, TIM_EncoderMode_TI12,TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);

    //-------------------Configure the TI1 as Input
    TI1_Config(TIM1, TIM_ICPolarity_Rising,TIM_ICSelection_DirectTI,0);

    //-------------------Configure the TI1 as Input
    //TI2_Config(TIM1, TIM_ICPolarity_Rising,TIM_ICSelection_DirectTI,0x0 0);

    //-------------------UG
    TIM_UpdateRequestConfig(TIM1,TIM_UpdateSource_Regu lar );

    //-------------------Timer_Base Unit
    TIM1_Configuration.TIM_CounterMode =TIM_CounterMode_CenterAligned3;
    TIM1_Configuration.TIM_ClockDivision =0;
    TIM1_Configuration.TIM_Prescaler =60;
    TIM_TimeBaseInit(TIM1,&TIM1_Configuration);

    //-------------------TIM1 Enable
    TIM_Cmd(TIM1, ENABLE);

    }

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    07.07.2011
    Beiträge
    35
    Die Frequenz der Externen Signale hängt von der Umdrehungszahl pro Sekunde und von der Impulszahl einer Umdrehung.
    Der inkrementelle Drehgeber in diesem Projekt gibt 360 Impulse pro Umdrehung. Das heißt wenn der Geber mit 100 Umdrehungen pro Sekunde getrieben wird, dann wird die Frequenz des Ausgangssignals wie folgt berechnet.
    f= Umdrehung pro Sekunde * Impulszahl → 360 * 100= 36KHz
    Da die max. Impulszahl von dem Hersteller bekanntgegeben und zwar 200KHz dann kann man die max. Umdrehung pro Sekunde wie folgt berechnen.
    Umdrehung pro Sekunde = Impulsfrequenz / Impulszahl → 200KHz / 360= 555 U/s.

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Ich kann dir da leider nicht weiterhelfen, da ich nicht weiß welchen µC du verwendest. Die Berechnung stimmt.

    MfG Hannes

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    07.07.2011
    Beiträge
    35
    de Mikrocontroller ist STM32F100RB die auf den Board "STM32 Value Line Discoverye evaluation board" eingebaut.

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2008
    Alter
    32
    Beiträge
    563
    Du kannst, wie 021aet04 schon anmerkte, den Timer auch auf ein externes Signal reagieren lassen. Bei Atmegas gibt es Register, mit denen du den Prescaler einstellst aber auch den Timer darauf einstellen kannst auf eine steigende oder fallende Flanke an einem Pin zu reagieren und in diesem Fall das dem Timer zugehörige Zählregister inkrementieren lassen.
    Alles ist möglich. Unmögliches dauert nur etwas länger!

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    07.07.2011
    Beiträge
    35
    Zitat Zitat von Arkon Beitrag anzeigen
    Du kannst, wie 021aet04 schon anmerkte, den Timer auch auf ein externes Signal reagieren lassen. Bei Atmegas gibt es Register, mit denen du den Prescaler einstellst aber auch den Timer darauf einstellen kannst auf eine steigende oder fallende Flanke an einem Pin zu reagieren und in diesem Fall das dem Timer zugehörige Zählregister inkrementieren lassen.
    wozu soll ich den Prescaler einstellen, wenn ich auf den Taktsignal (in diesem Fall externe Signale) keinen Einfluss habe?

    Die Frage an diese Stelle ist, kann sich der Counter an die Geschwändigkeit des externen Signals anpassen???? also zählt er so schnell wie sich das Signal ändert?
    geht man davon aus, dass der Signalgeber mit 200KHz läuft, nun kann der Counter je 5µs (1/200KHz) um eins erhöht bzw. verringert???? kann man in solchem Fall sowas konfigurieren und wie????

    mit dem Prescaler teile ich den Systemcore Clock vor. nun in diesem Mode verwende ich das Taktsystem nicht sonder externe Signale..!

    Danke für Hilfe

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2008
    Alter
    32
    Beiträge
    563
    Wenn du den Timer auf ein externes Signal einstellst hat das nichts mit dem Prescaler zu tun. Das wird nur im selben Register eingestellt.

    Welchen µC verwendest du denn für diese Aufgabe? Und in welcher Sprache soll programmiert werden?
    Alles ist möglich. Unmögliches dauert nur etwas länger!

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    07.07.2011
    Beiträge
    35
    STM32F100RB mit C-Sprache

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Konfiguration: Timer als Counter gesucht
    Von robodriver im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 10.02.2008, 12:42
  2. Timer/Counter und PWM Channles
    Von ricola im Forum C - Programmierung (GCC u.a.)
    Antworten: 9
    Letzter Beitrag: 04.07.2007, 20:48
  3. Timer/Counter
    Von Jon im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 16
    Letzter Beitrag: 17.05.2007, 19:43
  4. Attiny2313, Timer-Counter-Wie gehts?
    Von sebastian.fr im Forum AVR Hardwarethemen
    Antworten: 13
    Letzter Beitrag: 04.04.2006, 23:48
  5. Externer Timer/Counter um uC aufzuwecken
    Von Whassup im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 21.11.2005, 10:25

Berechtigungen

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