Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Timer_T3GetPM(void); Kategorie: Programmierung C (von mgolbs - 19.10.2009 12:29)
Als Antwort auf Re: Timer_T3GetPM(void); von UlliS - 19.10.2009 9:36

> > Hallo,
> >
> > ich habe ein Sensorsignal welches immer 40% high und zu 60% low ist.
> > Die Frequenz liegt im Bereich 15...130Hz.
> >
> > Ich will mit der Mega32 die tats├Ąchliche Zeit Messen (us oder ms)
> > von Beginn high zu wieder high, oder auch das tats├Ąchliche Zeitfenster
> > wo low oder high anliegt.
> >
> > Dabei sollte das Zeitfenster in min. "1/180" des Zeitfensters aufteilbar
> > sein. Mathematisch/physikalisch  sollte das bei 14MHz problemlos m├Âglich
> > sein.
> >
> > Wenn ich die Doku richtig verstehe, kann ich mit
> > void Timer_T3PM(byte Mode,byte PS); PS_1 (1) >> 67,8 ns setzen.
> > Wenn das Sensorsignal wieder auf high geht, kann ich dann mit
> > Timer_T3GetPM(void); die Vielfachen von PS_1 (1) auslesen?
> >
> > Im Anschluss will ich eine Pause mit Vielfachen von PS_1 (1) an einem
> > Port ausgeben.
> >
> > Ist das Ziel mit den Maga's m├Âglich?
> >
> > ├ťber eine Info oder einen Tipp w├╝rde ich mich freuen.
> >
> > Gru├č Markus
> >  
>
> Hallo Markus,
>
> Timer_T3PM (allgemein Timer 3) ist nur bei der Mega128 verf├╝gbar.
> Du k├Ânntest bei der Mega32 jedoch den Timer1 verwenden.
>
> void Timer_T1PM(byte Mode,byte PS);
> void Timer_T1PM(Mode As Byte,PS As Byte)
>
> Beschreibung:
> Diese Funktion legt fest, ob eine Pulsbreiten- oder Periodenmessung durchgef├╝hrt werden soll,
> initialisiert den Timer_1 f├╝r die Messung und setzt den Vorteiler.
>
> Parameter:
> Mode  0 = Pulsweitenmessung,  1 = Periodenmessung
> PS    Vorteiler
>
> Tabelle prescaler:
>
> Vorteiler (prescaler)   Zeitbasis (Dauer eines Ticks)
> PS_1 (1)                   67,8 ns
> PS_8 (2)                   542,5 ns
> PS_64 (3)                 4,34 ┬Ás
> PS_256 (4)               17,36 ┬Ás
> PS_1024 (5)              69,44 ┬Ás
>  
>
> Gr├╝├če Ulli

Hallo,

danke f├╝r die Info's. Ich kann also mit der Periodenmessung die tats├Ąchlich vergangene Zeit
(vielfache von Vorteiler (prescaler)) zwischen zwei low/high ├ťberg├Ąngen an einem Port ermitteln.
Ich w├╝rde dann einen Interupt an einem Port nutzen, um die Messung jeweils abzuschlie├čen?
Ist das so richtig verstanden?

Gru├č Markus


    Antwort schreiben


Antworten:

Re: Timer_T3GetPM(void); (von UlliS - 19.10.2009 14:53)
    Re: Timer_T3GetPM(void); (von mgolbs - 20.10.2009 12:34)