Das hatte mich nun doch überrascht. Bei einem Testaufbau hatte ich schnell eine Dummyausgabe geschrieben, die mir in Abständen etwas über UART aufs Terminal ausgibt. Der Code im Hauptprogrammabschnitt als Auszug und dazu die Subroutine für die Zahlenausgabe:

Code:
/ - - - - - - - - - - - - - - -
...
    if ( Isec_lk2 == sd )       // Testweise Zeitanzeige und Wobbeln der irLED
    {                           //
      Isec_lk2  = 0;            //
      uputs0 ("\r\tBoardzeit [sek]\t"); //
      uputs0u ( Isecundn );             // 
      uputs0 ("\ttupsi = ");            //
      uputs0u ( Izeit_1 );              //
      if ( Isecundn ==  60 ) sd  =  60; // Ab hier Anzeige alle Minuten
      if ( Isecundn ==  10 ) IRLEDset(275);     //
      if ( Isecundn ==  20 ) IRLEDset( 10);
      if ( Isecundn ==  30 ) IRLEDset(127);
      if ( Isecundn == 300 ) sd  = 300; // Ab hier Anzeige alle fünf Minuten
    }                   // Ende if
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

// ============================================================================== =
// ============================================================================== =
//      Hilfsfunktion, um Zahlen über das UART auszugeben
  void uputs0u (uint16_t val)   // Zahlen unsigned_Int_16 über UART0 ausgeben
  {
    char buffer[8];
    uputs0 ( utoa(val, buffer, 10) );
  }
// ============================================================================== =
// ============================================================================== =
Und siehe da, der Controller braucht für eine Zehnerpotenz mehr gleich etliche Mikrosekunden mehr. Zur Zeitberechnung: mega168/20MHz, ein tupsi ist eine Zeitscheibe (des internen heart beat) von 50 µs - - also tausend Maschinenzyklen!! Und wenn ich eine Zehnerpotenz mehr über UART ausgeben möchte, rechnet der Ärmste gleich drei von diesen Zeitscheibchen länger . . . das hätte ich nicht gedacht:

Code:
 Boardtimer on
 C506x00 CiCo m168/babyo/20MHz 14. Sep 2013 18:20
 CIR-Controller, irLED auf PB1
 UART (PD)  mit  57 k Boardzeit [sek] 10 tupsi = 19958
 Boardzeit [sek] 20 tupsi = 19958
 Boardzeit [sek] 30 tupsi = 19958
 Boardzeit [sek] 40 tupsi = 19958
 Boardzeit [sek] 50 tupsi = 19958
 Boardzeit [sek] 60 tupsi = 19958
 Boardzeit [sek] 120 tupsi = 19954
 Boardzeit [sek] 180 tupsi = 19954
 Boardzeit [sek] 240 tupsi = 19954
 Boardzeit [sek] 300 tupsi = 19954
 Boardzeit [sek] 600 tupsi = 19954
 Boardzeit [sek] 900 tupsi = 19954
 Boardzeit [sek] 1200 tupsi = 19951
 Boardzeit [sek] 1500 tupsi = 19951
 Boardzeit [sek] 1800 tupsi = 19951
 Boardzeit [sek] 2100 tupsi = 19951
 Boardzeit [sek] 2400 tupsi = 19951
 Boardzeit [sek] 2700 tupsi = 19951
 Boardzeit [sek] 3000 tupsi = 19951
 Boardzeit [sek] 3300 tupsi = 19951
 Boardzeit [sek] 3600 tupsi = 19951
 Boardzeit [sek] 3900 tupsi = 19951