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 UlliS - 19.10.2009 14:53)
Als Antwort auf Re: Timer_T3GetPM(void); von mgolbs - 19.10.2009 12:29
Ich nutze:
C-Control Pro Mega32, C-Control Pro Mega128, CC-Pro 32 Application Board, CC-Pro 128 Application Board, Pro-Bot128
> > > 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

Hallo Markus,

lade dir mal die IDE herunter und schau dir mal das Beispiel PMessung an.

Grü�e Ulli



    Antwort schreiben


Antworten:

Re: Timer_T3GetPM(void); (von mgolbs - 20.10.2009 12:34)