Moin...
Wie oben schon geschrieben gehts mir um die Codemenge bzw.
Abarbeitungszeit eines Interrupt. Man ließt zwar öfter, dass da so wenig
wie möglich rein sollte - aber mir fällt aktuell zumindest kein
konkreter Wert ein (in welcher Form auch immer).
Als Beispiel, ich hab bei nem kleinen Bastelprojekt u.A. nen Timer, der
sich um n bissl Krams kümmert:
1 | ISR(TIMER0_OVF_vect)
|
2 | {
|
3 | cli();
|
4 | ++timerCounterDisplay;
|
5 | ++timerCounterJitter;
|
6 | if ((timerCounterDisplay>=timerOverFlowUpdateDisplay) && (lastState!=currentState))
|
7 | {
|
8 | displayErrorMessageOnLCD(currentState);
|
9 | lastState = currentState;
|
10 | timerCounterDisplay = 0;
|
11 | }
|
12 | if ((timerCounterJitter>=timerOverFlowJitter) && (jitter==1))
|
13 | {
|
14 | setJitter();
|
15 | ++jitterValueCounter;
|
16 | if (jitterValueCounter==4)
|
17 | jitterValueCounter = 0;
|
18 | timerCounterJitter = 0;
|
19 | }
|
20 | sei();
|
21 | }
|
Das LCD verwendet die Routinen von Peter Fleury (das beste an meinem
Bastelkrams) - hier wird ka u.A. drauf gewartet, ob das Display busy
ist.
Das Jitter Zeugs ist nur ne PWM-Wert Veränderung, sollte zeitlich also
keine Rolle spielen.
Aber wie siehts mit dem LCD aus - kann man sowas in nem Interrupt machen
- oder dauert das eigentlich schon zu lange und sollte deswegen in
main???
Randbemerkung: Da oben fliegen ne Menge Variablen durch die Gegend - das
ist der erste Wurf und nicht sonderlich drüber nachgedacht. Ich finds
aber auch nicht gut. Bevor sich einer darüber wundert.
Danke schonmal
Nico