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



Teraz jest 14 mar 2025, o 11:41


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 12 kwi 2015, o 10:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

witam

zabieram się małymi krokami za obsługę matryc led 8x8
zaczynam od multipleksowania wierszy i w sumie to działa bo ustawiłem taką częstotliwość oscylatora żebym widział miganie podłączonych diod

mam problem jak rozwiązać w przerwaniu multipleksowanie wiersz po kolei od 1 do 8
gdybym miał wszystkie na jednym porcie to nie ma problemu a tu jakoś nic mi nie przychodzi do głowy
teraz przełączanie następuje tak, że włączane są wiersze 1,5-2,6-3,7 i 4,8 jednocześnie czyli po dwa na raz
w sumie to nie przeszkadza, ale chciałbym to zrobić tak jak należy czyli od1-8 po kolei

aha i jeszcze jedno - jak w kodzie nie umieściłem pustej pętli "while" to przerwanie się nie wykonuje - dlaczego??
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 kwi 2015, o 13:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 cze 2014
Posty: 47
Pomógł: 0

Może to nie jest jakoś super optymalne, ale działa. Rozpisz sobie takie makra:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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

Do tego będą Ci potrzebne takie makra jak są w bluebooku przy obsłudze lcd, chyba że zrobisz dostęp do portów w inny sposób, np innym makrem. Jakbyś go nie miał to przemycę przykład :)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Za x wstawia się literkę portu, która może być podana też makrem.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


A pętla jest potrzebna chyba po to, żeby procek nie doszedł do końca instrukcji, bo wtedy chyba wszystko staje. Ale to tylko moje podejrzenia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 kwi 2015, o 14:54 
Offline
Użytkownik

Dołączył(a): 06 maja 2014
Posty: 415
Lokalizacja: Kraków
Pomógł: 26

Co do pętli while(1) :

Po wykonaniu wszystkich instrukcji (dojścia do ostatniej) procesor najzwyczajniej napotyka warunek końca programu i kończy swoje działanie.

Warunek pętli while(1) jest zawsze spełniony, czyli pętla ta wykonywać się będzie w nieskończoność - a więc i procesor nigdy nie dotrze do instrukcji stop.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 kwi 2015, o 16:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

krzysssztof

wszystko jasne co do pętli, ale myślałem, że jak uruchamiam timer i on zlicza w trybie CTC generując przerwanie to cykl się będzie powtarzał a tu zonk

robi99956

makra o których piszesz są mi znane z projektu wyświetlacza LCD
zwróć uwagę, że ja chcę (muszę) w jednym makrze połączyć ROWPORT1234 i ROWPORT5678 czyli nie są to pojedyncze piny w dodatku z różnych portów...

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 kwi 2015, o 19:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 cze 2014
Posty: 47
Pomógł: 0

Sposób który podałem powinien mimo to zadziałać, po prostu będzie się wykonywać trochę wolniej.
Jak już koniecznie chcesz wpisywać wartości do portów bez or itp to można tak:
1. Ułóż w makrach wiersze po kolei, od najmłodszych bitów.
2. Po wielkości licznika sprawdzasz, do którego portu chcesz zapisać dane:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

O coś takiego Ci chodziło?



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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