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



Teraz jest 28 mar 2024, o 11:24


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 9 kwi 2018, o 07:57 
Offline
Nowy

Dołączył(a): 09 kwi 2018
Posty: 2
Pomógł: 0

Moi drodzy,

muszę wyświetlić liczbę wykonanych pętli na wyświetlaczu segmentowym. Wiem, że to banał, niestety jestem kompletnie zielony w temacie.
Proszę pomóżcie mi poprawić ten kod :oops:

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: 9 kwi 2018, o 09:50 
Offline
Użytkownik

Dołączył(a): 07 gru 2013
Posty: 90
Pomógł: 6

Witam. Zrób tak:
1 - zmienna którą chcesz wyświetlić np: "jakis_licznik" przekształć na poszczególne cyfry do wrzucenia na wyświetlacz ( masło maślane ). Przyjmijmy że każdy wyświetlacz ma swoją zmienna np dis1 - pierwszy wyświetlacz "dis2" - drugi "dis3" - trzeci.
I teraz:

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


teraz w dis1 masz setki (2), dis2 dziesiątki (3) dis3 jedności (7)

2 - Stwórz tablice cyfr i kodów na wyświetlacz np taką
( które segmenty wyświetlacza mają się zapalić dla danego znaku )

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


Np wyświetlacz masz podłączony pod PORTB, wcześniej zrobiłeś tak ( pod które piny fizycznie podłączone są 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.


Teraz np aby zapalić segment 0 na wyświetlaczu ( kontrolnie )

PORTB|=(SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F);


3 - I teraz "wrzucasz" na wyświetlacz ( czy to statycznie czy multipleksowo w przerwaniu )

PORTB = znaki_tablica[dis1];

W dis1 jest "2" to na PORTB ląduje trzeci ( liczymy od zera ) element tablicy:

(SEG_A|SEG_B|SEG_D|SEG_E|SEG_G), //2

Trochę chaotycznie to opisałem ale jak byś czegoś nie zrozumiał to pisz, aha zakładam że wyświetlacz masz z wspólną katoda tj, jedynka na pinie ( 5V ) zapala segment.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2018, o 11:55 
Offline
Nowy

Dołączył(a): 09 kwi 2018
Posty: 2
Pomógł: 0

Dziękuję za odpowiedź.

Trochę poczytałem w temacie i poszedłem na łatwiznę, ale wydaje mi się że lepiej tzn. skorzystałem z biblioteki SevSeg. Wciąż jednak mam ten sam problem. Otóż wyświetlanie liczb działa prawidłowo, jednak nie wiem w jaki sposób zrealizować zwiększanie liczby po wykonaniu danej sekwencji przez program.

np. chcę żeby program wystawiał takie piny na zmiane z opóźnieniem i wyswietlał liczbe cykli "i", jednak jeśli jest to w osobnej funkcji to rosnące cykle się nie wyświetlają, ale jesli w tej samej to wyswietlacz nie dziala prawidlowo przez opóźnienie
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: 3 ] 

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