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



Teraz jest 30 lis 2024, o 07:26


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 ]
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 ]
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ł: Majestic-12 [Bot] 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO