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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 19 maja 2025, o 00:38


    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: 27396
    Lokalizacja: Szczecin
    Pomógł: 1043

    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 ] [ Zaznacz wszystko ]
    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 ] [ Zaznacz wszystko ]
    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 1 gość


    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