Forum: Compiler & IDEs Problem mit Timer Interrupt


von Ralf R. (rralf)


Lesenswert?

Hallo!

Ich hab ein kleines Problem mit meinem Timer Interrupt.
Folgende Konfiguration:
ATMega32, 16MhZ, bis jetzt noch alle Timer unbelegt.

Ich hätte gerne folgendes:
Ein Interrupt, der alle x µsec aufgerufen wird. Die Aufgabe des 
Interrupts ist lediglich eine einzige Variable abzuändern, also nichts 
Zeitaufwändiges.

x soll einstellbar sein über eine Funktion. z.B.: set_timer(1000), damit 
der Interrupt dann eben alle 1000µS aufgerufen wird. x bewegt sich in 
der Größenordnung 1-1000000 µS

Ich frickel jetzt schon den ganzen Tag dran rum, bekomm das aber mit den 
Timer einfach nicht gebacken. Hat von euch wer schon mal sowas ähnliches 
programmiert, oder ne schnelle Lösung, woraus ich mir dann meine 
Funktionen ableiten kann?

Schon mal Tausend Dank!

von Karl H. (kbuchegg)


Lesenswert?

> Ich frickel jetzt schon den ganzen Tag dran rum, bekomm das aber
> mit den Timer einfach nicht gebacken

Woran scheiterts?
Ist dir grundätzlich klar, was du machen musst?
Kriegst du es hin, dass dein Timer alle x=konstant µS einen Interrupt 
auslöst (welchen eigentlich? ein Timer kann ja mehrere verschiedene 
Interrupts auslösen)

Das sollte mal dein erstes Ziel sein. Such dir eine Zahl für x und schau 
zu, dass du das realisieren kannst. Auf dem Weg dorthin lernst du genug 
über Timer um rauszukriegen, wo das Problem liegt, wenn x eine beliebige 
Zahl (in deinen Grenzen) sein kann. Und auch was du dann machen mußt.

von Ralf R. (rralf)


Lesenswert?

Mit x=konstant klappts so halbwegs.

Für meinen Zweck ist denk ich der Overflow Interrupt am besten geeignet, 
andererseits könnt ich ja auch den Comparator nehmen, und den irgendwo 
vergleichen lassen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.