Zitat 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?