Сейчас начал изучать AVR микроконтроллеры ( на СИ ) и ради практики делаю гирлянду с различными функциями. Заметил что некоторые делают бегущий огонь таким образом :
#define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h> int main() { DDRB=0xFF; //Порт B как выход while(1) { PORTB = 0b00000001; // Зажигаем 1 светодиод _delay_ms(100); // Задержка PORTB = 0b00000010; // 2 _delay_ms(100); PORTB = 0b00000100; _delay_ms(100); // И так далее } }
И так по очереди зажигается каждый светодиод. Это первое что может прийти в голову, но всё же есть более "красивые" методы.