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

Re: Timerverwendung in der Funktionsbiliothek ? Kategorie: Programmierung C (von Manfred_02 - 13.12.2011 21:29)
Als Antwort auf Re: Timerverwendung in der Funktionsbiliothek ? von Franz-Peter - 12.12.2011 23:24
Ich nutze:
C-Control Pro Mega128
> > > > > > Hallo,
> > > > > >
> > > > > > bevor der längere Text beginnt:
> > > > > > Kann mir jemand mitteilen, welche Timer in welchen Funktionen verwendet werden?
> > > > > > z.B. habe ich hier im Forum gelesen, dass Multithreading, Delay.. Timer benötigen.
> > > > > >
> > > > > > Zur Erklärung:
> > > > > > Ich  möchte eine eigene Zeitbasis in meinem C-Programm aufbauen.
> > > > > > Damit möchte ich Warteschleifen in den Hauptroutinen vermeiden.
> > > > > > Eigentlich ist es auch kein Problem.Ich habe aber festgestellt,dass
> > > > > > es bei der gleichzeitigen Benutzung der fertigen Funktionen zu Kollisionen kommt,
> > > > > > und meine Zeitbasis verändert wird. Es stehen 4 Timer zur Verfügung.
> > > > > > Meine Frage:
> > > > > > Welche Timer werden in welchen Funktionen genutzt und welche Timer wären
> > > > > > für den eigenen Gebrauch frei ?
> > > > > >
> > > > > >
> > > > > > Vielen Dank in Voraus
> > > > > >
> > > > > > GruÃ?
> > > > > > Manfred
> > > > > >
> > > > > >  
> > > > >
> > > > > Siehe Manual:
> > > > >
> > > > > "Es stehen im C-Control Pro Mega 32 zwei, Mega128 drei unabhängige Timer-Counter
> > > > > zur Verfügung. Timer_0 mit 8 Bit und Timer_1 mit 16 Bit Timer_3 mit 16 Bit
> > > > > (nur Mega128). Timer_2 wird von der Firmware als interne Zeitbasis verwendet,
> > > > > und ist fest auf einen 10ms Interrupt eingestellt."
> > > > >
> > > > > Alle anderen Timer werden halt verändert, wenn Du die Timer Funktionen des
> > > > > entsprechenden Timers benutzt. Da wären noch die Servoroutinen, aber in denen
> > > > > gibt man explizit den Timer an der genutzt wird.
> > > > >
> > > > > Gruss Peter
> > > > >
> > > >
> > > > Hallo Peter,
> > > >
> > > > vielen Dank für die schnelle Antwort. Werde es mal versuchen und dann berichten.
> > > >
> > > >
> > > > GuÃ?
> > > > Manfred
> > > >
> > > >
> > > >
> > > Hallo Manfred,
> > > in meiner Steuerung benötige ich auch viele Zeit- und Wartefunktionen, kann aber keine Warteschleifen
> > > einbauen, da die Steuerung viele Dinge parallel tun muss.
> > > Ich verwende dafür den 10ms Interrupt, der vom System bereitgestellt wird. �ber entsprechende
> > > Timer-Variable, die in dem 10ms IRQ hoch bzw. runtergezählt werden, lassen sich umfangreiche Zeit-
> > > Funktionen aufbauen, ohne da� man einen zusätzlichen HW-Timer benötigt.
> > > Wenn dir die 10ms Auflösung reicht, wäre das vielleicht auch ein Lösungsansatz für dich.
> > >
> > > GruÃ?
> > > Franz-Peter
> >
> > Hallo Franz-Peter,
> >
> > eine 10ms Auflösung wäre für meien Anwendung ausreichend. Ich werde die Hauptroutinen so
> > schreiben, dass keine Wartezeit vergeht. Ich habe es bisher mit Timer 3 ausprobiert. Ich
> > decremetiere globale Varibalen in der Interruptroutine. Es ist eigentlich wie eine Sanduhr. Jede
> > Anwendung hat ihre eigene Sanduhr. So brauche ich keine Differenzbildung machen. Die CPU laüft
> > so mit guter Performance.
> >
> > Der 10ms IRQ läuft doch über Timer2. Wie erhältst du Zugang? Eine eigene Routine
> > stört die implementierte Routine.? Andererseits wäre es nur sinnvoll keinen zweiten Timer mit der
> > gleichen Frequenz laufen zu lassen.
> >
> > GruÃ?
> > Manfred
> >
> >
> Hallo Manfred,
> du kannst selbst eine Interruptroutine auf den Timer 2 setzen. Du darfst nur die Initiierung nicht
> verändern. In der Hilfe ist unter 'Bibliothek' -> 'Interrupt' sogar ein Beispiel dazu : Mit  
> Irq_SetVect(INT_TIM2COMP,ISR);
> setzt du den Timer2 auf die IRQ Routine 'ISR', die dann automatisch alle 10ms aufgerufen wird.
> Im Prinzip genauso, wie man es bei einem eigenen Timer auch macht, nur dass man eben den
> System-Timer mitnutzt.
> Ansonsten mache ich es im Prinzip genauso, dass ich in der IRQ-Routine globale Variable
> herunterzähle.
>
> GruÃ?
> Franz-Peter


Hallo Franz-Peter,

wenn ich eine eigene IRQ auf Timer2 setze, dann wird die IRQ der Firmware umgangen, oder?
Ich wei� eben nicht, was ich da so anrichte, bzw was dann nicht mehr funktioniert. Vielleicht könnte
Peter dazu etwas schreiben?

@Peter, bitte schreib mal kurz ein paar Worte.


GruÃ?
Manfred

 


    Antwort schreiben


Antworten:

Re: Timerverwendung in der Funktionsbiliothek ? (von Franz-Peter - 13.12.2011 23:25)