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



Teraz jest 15 lis 2024, o 08:48


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 14 lip 2015, o 20:09 
Offline
Nowy

Dołączył(a): 15 sty 2015
Posty: 8
Pomógł: 0

Witam,
nie będę się dużo rozpisywać, ale zacząłem się bawić magic ledami i pisaniem protokołu komunikacji do nich. Problem mam taki. Chodzi po prostu o to, że robię stan wysoki>>nop>>stan niski i to umieszczone w petli main działa poprawnie, ale jeżeli to samo przerzuce do pliku ws2812.c to nagle czas trwania stanu niskiego jest 710 ns. Procesor to atmega 328 z kwarcem 16MHz



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2015, o 20:33 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27308
Lokalizacja: Szczecin
Pomógł: 1041

patryk.619 napisał(a):
Witam,
nie będę się dużo rozpisywać, ale zacząłem się bawić magic ledami i pisaniem protokołu komunikacji do nich. Problem mam taki. Chodzi po prostu o to, że robię stan wysoki>>nop>>stan niski i to umieszczone w petli main działa poprawnie, ale jeżeli to samo przerzuce do pliku ws2812.c to nagle czas trwania stanu niskiego jest 710 ns. Procesor to atmega 328 z kwarcem 16MHz


Jeśli kolega zrozumie, że programiści posługują się kodem źródłowym a np poloniści prozą albo wierszem i kolega zacznie mówić do nas kodem źródłowym a nie wierszem to może się uda pomóc. Wszakże to forum elektroniczno/programistyczne a nie literackie.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2015, o 20:52 
Offline
Nowy

Dołączył(a): 15 sty 2015
Posty: 8
Pomógł: 0

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

}
}

W takiem najprostszym kodzie jest wszystko ok. Natomiast jeżeli to umieszczę w pliku ws2812.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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

To nagle czas trwania stanu niskiego wydłuża się do 710 ns.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2015, o 21:13 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27308
Lokalizacja: Szczecin
Pomógł: 1041

wydaje mi się, że jednak nie do końca oglądałeś uważnie poradniki. Poza tym obejrzyj je do końca bo w dalszych częściach masz już gotowe wstawki asemblerowe generowane za free przez MkAvrCalculator

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2015, o 21:31 
Offline
Nowy

Dołączył(a): 15 sty 2015
Posty: 8
Pomógł: 0

Wiem, że w MkAvrCalculator są gotowe wstawki, ale ciekawi mnie dlaczego inaczej działa kod napisany bezpośrednio od tego wstawionego z biblioteki. Natknąłem się już na to kiedyś jak jeszcze w technikum pisałem programy w asemblerze na DSM-51. Wtedy też zauważyłem, że działa to inaczej niż w bibliotece.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2015, o 21:37 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27308
Lokalizacja: Szczecin
Pomógł: 1041

jeśli chcesz aby działał ci kod pisany w C tak jak w pierwszych poradnikach to zrób DOKŁADNIE tak jak w tych poradnikach - bo to co tu pokazałeś różni się od tego z pierwszych poradników DIAMETRALNIE

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2015, o 22:00 
Offline
Nowy

Dołączył(a): 15 sty 2015
Posty: 8
Pomógł: 0

Ten kod to tylko wyostrzenie problemu. Kod napisany identycznie jak w poradniku nie dawał zamierzonych rezultatów właśnie przez ten minimalny czas trwania stanu niskiego czyli 710ns. Dziękuję za odpowiedzi, ale widzę, że będę musiał drążyć temat gdzie indziej.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lip 2015, o 10:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 maja 2013
Posty: 432
Lokalizacja: Gostyń / Poznań
Pomógł: 25

porównaj sobie kod ASM generowany przez kompilator, przeanalizuj i będziesz miał odpowiedź...a tak na chłopski rozum to przecież coś musi tą funkcję obsłużyć (wejść do niej i wyjsc a to pewnie jakiś czas zajmuje...)
No i obejrzyj poradniki Mirka o MagicLedach...
http://www.adafruit.com/datasheets/WS2812.pdf a jak przejrzysz to, to okaże się że te twoim zdaniem minimalne 710ns to jednak spooooro czasu

_________________
Podpis...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2015, o 17:45 
Offline
Nowy

Dołączył(a): 15 sty 2015
Posty: 8
Pomógł: 0

Zrobiłem to samo na pic18F45K50 i tam tego nie ma.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2015, o 19:14 
Offline
Użytkownik

Dołączył(a): 01 sty 2014
Posty: 116
Pomógł: 14

Spróbuj dodać specyfikator inline.



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: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO