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



Teraz jest 11 kwi 2026, o 13:10


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 7 lip 2013, o 21:33 
Offline
Nowy

Dołączył(a): 07 lip 2013
Posty: 13
Pomógł: 0

Witam.
Mam problem z problem z mutlipleksowaniem. Pracuje na Atmedze8 i próbuje wyświetlić cyfry na wyświetlaczu siedmiosegmentowym wykorzystując timer1 w trybie CTC. Po wgraniu programu na mikrokontroler nie wyświetlają się żadne cyfry. Obsługa przerwań jest raczej skonfigurowana poprawnie gdyż napisałem kod sprawdzający czy procedura działa i wszystko działało zgodnie z oczekiwaniami. Nie mam już pojęcia do może być nie tak. Poniższy kod jest zmodyfikowanym kodem z książki Pana Kardasia.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Kody wklejamy przy pomocy syntax=c - Zielony J.



Ostatnio edytowano 7 lip 2013, o 21:48 przez adamstepniak41, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lip 2013, o 21:40 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 15 paź 2012
Posty: 18
Pomógł: 1

Coś kod Ci się źle wkleił :P

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lip 2013, o 21:56 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27452
Lokalizacja: Szczecin
Pomógł: 1045

Masz w książce przykładowy i na pewno dobrze działający kod i zamiast z niego skorzystać, a potem ew modyfikować to próbujesz stworzyć - no że tak powiem koło od nowa ....

błędów co nie miara nie wspominając że nie wiem co chciałeś w ogóle uzyskać

przecież ten kod w ogóle nie powinien się kompilować - np zmienna licznik, już pal pies do czego ona jest ;) ale jak ty chcesz widzieć zmienną lokalną licznik z przerwania w pętli głównej programu ?

mam propozycję - odpal kod z książki najpierw i zobacz jak to działa - na dwóch wyświetlaczach to tylko odjęcie kilku linijek kodu z niego

------------------------ [ Dodano po: 5 minutach ]

poza tym - stawiasz na głowie to multipleksowanie bo w przerwaniu ustawiasz jakąś zmienną a a potem w pętli głównej wpisujesz ją na PORTD ? no na prawdę - co ty chciałeś przez to uzyskać ? - zachodzę w głowę i nie mogę wymyślić :(

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lip 2013, o 22:13 
Offline
Nowy

Dołączył(a): 07 lip 2013
Posty: 13
Pomógł: 0

Kod z książki mi nie działa. Sprawdzałem już dziesiątki razy. Pracuje na atmedze8 i w kodzie wprowadziłem tylko kilka zmian z tym związanych. Poniżej wklejam listeningi kodów:
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.

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

d_led.h:
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: 7 lip 2013, o 22:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 208
Lokalizacja: Kraków
Pomógł: 16

Dobrze ustawiłeś rejestry od timera?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lip 2013, o 22:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 24 mar 2012
Posty: 72
Pomógł: 5

Cześć. Odpaliłem ten kod na ATB, po drobnej modyfikacji bo musiałem rejestry i Porty sobie pozmieniać na Atmege32. ale on w takiej postaci działa:

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



Ale takie rozwiązanie nie jest najlepsiejsze :P



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lip 2013, o 23:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

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


Nota katalogowa ;) TCCR1B
.. oraz wywalić z linii 29 "PORTC=~licznik; " i już "coś" świeci :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lip 2013, o 19:35 
Offline
Nowy

Dołączył(a): 07 lip 2013
Posty: 13
Pomógł: 0

Problem rozwiązany. Miałem źle ustawione bity konfiguracyjne timera. Mam teraz kolejny dylemat. Dopisałem do funkcji głównej programu pętle while z opóźnieniem w celu możliwości zaobserwowania zwiększania szybkości multipleksowania. Wartość początkowa rejestru ORC1A została ustawiona na 150. Pętla ma za zadanie zmniejszyć jej wartość do 4. Jeśli ustawie wartość opóźnienia na 150ms to ustalenie wartości powinno nastąpić po 150msx146petli=21s, jednak następuje po ok 30s. Poza tym na oko wszystko wygląda ok. Jeśli jednak ustawie opóźnienie na mniejszą wartość to nie tylko czas ustalenia się nie zgadza ale również wyświetlacz po wystartowaniu zawiesza się na jakieś liczbie i po jakimś czasie zaświecają się wszystkie liczby. Co może być przyczyną takiego stanu rzeczy? Oto zmieniony kod programu: (poza nim zmieniona wartość inicjujaca rejestru ORC1A w funkcji inicjującej)
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: 8 ] 

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