
Zitat von
izaseba
.. Da hab ich mir was angetan

.. Aber wenn man a sagt muß man auch b sagen, ich versuchs mal...
Herrlich, Sebastian. Auf die Art fange sogar ich an, C zu verstehen.
Aber nun (m)ein Sonderfall ! ? Die ISR. Die kann doch keinen aufrufenden Parameter haben. Und nun will ich den Wert (beispielsweise eine Zeitmarke)
Code:
ISR(TIMER0_COMPA_vect) // Vektor 14
{
{
if (Izeit_1 < 60000) //Zeitstand Interrupt-Timer läuft von 1 .. 60 000
Izeit_1 ++; // d.h. alle drei Sekunden wird 60000 erreicht
// und Izeit_1 bleibt in der uint16-Grenze
else
{
Izeit_1 = 0; // ansonsten: Rückstellen auf Null
// d.h. alle drei Sekunden wird 60000 erreicht
PORTC ^= (1<<PC0); // Zur Kontrolle im Test PC1 toggeln - 50 µs.
}
}
{
if (Iregmo < 200) //Zeitstand Regelungs-Timer läuft von 1 .. 200
Iregmo ++; // d.h. alle Sekunden wird 100 mal geregelt
else
{ Iregmo = 0; // ansonsten: Rückstellen auf Null und
// 100 mal pro Sec Regelungsaktion durchführen
PORTC ^= (1<<PC2); // Statt Regelung im Test PC1 toggeln,
// 200 * 0,050 ms => 10 ms.
}
}
}
auch im main auswerten - ohne ihn zu beschädigen oder beim Auslesen von der ISR beschädigt zu bekommen. Klar - Übernahme im main erst nach cli. Aber anders als global geht es doch hier garnicht. Oder?
Lesezeichen