Trotz Zeitmangel juckte es in den Fingern:
combie's letzte Fassung ... Minus #include <Arduino.h> ... Minus Kommentar-Block "toggle()" ... Plus #include <util/delay.h>
#include <util/delay.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];
uint8_t zeitMerker = 0; // millis() ErsatzStoff
int main()
{
DDRD = 0b01111111;
DDRA = 0b00000011;
DDRB = 0b11111111;
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++;
}
}
Kompliert mit IDE 1.8.5 ... Übertragen via UNO R3 auf Tiny 2313 ...
Der Sketch verwendet 252 Bytes (12%) des Programmspeicherplatzes. Das Maximum sind 2048 Bytes.
Globale Variablen verwenden 18 Bytes (14%) des dynamischen Speichers, 110 Bytes für lokale Variablen verbleiben. Das Maximum sind 128 Bytes.
Und es blinkt seit gut einer Stunde nett, lustig und stabil vor sich hin. Optimal!
Ich schätze mal, hier ist dann so ziemlich Ende der Fahnenstange
Dem stimme ich zu!
Beste Grüße, ich bin dann mal fort und packe weiter meine Kisten...
Rudi