Hilfe beim Sketch verkleinern

Ich schätze mal, hier ist dann so ziemlich Ende der Fahnenstange:

const byte ledtakt[] PROGMEM = {60,25,40,75,33,90,57,24,100,68,73,80,37,75,254,97,105};
byte ledtime[sizeof(ledtakt)];

inline void toggle(const uint8_t pin)
{
  uint8_t bit  = digitalPinToBitMask(pin);
  uint8_t port = digitalPinToPort(pin);
  *portInputRegister(port) = bit;
}

byte zeitMerker = 0; // millis() ErsatzStoff

int main()
{
  DDRD = 0b01111111;
  DDRA = 0b00000011;
  DDRB = 0b11111111;
  for(;;)
  {
       for( byte LED = 0; LED < 17; LED++ ) 
       {
           if(zeitMerker - ledtime[LED] >= pgm_read_byte(&ledtakt[LED]))
           {
              ledtime[LED] = zeitMerker;
              toggle(LED);
              //digitalWrite( LED, !digitalRead(LED) );       
           }
       } 
       _delay_ms(99); // 1 ms für die Verarbeitung 
       zeitMerker++;   
  }
}

ungetestet

Kompiliert für einen Mega

Der Sketch verwendet 580 Bytes (0%) des Programmspeicherplatzes
Globale Variablen verwenden 18 Bytes (0%) des dynamischen Speichers