Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 30 mar 2026, o 20:58


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 3 sty 2017, o 20:53 
Offline
Użytkownik

Dołączył(a): 23 sty 2014
Posty: 1085
Pomógł: 73

Witam,
przerabiam aktualnie poradniki pana Mirka na temat Magic LED-ów. Wszystko działa fajnie ale podczas ćwiczeń i napotkałem dziwne zachowanie programu, którego nie potrafię sam wyjaśnić... Już mówię o co chodzi. Mam linijkę składającą się z 8 diod LED.
W programie zapalam 3 piksele:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wszystko działa jak należy. Problem pojawia się, kiedy nie umieszczę na samym początku funkcji

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


czyli wysyłam do mikrokontrolera skompilowany kod:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Gdy pominę funkcję ws_cls( pasek, 0);, która zeruje bufor danych wysyłanych do diod przy wgrywaniu tego samego wsadu za pomocą przycisku "Upload current project..." na 10 prób wgrania bywa że dwa-trzy razy diody zapalają się przypadkowo w innych kolorach (nie tylko piksele 3, 5, 8 ale również 1, 7, 2 itd).
Bufor jest tablicą składającą się z 8 elementów, z których każdy jest strukturą z trzema polami uint8_t. Przy starcie programu komórki tablicy powinny być wyzerowane a moim przypadku wygląda jakby nie zawsze były....
Funkcja ws_cls( pasek, 0) zeruje wszystkie elementy tablicy i nigdy po jej użyciu nie zdarzyło się żeby diody zapaliły się przypadkowo. Koledzy którzy przerabiali te poradniki na pewno czuja dobrze temat. W związku z tym proszę o wskazówkę gdzie może być błąd?
Pozdrawiam :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sty 2017, o 21:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 cze 2014
Posty: 820
Lokalizacja: Tam gdzie PYRY są
Pomógł: 64

Nie wiem czy to błąd ale tak jest. Ja tak mam, inni też pisali.
To nie jest tak, że trzeba zerować bufor. Na dowód spróbuj tak, że nie resetujesz bufora tylko ustaw diody jak ustawiasz i daj dwa razy asm_send. Zobaczysz że zadziała bez resetowania bufora.
Ja daję delaja na samym początku programu i jest ok.


Autor postu otrzymał pochwałę

_________________
IntegraMETEO
WordCLOCK
IntegraTOUCH



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sty 2017, o 21:13 
Offline
Użytkownik

Dołączył(a): 23 sty 2014
Posty: 1085
Pomógł: 73

Tak masz rację, działa tak jak mówisz. Czyli wiadomo jak pozbyć się problemu ale nie wiadomo skąd się on bierze :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO