Hilfe beim Sketch verkleinern

Werde nochmal drüber schauen...
Aber nicht innerhalb der nächsten 36H.

Habe die letzten Versionen mit einer IDE 1.6.12 erstellt.
Daher wohl das unterschiedliche Verhalten beim Include.

Die Durchdreher beim abspielen haben sicherlich was mit der Standard Integer Arithmetik, zu tun.
Wäre zumindest mein erster Ansatz.

Soweit wie möglich die Byte Verarbeitung erzwungen.

#include <Arduino.h>

const uint8_t size = 17; 
const uint8_t ledtakt[size] PROGMEM = {60,25,40,75,33,90,57,24,100,68,73,80,37,75,254,97,105};
uint8_t ledtime[size];

/*
inline void toggle(const uint8_t pin)
{
  uint8_t bit  = digitalPinToBitMask(pin);
  uint8_t port = digitalPinToPort(pin);
  *portInputRegister(port) = bit;
}
*/
uint8_t zeitMerker = 0; // millis() ErsatzStoff

int main()
{
  DDRD = 0b01111111;
  DDRA = 0b00000011;
  DDRB = 0b11111111;
//  Serial.begin(9600);
  while(1)
  {
       for( uint8_t LED = 0; LED < size ; LED++ ) 
       {
           uint8_t diff = zeitMerker - ledtime[LED];
           uint8_t takt = pgm_read_byte(&ledtakt[LED]);
           if(diff >= takt)
           {
              ledtime[LED] = zeitMerker;
              uint8_t bit  = digitalPinToBitMask(LED);
              uint8_t port = digitalPinToPort(LED);
              *portInputRegister(port) = bit;
           }
       } 
       _delay_ms(99); // 1 ms für die Verarbeitung 
       zeitMerker++;  
  //     Serial.println(zeitMerker,HEX); 
  }
}

auch quasi ungetestet