Witam

. Chciałem napisać program który będzie mi zapalał diody od PD0 do PD7 pozostawiając poprzednią zapaloną czyli:
0b00000001
0b00000011
0b00000111
..........
0b11111111
,a następnie gasząc od PD0 do PD7 czyli
0b11111110
0b11111100
0b11111000
...........
0b00000000
Diody podłączone katodami (zdaję sobie sprawę, że przedstawienie binarne powinno być zanegowane

) do Atmegi. Chciałbym to zrobić bez użycia tablic i o ile 1 część poszła bardzo sprawnie, o tyle 2 jest zagadką.
Ten kod to efekt najbliższy pożądanemu : diody zaświecają się od PD0do PD7 (czyli ok), jednak gasną od PD7 do PD0 zamiast od PD0-PD7.
Będę bardzo wdzięczny za każdą wskazówkę.
#include<util/delay.h>
#include<avr/io.h>
uint8_t i,k=1;
int main(void)
{
DDRD=0xff;
PORTD=0xff;
while(1)
{
for(i=0;i<8;i++)
{
PORTD=~k;
k=2*k+1;
_delay_ms(100);
}
for(i=0;i<8;i++)
{
PORTD=~k;
k=k/2;
_delay_ms(100);
}
}
}