Dzień dobry,
Mam problem z uruchomieniem kodu z poradnika WS2812 - Magic Led Part 07b. Obejrzałem wszystkie poradniki z tej serii, a teraz przyszedł czas na praktykę. Na początek kilka słów na temat tego na czym testuję kod. AVR to atmega1284p z kwarcem 14745600 + 10 magic ledów. Kody programu z poradników + wstawka ASM dla mojego kwarca z MKAVRCALCULATORA. Teraz wszystko ładnie mi się kompiluje ale jak wrzucam program do procka to zamiast ładnie skasować wszystkie diody tak jak to jest w poradniku (minuta 24:45 ) u mnie zapala się na zielono pierwsza dioda. Dopiero zabranie zasilanie z układu i ponowne jego podanie powoduje, że wszystkie diody gasną. Reset procka przy użyciu klawisza resetu powoduje że pierwsza dioda zapala się na zielono. Próba użycia funkcji ws_cls( pasek, 0x0f0000) - która powinna zapalić wszystkie diody na czerwono, zapala wszystkie diody ale na niebiesko. Siedziałem trochę nad tym i zauważyłem, że jeśli po funkcji ws_cls wstawię opóźnienie o wartości co najmniej 200us tj. _delay_us(200) to kod z poradnika działa. Teraz moje pytanie czy ktoś miał podobny problem ? I jak wytłumaczyć to dziwne działanie funkcji ws_cls bez tego delaya?
Poniżej funkcja ws_cls z wstawionym opóźnieniem.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.