muraad
09.01.2005, 23:06
Also meine Frage ist zu folgenden Quelltext:
unsigned int timervar;
timervar=0;
char timerflag;
timerflag=0;
SIGNAL(SIG_OVERFLOW2)
{
if(timervarflag!=0)
timervar++;
}
void timer2-init(void)
{
TCCR2 |= _BV(CS21); // Timer2 Prescaler 8 damit eine Overflow von 0,0000005s also 0,5microsek
TIMSK |= _BV(TOIE2); //Timer2 Overflow Interrupt Enable
}
void start-funktion(void(*funtkionsname)(void), char dauer) // Dauer in microsekunden
{
timervarflag=1;
while((timervar/2)!=dauer)
(*funktionsname)();
timervar=0;
}
Es ist das erste mal das ich Funktionen als Parameter verwende. Deswegen weis ich nicht ob ich irgendwelche Ponterfehler oder sonstige Fehler gemacht hab, habs auch noch nicht getestet?
die Funktion start-funktion() würde ich als alternative zu irgendwelche wait() Funtktionen benutzen da bei wait() immer in der zu Wartenden zeit nichts gemacht wird.
Jetzt meine zweite Frage. Könnte ich die Funktion start-funktion() auch so deklarieren?
template <typename T>
void start-funktion( T (*funktionsname)(T),int dauer)
...
Ich hoffe mir kann einer helfen da ich mit Funktions Templates und Funktion als Funktionsargumente keine Erfahrung hab.
Mfg Muraad
unsigned int timervar;
timervar=0;
char timerflag;
timerflag=0;
SIGNAL(SIG_OVERFLOW2)
{
if(timervarflag!=0)
timervar++;
}
void timer2-init(void)
{
TCCR2 |= _BV(CS21); // Timer2 Prescaler 8 damit eine Overflow von 0,0000005s also 0,5microsek
TIMSK |= _BV(TOIE2); //Timer2 Overflow Interrupt Enable
}
void start-funktion(void(*funtkionsname)(void), char dauer) // Dauer in microsekunden
{
timervarflag=1;
while((timervar/2)!=dauer)
(*funktionsname)();
timervar=0;
}
Es ist das erste mal das ich Funktionen als Parameter verwende. Deswegen weis ich nicht ob ich irgendwelche Ponterfehler oder sonstige Fehler gemacht hab, habs auch noch nicht getestet?
die Funktion start-funktion() würde ich als alternative zu irgendwelche wait() Funtktionen benutzen da bei wait() immer in der zu Wartenden zeit nichts gemacht wird.
Jetzt meine zweite Frage. Könnte ich die Funktion start-funktion() auch so deklarieren?
template <typename T>
void start-funktion( T (*funktionsname)(T),int dauer)
...
Ich hoffe mir kann einer helfen da ich mit Funktions Templates und Funktion als Funktionsargumente keine Erfahrung hab.
Mfg Muraad