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? 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 11 lip 2025, o 09:24


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
    Autor Wiadomość
     Tytuł: Zegar
    PostNapisane: 4 sie 2014, o 17:13 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 maja 2014
    Posty: 57
    Lokalizacja: Warszawa
    Pomógł: 1

    Dobry!

    Złożyłem taki układ na medze88P, który można określić jako zegarek cyfrowy :P
    Działa większość rzeczy, ale na wyświetlaczu, na którym ma się pojawiać godzina, występują same ósemki. I tutaj pojawia się moje pytanie - co zrobiłem źle? Krytykę odnośnie stylu pisania kodu chętnie przyjmę, a za głupie błędy przepraszam - jestem w temacie kompletnie zielony i nie nauczyłem się jeszcze wszystkiego :)

    plik nagłówkowy z #define-ami:

    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.







    Plik main.c:
    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.

    _________________
    Bluebook + ATB rev 1.04

    wziąść - braść



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: Zegar
    PostNapisane: 4 sie 2014, o 19:15 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 sie 2013
    Posty: 3797
    Lokalizacja: Grudziądz
    Pomógł: 143

    Na początek polecam oglądnąć Mirka poradniki bo te polecenia switch to takie bardzo kocie w C są i ryby nie złapią

    _________________
    Usługi druku przestrzennego - www.drumik.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: Zegar
    PostNapisane: 4 sie 2014, o 20:43 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 sty 2012
    Posty: 777
    Lokalizacja: Karpicko k. Wolsztyna
    Pomógł: 197

    Po pierwsze to utworzyłeś cztery zmienne w pamięci Eeprom
    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 odwołujesz się do nich jakby to były zwykłe zmienne w pamięci RAM. To tak nie działa. Do odczytu i zapisu tych zmiennych należy użyć funkcji do tego przeznaczonych np. eeprom_read_byte, eeprom_write_byte itd.

    Po drugie źle wysyłasz dane na segmenty wyświetlacza.
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Niepotrzebnie dałeś tam bitowe AND czyli &. Przy takim zapisie raz wyświetlona liczba już pozostanie na wyświetlaczu a wyświetlanie kolejnych liczb spowoduje jedynie włączanie kolejnych segmentów. Co w efekcie końcowym spowoduje włączenie wszystkich segmentów czyli liczby 8. Jeśli wyświetlisz np. liczbę 1 a potem np. liczbę 6 to segment B włączony przy "jedynce" będzie nadal włączony przy wyświetlaniu "szóstki" i wyświetli ci się liczba 8.

    Jednak po poprawieniu tych makr program i tak nie działa poprawnie (sprawdzone na ATB) a na wyświetlaczu oprócz wyświetlanych poprawnych liczb widać lekkie świecenie liczb z sąsiednich wyświetlaczy.

    Ogólnie ten koci kod należało by cały zmienić a wyświetlanie liczb na wyświetlaczu zrobić za pomocą przerwania. W podpisie masz napisane, że posiadasz Bluebooka. Więc może na początek wykorzystaj sprawdzone rozwiązanie z lekcji 03_Multi_Led.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: Zegar
    PostNapisane: 5 sie 2014, o 08:59 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 maja 2014
    Posty: 57
    Lokalizacja: Warszawa
    Pomógł: 1

    Witam.
    Przepraszam za brak polskich liter, ale jestem zmmuszony pisac na wiekowym sprzecie, bez polskiego drivera klawiatury. :(
    Bardzo dziekuje za podpowiedz. Jeszcze 2 pytania: Po pierwsze - inkrementacja zmiennej min bedzie taka?
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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


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


    Z gory dziekuje.

    _________________
    Bluebook + ATB rev 1.04

    wziąść - braść



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO