Hilfe beim Sketch verkleinern

Schön, wenn es gefällt!

Noch mehr Raum, geht auch noch.
Aber auf Kosten der Taktgenauigkeit.

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


void setup()
{
  DDRD = 0b01111111;
  DDRA = 0b00000011;
  DDRB = 0b11111111;
}

void loop() 
{
     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