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



Teraz jest 19 cze 2026, o 03:12


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
Autor Wiadomość
PostNapisane: 5 sty 2015, o 21:08 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 28 gru 2014
Posty: 20
Pomógł: 0

Witam brać forumową :)
O ile do tej pory, po mniejszym lub większym rwaniu włochów z głowy, jakoś znajdywałem przyczynę problemu niedziałania moich programów, o tyle ta passa zostaje dzisiaj przerwana. Do momentu dostania do ręki bluebooka posiłkuję się dość nieuporządkowaną wiedzą na temat składni w języku C, i pewnie tam będzie leżeć przyczyna mojego problemu. Jednakże proszę o wskazanie właściwej drogi w dalszym toku nauki.

Projekt zakłada uruchomienie układu PWM sterującego prędkością wentylatora 12V, oraz wyświetlenia jego wartości na wyświetlaczy 7-segmentowym LED(od 0 do 255). Jako mózg w moim urządzeniu pracuje Atmega8 (wszystko chodzi na zestawie uruchomieniowym ZL2AVR PDF). Jako PWM został zaprzęgnięty TC1, w podanym niżej programie został skonfigurowany jako 2 niezależnie 8-bitowe PWM-y. TC0 pracuje jako generator przerwań. Wyświetlacze są podpięte do portu D, a ich anody do portu C.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Problem pojawił się na jednym z pierwszych etapów uruchamiania. PWM ruszył poprawnie - wiatraczek powoli rozpędza się i zwalnia. Jest to zależne od wartości zmiennej "i". Następnie sprawdziłem poprawność działania funkcji wyświetlenia, oraz wyciągania cyfry jedności ze zmiennej. Do tej pory wszystko szło gładko. W momencie, gdy próbowałem wyświetlić cyfrę jedności zmiennej "i", na wyświetlaczu dostaję okrągłego nulla. Jednak gdy zamiast polecenia:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

na wyświetlaczu dostaję cyfrę 4.

Pytanie:
Co robię źle?

Zaznaczam, że nie chcę ryby, tylko wędkę :) W dostępnych publikacjach nie znalazłem niczego, co byłoby dla mnie pomocne, albo po prostu nie wiem czego szukać.

Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2015, o 21:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 448
Lokalizacja: DKL
Pomógł: 53

Przeczytaj dokładnie dział w BB dotyczący multipleksowania wyświetlaczy LED.
Dodam że twoją wartość np 204 musisz podzielić na 3 kawałki 2 0 4 i każdy z nich wyświetlić na innym wyświetlaczu, innej drogi nie ma :)

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2015, o 21:34 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 28 gru 2014
Posty: 20
Pomógł: 0

Z tym, że ja nawet nie doszedłem w pisaniu kodu do multipleksowania :) Udało mi się parę tyg. temu zrobić pełnowymiarowe multipleksowanie, i nie z tym mam problem. Jak opanuję wyświetlanie pierwszej cyfry, będę robił wyświetlanie drugiej (dziesiątek) itd. Na razie nie mogę wyświetlić na jednym wyświetlaczu cyfry jedności ze zmiennej "i".

A w bb przeczytam wszystko dokładnie, jak tylko do mnie dotrze :) Obiecuję :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2015, o 21:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 448
Lokalizacja: DKL
Pomógł: 53

wolek14 napisał(a):
Z tym, że ja nawet nie doszedłem w pisaniu kodu do multipleksowania
No i to jest podstawowy problem. Musisz to nadrobić. Poza tym autor zaleca czytanie książki po kolei tak jak ponumerowano strony, a nie skakanie po działach które nas interesują, bo później są własnie takie fajerwerki.
wolek14 napisał(a):
Na razie nie mogę wyświetlić na jednym wyświetlaczu cyfry jedności ze zmiennej "i".
No to jest ładnie opisane we skazanym dziale. Zobacz jak masz 204 i potrzebujesz z tego 2, to co robisz? Dzielisz przez 100 bez reszty i masz 2, i tak robisz z każdą grupą setki, dziesiątki, jedności.

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2015, o 21:51 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 28 gru 2014
Posty: 20
Pomógł: 0

Kolego matw, mam dziwne wrażenie że właśnie moje posty czytasz wyrywkowo.

1. Nie posiadam bluebooka, więc nie mam fizycznej możliwości przeczytania z niej czegokolwiek. Pisałem to w 1 i 2 poście :)

2. Potrafię zrobić multipleksowanie wyświetlaczy. Wiem na czym polega. W pokazanym tutaj kodzie multipleksowanie nie jest potrzebne, gdyż na razie wykorzystuję jeden wyświetlacz.

3.
matw napisał(a):
Zobacz jak masz 204 i potrzebujesz z tego 2, to co robisz?

Ja potrzebuję z tego 4. I co robię? Wykonuję działanie 'modulo' 10, i otrzymuję w wyniku liczbę 4. To gdzie jest problem? Przeczytaj jeszcze raz pierwszy post.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2015, o 21:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 448
Lokalizacja: DKL
Pomógł: 53

@wolek14, faktycznie źle przeczytałem zdanie dotyczące BB. Ja zrozumiałem że go posiadasz i do tego się odnosiłem, przepraszam za zamieszanie.

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2015, o 21:54 
Offline
Nowy

Dołączył(a): 30 lip 2013
Posty: 21
Lokalizacja: Pszczyna
Pomógł: 3

Spróbuj dodać volatile przy zmiennych używanych zarówno w funkcji main i w przerwaniu (np. w Twoim kodzie zmienna "i").
Jeśli nie wiesz o co z tym chodzi to tutaj masz opisane: http://mirekk36.blogspot.com/2011/08/test.html


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2015, o 22:04 
Offline
Użytkownik

Dołączył(a): 05 gru 2012
Posty: 67
Lokalizacja: Warszawa
Pomógł: 4

Cytuj:
Ja potrzebuję z tego 4. I co robię? Wykonuję działanie 'modulo' 10, i otrzymuję w wyniku liczbę 4.

Z 204 dostaniesz 4 po zrobieniu modulo 10, ale jak będziesz miał 214 to dostaniesz 14. Powinieneś zrobić modulo 100.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2015, o 22:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Spróbuj tak
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: 5 sty 2015, o 22:11 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 28 gru 2014
Posty: 20
Pomógł: 0

mknight9090, dziękuję bardzo, pomogło :)

wojtek1000 jak z dzielenia przez 10 mogę dostać resztę 14?

Zaba, dzięki wielkie, właśnie zacznę walczyć z dalszymi działaniami na liczbie, na pewno się przyda :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2015, o 22:19 
Offline
Użytkownik

Dołączył(a): 05 gru 2012
Posty: 67
Lokalizacja: Warszawa
Pomógł: 4

Cytuj:
wojtek1000 jak z dzielenia przez 10 mogę dostać resztę 14?

Przepraszam, szybciej napisałem niż pomyślałem, jeszcze raz przepraszam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2015, o 22:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Nie za maco.
Teraz masz całą liczbę rozbitą na drobne :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2015, o 22:42 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 28 gru 2014
Posty: 20
Pomógł: 0

Żeby nie było, żem ciapa totalna, wrzucam pełen kod, który działa poprawnie :) Przy okazji starałem się nie wykorzystywać gotowców, tylko wymyśliłem swoje rozwiązanie problemu konwersji na BCD :)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Ewentualne sugestie mile widziane :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2015, o 23:26 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 28 gru 2014
Posty: 20
Pomógł: 0

mokrowski, dziękuję bardzo :) Spróbuję z tym powalczyć na tyle, na ile pozwoli mi dotychczasowa wiedza.



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

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