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



Teraz jest 19 kwi 2024, o 23:24


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 93 ]  Przejdź na stronę 1, 2, 3, 4  Następna strona
Autor Wiadomość
 Tytuł: Zegar cyfrowy
PostNapisane: 4 wrz 2016, o 13:07 
Offline
Użytkownik

Dołączył(a): 26 sie 2016
Posty: 38
Pomógł: 0

Witam !
Przerabiając BB skończyłem rozdział o wyświetlaczach 7 segmentowych i postanowiłem zbudować zegar.
Chcę żeby układ działał w ten sposób, że najpierw gdy ustawia się godzinę, aktywowane są 2 pierwsze segmenty (z sześciu), które co 300 ms pokazują 0 a potem gasną. gdy wciśnie się pierwszy klawisz wartość wskazująca godzinę rośnie. Po wciśnięciu drugiego klawisza gasną 2 pierwsze segmenty i zapalają się kolejne (minuty) i tak dalej ;). Po ustawieniu sekund zegar działa już automatycznie.
Jak to zwykle bywa układ nie działa ;). Po podłączeniu zasilania wyświetlacze są cały czas wygaszone.
Podłączenia są takie same jak w BB, używam wyświetlaczy ze wspólną anodą i tranzystorów PNP, więc wszystko jest sterowane 0.
Wklejam cały kod + plik nagłówkowy :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


Będę wdzięczny za każdą pomoc.



Ostatnio edytowano 4 wrz 2016, o 14:01 przez Koziol96, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 13:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Czy ja dobrze widzę na moim ekraniku?
Masz kilka pętli while(1) ?
Program wchodząc do pierwszej nigdy z niej nie wyjdzie.!!!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 13:37 
Offline
Użytkownik

Dołączył(a): 26 sie 2016
Posty: 38
Pomógł: 0

Dzięki za odpowiedź.
Tak mam kilka pętli while ale stosuję komendę break więc o ile się nie mylę, to program powinien wyjść z takiej pętli. Poza tym program nie wchodzi nawet w pierwszą pętle (albo wchodzi i nie robi tego co trzeba), ponieważ żaden wyświetlacz się nie zapala



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 13:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Wstaw listing kodu za pomocą SYNTAX C, proszę, OK? ;)
http://forum.atnel.pl/topic7402.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 14:04 
Offline
Użytkownik
Avatar użytkownika

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

Koziol96 napisał(a):
Wklejam cały kod + plik nagłówkowy :
Składnia: [ Pobierz ] [ Ukryj ]
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Będę wdzięczny za każdą pomoc.


Kolego z tego co widze to kod masz chyba z interetów dodatkowo nie wiesz co on dokladnie robi a podlaczasz wyswietlacze jak w BB.

Skoro masz BB postaraj sie kod napisac od 0 wtedy zrozumiesz co jak i z czym się je.

Wysłane z mojego LIVE przy użyciu Tapatalka

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 14:07 
Offline
Użytkownik

Dołączył(a): 26 sie 2016
Posty: 38
Pomógł: 0

Aaaaa to tak się robi kolorki w kodzie ;) dzięki teraz już wiem



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 14:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

:)
Koziol96 napisał(a):
Wklejam cały kod

jak podchodzić do takich wpisów?
Koziol96 napisał(a):
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: 4 wrz 2016, o 14:13 
Offline
Użytkownik

Dołączył(a): 26 sie 2016
Posty: 38
Pomógł: 0

Majster kod pisałem od 0 z internetu mam tylko plik nagłówkowy, ponieważ dla mnie jest on łatwiejszy do zrozumienia niż ten opisany w BB. Wiem jak on działą ponieważ używałem go w programach, które sam pisałem i działały (prosty licznik do 99, oraz zegar zliczający od północy) problemem jest początek kodu, czyli ustawienie godziny a bynajmniej tak mi się wydaje. Nie jestem też do końca pewny czy dobrze ustawiłem timer, bo to mój pierwszy raz gdy sam wyszukiwałem informacji w nocie katalogowej

------------------------ [ Dodano po: 3 minutach ]

Daro69 napisał(a):
:)

jak podchodzić do takich wpisów?


#define KEY1_PIN (1<<PB1) //port B micro-switche
#define KEY2_PIN (1<<PB2)

Nie rozumiem coś ucięło ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 14:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

tak zerknąłem i myślę..
gdzie "wysw" w przerwaniu powraca do wartości 0 ?
nie mogę znaleźć. :(
może w case 5 - wpisz wysw = 0; zamiast ++.?


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 14:36 
Offline
Użytkownik

Dołączył(a): 18 kwi 2013
Posty: 181
Lokalizacja: Kraków
Pomógł: 30

Przy ustawianiu godzin ta linijka wyłącza tranzystory sterujące anodami wyświetlaczy:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Podobnie robisz przy ustawianiu minut.
Ale powinieneś obejrzeć ostatni poradnik Mirka o działaniu kompilatora i sposobie podziału projektu na pliki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 15:01 
Offline
Użytkownik

Dołączył(a): 26 sie 2016
Posty: 38
Pomógł: 0

Dzięki za konkrety ;).
Daro masz rację wysw zeruje się w case 3. dlatego że z początku testowałem prosty zegar na 4 wyświetlaczach.
Janusz17 zaraz zmienię 0 na 1 ale wydaje mi się że jest w porządku tranzystory PNP jest kolektorem podłączony do wspólnej anody wyświetlacza, emiterem do + , a bazą przez rezystor do ANODY_PORT , więc sygnał 0 na wyjściu procesora załącza wyświetlacz (chyba że się mylę)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 15:05 
Offline
Użytkownik
Avatar użytkownika

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

A ja poproszę o schemat twoich połączeń.

Wysłane z mojego LIVE przy użyciu Tapatalka

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 15:32 
Offline
Użytkownik

Dołączył(a): 26 sie 2016
Posty: 38
Pomógł: 0

Nakreśliłem na szybko, bardziej profesjonalnego nie posiadam, dodatkowo wklejam schemat z BB (to chyba nie problem ?)

Obrazek

Literki od A do G to oczywiście katody wyświetlaczy, kolektory załączają wspólne anody.



Ostatnio edytowano 4 wrz 2016, o 15:46 przez Koziol96, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 15:41 
Offline
Użytkownik
Avatar użytkownika

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

Schemat w BB to nie problem bo BB mam ale kopiowanie książki i udostępnianie jej treści to przestępstwo więc lepiej usuń te zdjęcie jak najszybciej.
Natomiast twój to taka laurka z której nic nie idzie wyczytać.

Polecam zacząć od tego:


Ten kto ma BB może sam zerknąć na ten schemat.

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 15:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Akurat z tym schematem także nie powinno być problemu. Bo on jest fragmentem schematu ATB, dostępnym publicznie.
Ale takie nawyki wklejania zdjęć z BB powinno się tępić :twisted:

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 15:52 
Offline
Użytkownik

Dołączył(a): 26 sie 2016
Posty: 38
Pomógł: 0

Kurs EAGLA już miałem w planach ale nie wszystko na raz ;).
Najbardziej zależy mi na pomocy odnośnie programu, jeśli mam błąd w schemacie ta sam raczej dam sobie rade.
Czy jeśli w ogóle poruszamy temat połączeń to znaczy że program jest w porządku ? (przy założeniu że wszystkie piny są sterowane 0 )

Oczywiście zdjęcie z BB już usunięte



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 15:54 
Offline
Użytkownik
Avatar użytkownika

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

Kolego błędów może być wiele schemat, kod, połączenia, itd .. dlatego pytam się o porządny faktyczny schemat twojego połączenia abym mógł go porównać z programem. Sam program również zawiera błędy o których koledzy już wcześniej wspomnieli nie mniej nie da się pomóc bez schematu twojego bo baboli może być pełno i wszędzie.

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 16:07 
Offline
Użytkownik

Dołączył(a): 18 kwi 2013
Posty: 181
Lokalizacja: Kraków
Pomógł: 30

Cytuj:
Janusz17 zaraz zmienię 0 na 1 ale wydaje mi się że jest w porządku tranzystory PNP jest kolektorem podłączony do wspólnej anody wyświetlacza, emiterem do + , a bazą przez rezystor do ANODY_PORT , więc sygnał 0 na wyjściu procesora załącza wyświetlacz (chyba że się mylę)

Oczywiście się nie mylisz, ale TY właśnie w swoim kodzie wpisujesz do portu jedynki, czyli wyłączasz anody. Zresztą wpisanie zer na obydwu pozycjach wyświetlacza nic nie da, bo tu przecież musi być zrobione multipleksowanie.
Acha teraz dopiero zwróciłem uwagę - co to ma być za zapis (0 << PC4) !!! Czy TY aby na pewno wziąłeś to z BB?
Zerowanie pinu np. PC4 robi się tak
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łę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 16:30 
Offline
Użytkownik

Dołączył(a): 26 sie 2016
Posty: 38
Pomógł: 0

Dzięki wielkie, rozumiem dlaczego twój zapis działa, ale nie rozumiem dlaczego mój nie ;). mniejsza o to zaczynam poprawki



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 16:43 
Offline
Użytkownik
Avatar użytkownika

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

Mirek ostatnio taki zapis (0<<PC4) powtarza jak mantrę i tłumaczy dlaczego taki zapis nie zadziała.

Przecież w ten sposób nie zerujesz bitu. Taki zapis to przesunięcia bitowe a ty chcesz przesuwać bit o 0 :( najprościej tłumacząc.

W Książce Niebieskiej na stronie 97 - Operatory bitowe

proszę zaglądnij tam i przeczytaj Mirek tam pięknie rozpisuje różne operacje bitowe.

Zdaje mnie się kolego Koziol96, że przeskoczyłeś od razu do zadań nie czytając pierwszej części książki. Tak się nie da i teraz sam piszesz, że nie rozumiesz dlaczego twój zapis nie działa. A przeczytałbyś 1 część książki i byś wiedział :)

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 16:45 
Offline
Użytkownik

Dołączył(a): 26 sie 2016
Posty: 38
Pomógł: 0

Janusz17 miałeś rację tu leżał problem !!! :mrgreen: ;). Program jeszcze nie działa tak jak powinien ale jest progres, program za każdym wciśnięciem dodaje 11 a nie 1, ale z tym się raczej uporam.
Po wprowadzeniu godziny zegar gaśnie. Czy mógłby ktoś zerknąć czy timer jest dobrze ustawiony ?

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


Używam ATmega8, wyszukiwałem informacji o rejestrach timera, ale nie jestem pewny czy wpisałem to co trzeba.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 16:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

w TCCR1A nie ma bitu WGM12, jest w TCCR1B,

------------------------ [ Dodano po: 1 minucie ]

niechcący ustawiasz bit FOC1A w rejestrze TCCR1A
...................................
w TCCR1A jest WGM10, WGM11 no i COM1A1-A0_B1_B0 itd.



Ostatnio edytowano 4 wrz 2016, o 16:54 przez Daro69, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 16:52 
Offline
Użytkownik

Dołączył(a): 26 sie 2016
Posty: 38
Pomógł: 0

Majster 1 część książki czytałem, ale nauka języka trochę trwa i pewne rzeczy się zapomina ;), prawie za każdym razem jak piszę jakiś kod to wracam się do części teoretycznej i przypominam jak stosować konkretne operacje, instrukcje itd.

Podany przez ciebie rozdział czytałem chwilę temu po poście Janusza ale nie znalazłem informacji takiej ,że zapis (0<<PC4) nie działa, być może (na pewno ) coś źle zrozumiałem :mrgreen: no ale teraz już wiem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 16:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

kurcze jaki masz procek?
Bo CSy też są w TCCR1B.
chyba że mam źle tłumaczoną notę. :roll: ATmega32

------------------------ [ Dodano po: 2 minutach ]

w A...328 też tak jest.:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 17:00 
Offline
Użytkownik

Dołączył(a): 18 kwi 2013
Posty: 181
Lokalizacja: Kraków
Pomógł: 30

Cytuj:
program za każdym wciśnięciem dodaje 11 a nie 1, ale z tym się raczej uporam.

Myślę, że nie dodaje 11 tylko na obydwu wyświetlaczach wyświetlasz tą samą cyfrę. Włączasz dwie anody naraz. Nie masz zrobionego multipleksowania przy ustawianiu godzin i minut.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 17:01 
Offline
Użytkownik

Dołączył(a): 26 sie 2016
Posty: 38
Pomógł: 0

Używam ATmega8 pisałem już wcześniej ;). właśnie przeglądam note , rozumiem że skoro używam przerwania A to rejestrów z literką B nie tykać ?

Janusz chyba tak w końcu aktywuje 2 wyświetlacze na raz. Ale z tym powinienem sobie poradzić samemu, bardziej boje się timera ;)

Przy okazji jest na blogu pana Mirka jakiś filmik który tłumaczy jak to jest z tymi timerami ? dlaczego A i B (2 w jednym ?).
Myślałem o tym pt. przerwania dla początkujących co wy na to ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 17:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Znalazłem na Twojej fotce że ATmega8 - tu też jest w rejestrach TCCR1B.:)

------------------------ [ Dodano po: 2 minutach ]

Koziol96 napisał(a):
rozumiem że skoro używam przerwania A to rejestrów z literką B nie tykać ?

TO NIE TA ZALEŻNOŚĆ. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 17:07 
Offline
Użytkownik

Dołączył(a): 26 sie 2016
Posty: 38
Pomógł: 0

czyli muszę zapisać to tak ?

TCCR1B |= (1 << WGM12);

jeśli przerwanie używa kanału A ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 17:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Tak, CSy też.
zobacz w nocie. Nie ma ich w rejestrze TCCR1A.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2016, o 17:12 
Offline
Użytkownik

Dołączył(a): 26 sie 2016
Posty: 38
Pomógł: 0

a więc ostatecznie :

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: 93 ]  Przejdź na stronę 1, 2, 3, 4  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 7 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