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



Teraz jest 1 gru 2024, o 19:35


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 31 lip 2018, o 14:17 
Offline
Nowy

Dołączył(a): 16 wrz 2015
Posty: 15
Pomógł: 0

Witam
Mam problem z dostosowaniem biblioteki z BB do wyświetlaczy ze wspólną katodą.
Z tablicy ze znakami usunąłem negacje więc są wyświetlane poprawnie i gdy wyświetlam wszystkie znaki takie same to wszystko działa. Problem jest wtedy gdy są różne znaki ponieważ się wtedy nakładają na siebie. Myślę ze problem leży w sterowaniu katodami 1 a nie 0 i przełączaniu ich 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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 lip 2018, o 14:18 
Offline
Moderator
Avatar użytkownika

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

kubabrowar333 napisał(a):
Myślę ze problem leży w sterowaniu katodami 1 a nie 0 i przełączaniu ich w przerwaniu.

Łatwiej byłoby coś podpowiedzieć widząc twój schemat niż się domyślać, ale skoro piszesz że masz zanegowane sterowanie katodami to czemu w kodzie tego nie zanegujesz? w tym kodzie w przerwaniu?

_________________
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: 31 lip 2018, o 14:43 
Offline
Nowy

Dołączył(a): 16 wrz 2015
Posty: 15
Pomógł: 0

Gdy negowałem maskę wtedy wszystkie wyświetlacze świeca bardzo słabo.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

a ty schemat całego urządzenia z wyświetlaczami
Załącznik:
Wi-Fi Clock Model 1.pdf


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 lip 2018, o 16:57 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

kubabrowar333 napisał(a):
Mam problem z dostosowaniem biblioteki z BB do wyświetlaczy ze wspólną katodą.
...
Myślę ze problem leży w sterowaniu katodami 1 a nie 0 i przełączaniu ich 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.

Gdy negowałem maskę wtedy wszystkie wyświetlacze świeca bardzo słabo.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Przyznam się uczciwie, że nie znam tej biblioteki, ale na Twoim miejscu spróbowałbym jeszcze:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Ostrzegam, że to był strzał z zamkniętymi oczami ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 lip 2018, o 18:20 
Offline
Nowy

Dołączył(a): 16 wrz 2015
Posty: 15
Pomógł: 0

wtedy wyświetlacz świeci bardzo słabo a biblioteka pochodzi z niebieskiej książki



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 lip 2018, o 19:29 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

kubabrowar333 napisał(a):
biblioteka pochodzi z niebieskiej książki

Nie mam "niebieskiej książki", co nie musi oznaczać, że się nie znam na multipleksowaniu i nie umiem wyciągać logicznych wniosków.
Jeżeli przy takim zapisie
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
cyfry Ci się nakładają,
a przy takim zapisie
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

"wyświetlacze świecą bardzo słabo", to przy zapisie jaki zaproponowałem powinno być OK.

Jeśli nie jest dobrze, to znaczy najprawdopodobniej, że to nie jedyny błąd. Warunkiem prawidłowego działania jest na przykład prawidłowa modyfikacja w przerwaniu zmiennej licznik. Musi ona przyjmować wartości adekwatne do tego, na których pinach masz podłączone sterowanie katod. Zgodnie z Twoim schematem zmienna licznik powinna przyjmować kolejne wartości (binarnie):
00010000
00100000
01000000
10000000
00010000
00100000

... itd.

Jeśli w przykładzie z książki masz sterowanie anodami na innych pinach portu, to musisz to przerobić.

Dodatkowo należy pamiętać, że przed zmianą cyfry (w przerwaniu) należy wszystkie katody wyłączyć, i to też musisz zmienić w stosunku do przykładowego kodu z książki, bo z tego co rozumiem, tam jest sterowania anodami. Wygaszenie u Ciebie powinno wyglądać tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Powinny tam być również warunki, które wybierają odpowiednie cyfry np. na podstawie wartości zmiennej licznik. Jeśli Twoje katody są na innych pinach jak w przykładowym kodzie z książki, to też musisz to zmodyfikować.

Podejrzewam, że autor książki opisał w niej, jak działa kod i ewentualnie w jaki sposób można dostosować go do własnych potrzeb, więc może przeczytaj to dokładnie.

Łatwiej byłoby, gdybyś pokazał całą swoją procedurę obsługi przerwania, ale pewnie tego nie możesz zrobić ze względu na prawa autorskie. Proponowałbym jednak, abyś sprawdził moje sugestie...



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

Dołączył(a): 16 wrz 2015
Posty: 15
Pomógł: 0

Dzięki za pomoc.
Procedurę przerwania rozwiązałem w ten sposób:
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: 1 sie 2018, o 07:30 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

Sądząc po tym, w jaki sposób wcześniej włączałeś katody wyświetlacza, teraz zastosowałeś inną taktykę wykorzystania zmiennej licznik, niż to jest w kodzie z książki, ale tak też powinno działać. Miałbym jednak jeszcze pewne uwagi.
  • Sekwencja przełączenia cyfry powinna wyglądać tak:
    1. wyłączenie wszystkich katod - wygaszenie wszystkich cyfr
    2. zmiana stanu portu sterującego segmentami cyfry
    3. włączenie odpowiedniej katody aktualnie wyświetlanej cyfry
    Ma to zapobiegać "prześwitywaniu" segmentów z sąsiednich cyfr. W Twoim kodzie ta kolejność nie jest zachowana. Powinieneś zmienić kolejność instrukcji wewnątrz bloków warunkowych case.
  • Zerując zmienną licznik w ten sposób spowodowałeś, że jeden "obieg" procedury obsługi przerwania jest niewykorzystany i służy tylko do wyzerowania zmiennej. W efekcie wykorzystujesz pięć "obiegów" procedury obsługi przerwania do przełączania czterech cyfr, przy czym jedna z cyfr będzie się świecić dwukrotnie dłużej, niż pozostałe, co może spowodować, że wizualnie będzie się ona świecić nieco jaśniej niż inne.
    Aby tego uniknąć, zmienna licznik powinna być modyfikowana (lub przynajmniej zerowana) po zakończeniu instrukcji switch

Osobiście zrobiłbym raczej w ten sposób:
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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