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



Teraz jest 30 mar 2026, o 19:40


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 25 ] 
Autor Wiadomość
PostNapisane: 1 mar 2014, o 23:15 
Offline
Użytkownik

Dołączył(a): 18 lut 2014
Posty: 53
Lokalizacja: Kraków
Pomógł: 0

Próbuję napisać własny program do multipleksowania 4 wyświetlaczy 7-segmentowych w oparciu o bluebooka. Procek atmega8 taktowana 8MHz.
Program nie jest skończony, zupełnie nie wiem co ma być w pętli głównej aby zadziałało.
Bardzo proszę o krótkie wyjaśnienie, i sprawdzenie poprawności konfiguracji timera.
Oto kod:



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 mar 2014, o 23:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sie 2013
Posty: 137
Lokalizacja: śląskie
Pomógł: 13

Witam.

Jeżeli program ma wyświetlać stale jakieś określone cyfry to pętla ma być pusta


while (1)
{



}
i to wszystko.(myślę,że o to chodziło bo to pewno tylko do ćwiczeń)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 mar 2014, o 23:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

Musisz napisać np. funkcję w której będziesz wpisywał w tysiącach, żądaną wartość która ma się wyświetlić na 7seg, a następnie ją podzielił przez 1000, 100, 10 i 1. Wtedy wrzucasz to na 7seg, czyli zapisujesz jedności do zmiennych: numer1, numer2, numer3, numer4.

_________________
sig off ;(



Ostatnio edytowano 1 mar 2014, o 23:44 przez LogTeam, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 mar 2014, o 23:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 600
Pomógł: 47

Wy daje mi się że musisz przypisać wartości do tych zmiennych numer...

np.

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

_________________
https://www.instagram.com/myfirstquadcopter/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 00:00 
Offline
Nowy

Dołączył(a): 20 sty 2014
Posty: 7
Pomógł: 0

Żeby zadziałało, to przede wszystkim usuń błąd w linii 79 - Ty masz:
if(licznik>0) licznik=1;
...a powinno być:
if(licznik>8) licznik=1;

Wartość "8" bo masz cztery wyświetlacze, dla 5 wyświetlaczy będzie 16, dla 6 będzie 32 itd...
pozdrawiam
radar



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 00:29 
Offline
Użytkownik

Dołączył(a): 18 lut 2014
Posty: 53
Lokalizacja: Kraków
Pomógł: 0

Błąd poprawiony, pod numerami zapisane wartości w pętli głównej, jednak nadal nic.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 00:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

Nie mam jak sprawdzic timera, ale podlacz piny od multipleksa do diodek.Bedziesz wiedzial czy wgl dziala.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 00:47 
Offline
Użytkownik

Dołączył(a): 18 lut 2014
Posty: 53
Lokalizacja: Kraków
Pomógł: 0

Sprawdziłem, na pinach multipleksu cały czas stan wysoki



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 01:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

Nie caly czas, bo przeciez multipleksowanie polega na szybkim przelaczaniu stanow na pinach ;)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 01:11 
Offline
Użytkownik

Dołączył(a): 18 lut 2014
Posty: 53
Lokalizacja: Kraków
Pomógł: 0

Podłączyłem anodą do pinów, święcą cały czas wszystkie, podłączyłem katodą żadna nie świeci, więc coś jest nie tak. nie daje stanu niskiego



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 02:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

Widze blad. Bawisz sie Timerem2 ale ustawiasz rejestr dla Timera1.
Wgram Twoj kod i popatrze co jest nie tak. W

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 08:44 
Offline
Nowy

Dołączył(a): 23 lut 2014
Posty: 20
Lokalizacja: Szczecinek
Pomógł: 3

A spróbuj tak zmodyfikować procedurę obsługi przerwania:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Te będy, które koledzy znaleźli popraw. W pętli głównej już sobie normalnie ustawiasz:
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: 2 mar 2014, o 10:17 
Offline
Użytkownik

Dołączył(a): 18 lut 2014
Posty: 53
Lokalizacja: Kraków
Pomógł: 0

Faktycznie, wybaczcię za taki głupi bląd, przez nieuwagę ustawiłem preskaler dla timera1. Mea culpa :)

Po wprowadzonych poprawkach na wszystkich wyświetlaczach świecą wszystkie segmenty.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 13:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

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


Proszę. Trzeba było zmienić parę rzeczy. Twoim zadaniem jest przerobienie tego kodu pod swój wyświetlacz i dodanie możliwości ustawiania cyfry w tysiącach ;)
Ja tu sobie parę rzeczy zmieniłem w tym kodzie, aby zatrybiło pod mój 7seg - wspólna katoda i tranzystory NPN


Autor postu otrzymał pochwałę

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 14:15 
Offline
Użytkownik

Dołączył(a): 18 lut 2014
Posty: 53
Lokalizacja: Kraków
Pomógł: 0

Działa to u Ciebie ?
U mnie wyświetla wszystkie segmenty. Przykładowo ustawiając takie same wszystkie numery wyświetla je prawidłowo, ale ustawiając np 5575, wyświetla segmenty z których składają się te liczby, co prowadzi do tego że wyświetla mi cztery dziewiątki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 14:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

U mnie trybi jak trzeba. :)
Czyli chyba chodzi o multipleksa, a dokładniej o przełączanie wspólnej katody/anody. Jakim stanem załączasz wyświetlacz?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 14:56 
Offline
Użytkownik

Dołączył(a): 18 lut 2014
Posty: 53
Lokalizacja: Kraków
Pomógł: 0

stanem niskim. Korzystam z tego modułu:
http://botland.com.pl/wyswietlacze-lcd/1663-modul-4-x-wyswietlacz-7-segmentowy-wsp-anoda.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 15:00 
Offline
Nowy

Dołączył(a): 23 lut 2014
Posty: 20
Lokalizacja: Szczecinek
Pomógł: 3

Skoro anody są podłączone do pinów PC2-PC5 (jak jest to przypisane w sekcji define), to przerwanie powinno przesuwać
bity portu C od bitu drugiego, czyli zmienna licznik powinna mieć wartość 4, następnie po przesunięciu będzie miała 8,
itd. A przetestuj mój przykład, który napisałem wcześniej.

A jeżeli sterujesz stanem niskim, to zaneguj zmienną licznik przy podstawianiu go pod PORTC:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę


Ostatnio edytowano 2 mar 2014, o 15:11 przez Rychu, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 15:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

Stanem niskim? To musisz negacje zastosować

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 15:11 
Offline
Użytkownik

Dołączył(a): 18 lut 2014
Posty: 53
Lokalizacja: Kraków
Pomógł: 0

Przerobiłem twoj kod pod stan niski LogTeam. W tablicy cyfry[] przed każdym elementem dałem negację



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 15:12 
Offline
Nowy

Dołączył(a): 23 lut 2014
Posty: 20
Lokalizacja: Szczecinek
Pomógł: 3

Gdy edytowałem posta kolega LogTeam mnie wyprzedził.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 15:14 
Offline
Użytkownik

Dołączył(a): 18 lut 2014
Posty: 53
Lokalizacja: Kraków
Pomógł: 0

Ok, wszysto ładnie działa. Dziękuje wam bardzo za pomoc.

------------------------ [ Dodano po: 14 minutach ]

Zawsze chciałem to zobaczyć na zaprogramowanym przez siebie wyświetlaczu. Fascynujące :)
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: 2 mar 2014, o 15:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

To nie koniec :) Zrób teraz że np. wpisujesz do zmiennej liczba=7563 i to Ci się wyświetli na 7seg :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 15:39 
Offline
Użytkownik

Dołączył(a): 18 lut 2014
Posty: 53
Lokalizacja: Kraków
Pomógł: 0

W moim poprzednim temacie pomogłeś mi z klawiaturą matrycową, mam zamiar to połączyć w najbliższym czasie. Wyświetlać mi będzie 4 kolejne wściśnięte cyfry.
Mam nadzieje że nie będe musiał zwracać się o pomoc ponownie :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2014, o 15:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

Prosta sprawa. Ostatnio sobie napisalem sposoob na szyfrowanie na klawiaturze i to sie moze przydac przy wyswietlaniu ktory przycisk wcisniety. Jak cos to pisz PW, czy temat ;)

_________________
sig off ;(



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

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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO