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



Teraz jest 29 gru 2024, o 12:59


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 36 ]  Przejdź na stronę Poprzednia strona  1, 2
Autor Wiadomość
PostNapisane: 11 wrz 2016, o 22:30 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Daro69 napisał(a):
Sam jeszcze nie wiem jak bym to dalej rozpisał, ale w tablicę to już CYFRA_0 nie dam rady wkitrać. :?

A niby czemu nie? Przecież tablice są indexowane właśnie od zera.

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 wrz 2016, o 22:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Wojtku,
Coś jeszcze... ja podłączyłem pod anody wyświetlacza uc. więc załączam je stanem wysokim.
A u Ciebie jeżeli jest sterowanie przez PNP to musisz stanem niskim załączać, a wysokim wyłączać.
TEN WPIS :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

możliwe że dlatego nic nie świeciło. ;)
A ja pomyślę nad tym nowszym kodem, -bo już zauważyłem w nim przeoczenia. :roll:

------------------------ [ Dodano po: 10 minutach ]

Harry napisał(a):
A niby czemu nie? Przecież tablice są indexowane właśnie od zera.

No tak, ale ja w tym nowszym kodzie mam takie coś w definicjach, a one zawierają wpisy np.: PORTD &=~(1<<PD0);...itd. z przesunięciem nie ma problemy umieścić w tablicy, ale co z PORT_ ?:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

jak to wkitrać w tablicę ? muszę coś innego kurcze wykombinować.

------------------------ [ Dodano po: 17 minutach ]

Ogólnie mówiąc próbujemy tak napisać program żeby można było dowolnie konfigurować każdy PIN wyświetlacza. np katoda segment A będzie na PD0 a segment B na PB1 ? a anody np 4, też w różnych miejscach - nie koniecznie na jednym porcie 0,1,2,3 .:)


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 wrz 2016, o 00:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Hejka,
Wojtku, ta nowsza wersja V.2 czeka na Ciebie, od wczoraj. :)
Myślę jednak że w celach edukacyjnych,
znacznie łatwiejszy do zrozumienia i załapania zasady działania wyświetlacza LED jest ten pierwszy program V.1 :),
z anodami na jednym porcie i katodami też na jednym porcie w kolejności od 0.

Gdyby się okazało że już wiesz o co chodzi to zrobimy kilka kroków do przodu bo wstawię tu - LED_V2. :D
Co prawda kod pozostawia jeszcze wiele do życzenia, bo muszę się sporo nauczyć i wprawić w konstruowaniu algorytmów.
Nie mniej jednak działa.
Można w nim dowolnie wybierać piny i porty A, B, C, D, oraz ilość cyferblatów (cyfr na wyświetlaczu) tzn. do 6-ciu,
a także ustawiać czy wysterowanie jest stanem niskim czy wysokim zarówno segmentów jak i wspólnych anod-katod.
Łatwo będzie dostosować do np. tranzystorów sterujących PNP lub NPN, gdyby zaszła potrzeba wzmocnienia wyjścia. 8-)

A ja biorę się za pisanie V.3, bo w V.2 jest np. zbyt wiele operacji w przerwaniu i mi się to nie podoba.
Wypadałoby także pouczyć się optymalizacji, a to już nie będzie takie chop-siup. :?
Zobaczę co mi z tego wyjdzie. ;)

Pozdrawiam Darek.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 wrz 2016, o 11:01 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Daro69 napisał(a):
Harry napisał(a):
A niby czemu nie? Przecież tablice są indexowane właśnie od zera.

No tak, ale ja w tym nowszym kodzie mam takie coś w definicjach, a one zawierają wpisy np.: PORTD &=~(1<<PD0);...itd. z przesunięciem nie ma problemy umieścić w tablicy, ale co z PORT_ ?:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

jak to wkitrać w tablicę ? muszę coś innego kurcze wykombinować.

------------------------ [ Dodano po: 17 minutach ]

Ogólnie mówiąc próbujemy tak napisać program żeby można było dowolnie konfigurować każdy PIN wyświetlacza. np katoda segment A będzie na PD0 a segment B na PB1 ? a anody np 4, też w różnych miejscach - nie koniecznie na jednym porcie 0,1,2,3 .:)


Przecież dla preprocesora to bez różnicy, kompilator i tak zamieni tak jak powinno być, równie dobrze mógłbyś to napisać tak:

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


Autor postu otrzymał pochwałę

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 wrz 2016, o 16:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Witam "Harry",
Tu się chyba nie zrozumieliśmy. ;)
Ja próbowałem umieścić w tablicy dziewięć elementów.
Problem był w tym że nie potrafię umieścić w tablicy całych dyrektyw zawierających nazwy portów i pinów tak by potem je wykorzystać przy odczycie.
np.
pierwszym elementem musiałoby być takie makro w całości bo to jest reprezentacja cyfry "0" na wyświetlaczu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Gdyby nawet ten jeden element tablicy rozbić na poszczególne polecenia, - no właśnie - polecenia a nie zmienne :?
to i tak jest problem bo jak w tablicy używać poleceń - i jak potem wypchnąć z tablicy do pętli taki jej element?
.np. "PORTD &=~(1<<PD0)" zawierający nazwę PORTU.

int tab[0]={PORTD &=~(1<<PD0)};Przecież to nie zadziała. -

jeżeli teraz w programie spróbuje wywołać taki element tablicy- to niby jak.?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

to i tak nie zadziała wywołanie w pętli bo jak?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

nie podmieni się na polecenia.

To nie zadziała, podobnie jak próby sklejania PORT z literą np. B - nie wykorzystując do tego celu makr upraszczających.
Jeżeli czegoś tu nie wiem to bardzo chętnie się nauczę. Możliwe że są jakieś sposoby.

A może o czymś innym piszemy. :?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 wrz 2016, o 17:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Witam,
Obiecany kod. :) - niestety trochę tasiemiec nie optymalizowany, ale działa. :D
Problem z tablicą pozostał,
ale będzie kontynuowany w następnej wersji jak się trochę poduczę. :?
Zamysły już są w jaki sposób to ogarnąć.
............................................................................................
Tu można dowolnie wybierać:
PORTY A B C D,
PINY 0 - 7
załączanie stanem wysokim lub niskim,
niezależnie czy to segmenty czy cyferblaty-(wspólne anody lub katody).
.............................................................................................
Dla odróżnienia cyfra_1 - (wyświetlana cyfra 1 ), od cyfra_pierwsza, te ostatnie nazwałem cyferblat_1. :P

Na potrzeby edukacyjne Wojtka i jak ktoś ma ochotę to proszę. ;)
Nieraz na szybko może do testów się przyda.

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


Pozdrawiam i miłej rozkminki. :D
Tylko nie obsmarujcie mnie za mocno. :?


Autor postu otrzymał pochwałę


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: 36 ]  Przejdź na stronę Poprzednia strona  1, 2

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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO