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



Teraz jest 29 mar 2024, o 10:17


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 25 ] 
Autor Wiadomość
PostNapisane: 16 paź 2017, o 22:50 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Jestem na etapie poradnika zegar predatora cz 1, chciałem wypróbować programowanie procesora przez mkBoot Loader. Mam taki kod w pliku main.c:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W sekcji int main(void); zapalam sobie diodę aby zobaczyć czy procesor działa dioda zapala się i jest ok, ale jak odkomentuję ustawienia Timera to dioda zapala się i gaśnie tak jakby procesor się resetował.
Proszę o pomoc ponieważ nie mogę sobie z tym poradzić.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 paź 2017, o 23:12 
Offline
Moderator
Avatar użytkownika

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

Hannibal9 napisał(a):
akby procesor się resetował.

nie "jakby" tylko się resetuje - skoro sam mu wyjmujesz dywanik spod nóg ...

No jak można odpalać przerwanie timera i nie napisać procedury obsługi tegoż przerwania - ZAWSZE wtedy się procek będzie restartował - przecież co chwilę się o tym trąbi na forum ;)

Wstaw że więc chociażby pustą obsługę tego przerwania albo go nie odblokowuj i będzie ok

_________________
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: 16 paź 2017, o 23:14 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Próbuję wysłać coś przez PC2 na ledy, ale oczywiście też nie działa.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 20 minutach ]

mirekk36 napisał(a):
Hannibal9 napisał(a):
akby procesor się resetował.

nie "jakby" tylko się resetuje - skoro sam mu wyjmujesz dywanik spod nóg ...

No jak można odpalać przerwanie timera i nie napisać procedury obsługi tegoż przerwania - ZAWSZE wtedy się procek będzie restartował - przecież co chwilę się o tym trąbi na forum ;)

Wstaw że więc chociażby pustą obsługę tego przerwania albo go nie odblokowuj i będzie ok


Dołożyłem pustą procedurę, ale to nic nie dało.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


:(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 paź 2017, o 23:37 
Offline
Moderator
Avatar użytkownika

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

co nic nie dało ? Wrzucasz jakieś dwie odpowiedzi i ? ... mamy losować co dało a co nie dało ?

Skup się proszę na jednym - pisałeś wcześniej, że dioda LED się zapala ale procek się restartuje, to wróć do tego kodu i najpierw sprawdź czy ci się resetuje czy nie - a później idź dalej - a nie tak na huuurrra coś robisz - i później nie wiadomo o co kaman ? ;)

_________________
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: 16 paź 2017, o 23:41 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

mirekk36 napisał(a):
co nic nie dało ? Wrzucasz jakieś dwie odpowiedzi i ? ... mamy losować co dało a co nie dało ?

Skup się proszę na jednym - pisałeś wcześniej, że dioda LED się zapala ale procek się restartuje, to wróć do tego kodu i najpierw sprawdź czy ci się resetuje czy nie - a później idź dalej - a nie tak na huuurrra coś robisz - i później nie wiadomo o co kaman ? ;)

OK, przepraszam ale już mi głowa puchnie, wstawiłem pustą procedurę przerwania

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


Ale procesor dalej się resetuje.

------------------------ [ Dodano po: 5 minutach ]

Obrazek


Mam taki komunikat z EclipsGadget.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 paź 2017, o 23:54 
Offline
Moderator
Avatar użytkownika

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

Hannibal9 napisał(a):
Mam taki komunikat z EclipsGadget.

Ty patrz lepiej w błedy w oknie CONSOLE

a masz tam wyraźnie napisane, że nie ma czegoś takiego jak TIMER0A_COMP_vect - sam musiałeś to wymyślić, a przecież w Eclipse masz ładnie pokazane nazwy wszystkich wektorów przerwań w oknie AVR DEVICE EXPLORER

więc jeśli masz tu błąd to znaczy, że zły wektor - czyli nadal go nie ma i nadal będzie się resetował - dokąd nie wpiszesz poprawnej nazwy wektora przerwania

_________________
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: 17 paź 2017, o 07:30 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Korzystałem z AVR DEVICE EXPLORER, tylko że procek był wybrany nie ten :). Sprawę Timera mam załatwioną.
Niestety dalej nie mogę zapalić paska diod. Bibliotekę do WS2812 przepisywalem z poradników działa z ATMega 32, skopiowałem cały folder do projektu z Magic Matrix. W ws281x.asm.c dodałem wstawkę dla taktowania 18432000, ustawiłem pin, w main wstawiłem:
Składnia: [ Pobierz ] [ Ukryj ]
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


ale paska nie mogę zaświecić :(

Cały 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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 paź 2017, o 08:21 
Offline
Moderator
Avatar użytkownika

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

to teraz pokaż może jak masz to podłączone, schemat może, ile diod czy poprawnie skonfigurowane itp

_________________
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: 17 paź 2017, o 08:51 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Działam na stykówce diod mam 20. Linia sterująca podłączona pod PC2.
Kkonfiguracja:

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


Pędzę do pracy wieczorem pokombinuje.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 paź 2017, o 11:22 
Offline
Moderator
Avatar użytkownika

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

sprawdź czy nie upaliłeś pierwszej diody LED ... masz rezystor na linii magic LED przed pierwszą diodą ?

_________________
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: 17 paź 2017, o 20:55 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Sprawa się wyjaśniła, jeszcze raz przekopiowałem bibliotekę WS2812 a w niej dane były wysyłane na PB0 i zadziałało, a jak zmieniłem na pin PC2 nie działa, zmieniłem na PC1 i działa, wygląda że PC2 jest uszkodzony. Na porcie C działa tylko na PC0, PC1, PC6 i PC7. Na PC2, PC3,PC4 i PC5 nie dziła.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 paź 2017, o 21:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Nic nie jest uszkodzone. ;)
Musisz wyłaczyć interfejs JTAG, bo pewnie na tych właśnie pinach w twoim mikrokontolerze znajdują się jego sygnały. Na przykład dla serii ATmega16, ATmega32, ATmega64 itd masz właśnie na PC2 - TCK, PC3 - TMS, PC4 - TDO i PC5 - TDI czyli sygnały służące do podłączenia JTAG'a.
Fabrycznie nowy mikrokontroler ma właśnie włączoną jego obsługę. Wystarczy zatem wyłączyć bit JTAGEN i wszystkie te piny, które wymieniłeś będą działały prawidłowo. ;)


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 paź 2017, o 23:23 
Offline
Moderator
Avatar użytkownika

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

anshar napisał(a):
Musisz wyłaczyć interfejs JTAG

A to jest jedna z bodajże MILIARDA najczęściej udzielanych porad na wszystkich forach świata odnośnie AVRów ;)


Autor postu otrzymał pochwałę

_________________
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: 18 paź 2017, o 17:14 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Ja tylko dwa słowa.

DZIĘKUJĘ BARDZO!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 paź 2017, o 20:33 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Aby tradycji stało się zadość to mam kolejny problem, chcę zapalić pojedynczy piksel, jeżeli bezpośrednio przed zapaleniem piksela wyczyszczę bufor piksel się nie zapala:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

ale jak dam minimalną zwlokę pomiędzy czyszczeniem a zapaleniem pikselka to piksel się zapala:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.




Podobnie jest z wyświetleniem linii, natomiast wyświetlanie gradientu działa poprawnie.

Wstawiam funkcje ws_cls i ws_st_pixel , proszę o sprawdzenie czy są poprawne bo ja już oczopląsu dostaję

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 paź 2017, o 08:51 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

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


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

-kasuję pasek led, color 0
- kasuje pasek led, color 100010
- wyświetlam pasek na 3 sekundy
a rezultat jest taki, że pasek nie świeci, wystarczy, że dam 1 ms:

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

a wszystko działa poprawnie.

Co robię źle?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 paź 2017, o 09:10 
Offline
Moderator
Avatar użytkownika

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

bo nie masz przecież przerwy pomiędzy wysyłaniem i całość ci leci jakby w jeden pasek - no Panie kochany ... jak działają Magic LEDy proszę przypomnij sobie , zajrzyj do noty albo do moich poradników.... A jak chcesz żeby ci to działało poprawnie to daj że jak się należy na końcu CLS opóźnienie kilkadziesiąt us ! np 40us

_________________
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: 21 paź 2017, o 09:35 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Ok, Mirku w Twoim poradniku Predatorefect cz 2 jest taki kod:
ws_cls(pasek,0);
ws_set_pixel(pasek,10,0x330033);
i u Ciebie działa,

u mnie to nie działa, jak dam pomiędzy ws_cls a ws_set_pixel zwlokę np 1 ms to działa.
Bibliotekę WS2812 przepisywałem z Twoich poradników o magicled-ach, czy ta do MagicMatrix jest jakoś zmodyfikowana?

------------------------ [ Dodano po: 13 minutach ]

Oczywiście dodanie opóźnienia na końcu ws_cls pomaga.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 paź 2017, o 10:29 
Offline
Moderator
Avatar użytkownika

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

Hannibal9 napisał(a):
jak dam pomiędzy ws_cls a ws_set_pixel zwlokę np 1 ms to działa.

i po co 1 ms ??? toż wystarczy 40-50us

_________________
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: 21 paź 2017, o 11:24 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Ok, tylko dlaczego w Twoim poradniku tego opóźnienia nie potrzeba? Czy może dlatego że ja obsługuję tylko 20 diód i procedura ładowania danych do tablicy jest "za krótka"?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 paź 2017, o 12:54 
Offline
Moderator
Avatar użytkownika

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

powiedz mi co za różnica ?

Prześledź sobie tematy związane z Magic LED'ami na forum, zobacz, że Chińczycy co chwilę coś w nich zmieniają ... co za różnica że u mnie działa bez tego _delay_us(50) ? zwykle wstawiam jakiś kawałek innego kodu po tym cls i dzięki temu np lecą już te dodatkowe mikrosekundy - w ogóle nie rozumiem jaki problem ?

_________________
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: 21 paź 2017, o 14:36 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Nie ma problemu. Chodzi o zrozumienie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 paź 2017, o 15:27 
Offline
Moderator
Avatar użytkownika

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

Hannibal9 napisał(a):
Nie ma problemu. Chodzi o zrozumienie.


No to właśnie dlatego pisałem i opowiadałem w poradnikach i w nocie PDF masz, że zasada działania magic LEDów polega na tym, że MUSI być jakiś czas dany po wysłaniu ciągu dla całego paska - w nocie masz 50us aczkolwiek w zależności od diod może to być nieco mniej - więc dlatego piszę że nie rozumiem gdzie jest problem w zrozumieniu.

wysyłasz CLS - i MUSISZ zapewnić ten czas i tyle - i nie ma co się upierać że "a w twoim poradniku nie było tego delaya w CLSie" ... co z tego? jeśli ja go inaczej później w kodzie używałem być może - nawet nie ma sensu do tego wracać - tylko wstawić sobie delaya 40us na końcu CLSa i to wszystko

_________________
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: 21 paź 2017, o 21:41 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Mirku, prawdopidobnie w Twoim poradniku umkneło mi to 50 us. Ok. Ale ja jestem z tych co nie zadowala ich info "wstaw sobie 40 us i po kłopocie" Zwłaszcza ze w Twoim kodzie tych 40 us nie ma. Wyjaśnileś mi dokladnie o co chodzi i jest ok i dziekuje za to bardzo. Pewnie nigdy nie dojdę w programowaniu do tego co Ty ale bardzo lubię wiedzieć jak coś działa i strasznie mnie to męczyło dlaczego u Ciebie to działa a u mnie nie. Niektórym wystatcza gotowa funkcja Event, a mnie najbardziej kręci co siedzi w tym Evencie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 paź 2017, o 08:04 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Pamiętaj, że wystarczy aby Mirek miał diody z innej partii albo innego producenta i parametry transmisji mogą się różnić.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 16 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