logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Wąż świetlny z LED atmega8 C

bartek1333 19 Maj 2011 21:40 1794 3
REKLAMA
  • #1 9524805
    bartek1333
    Poziom 9  
    Witam,
    właśnie się uczę programować atmege8 w C i mam problem z taką "zabawą" na diodach.
    Wymyśliłem sobie, że to będzie coś w rodzaju Snake. "Idą" sobie 3 diody, a gdy dojdą do końca portu to wtedy jedna dioda idzie na początek a przy kolejnym naciśnięciu przycisku 2 diody idą na początek i tak w kółko (zależnie który przycisk wcisnę to diody się przesuwają albo w lewo, albo w prawo o jedno pole).
    Daję kod

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Diody do PortuD są podłączone, zapalają się przy wysokim stanie. Przyciski do PortuC, ściągają do masy pin.
    Program się kompiluje, tylko że gdy wcisnę przycisk 2 raz to diody stają.
    Proszę o jakieś sugestie co do kodu.
  • REKLAMA
  • REKLAMA
  • #3 9525578
    Xitami
    Poziom 29  
    unsigned char z;
    z=(z<<1) | (z>>7); // w lewo
    z=(z>>1) | (z<<7); // w prawo
  • #4 9526405
    xanio
    Poziom 27  
    Xitami, rzeczywiście jest to względnie elegancki sposób, chociaż ROR/ROL to standardowa instrukcja AVR więc można bardziej optymalnie (jednak problem z tym, że w C takiej instrukcji brak).
REKLAMA