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



Teraz jest 29 mar 2024, o 15:48


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 44 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 5 mar 2017, o 15:16 
Offline
Użytkownik

Dołączył(a): 05 mar 2017
Posty: 25
Lokalizacja: Skoczów
Pomógł: 0

Witam.

Proszę o wyrozumiałość ponieważ jest to moje pierwsze podejście do procesorów.
Jako że w prezencie dostałem zestaw ATB, a książkę kupię w najbliższym czasie postanowiłem rozpocząć ćwiczenia z poradników pana mirka.
O ile pierwsze ćwiczenia polegające na miganiu pojedynczym ledem i linijką z wykorzystaniem delay'i działały bez problemu o tyle już następne z operacjami na zmiennych wywalają błędy podczas kompilacji.

Bardzo byłbym wdzięczny jeśli ktoś mi jest w stanie odpowiedzieć o co chodzi, ponieważ kod jest taki sam jak w poradniku a mimo to wyskakują błędy. Załączam zrzuty ekranu z eclips'a.

Pozdrawiam i z góry dziękuję za pomoc.

ObrazekObrazek



Ostatnio edytowano 10 maja 2017, o 20:20 przez maxrider, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 mar 2017, o 15:29 
Offline
Użytkownik

Dołączył(a): 12 sty 2015
Posty: 80
Lokalizacja: Grudziądz
Pomógł: 2

Zamiast { } w pętli for użyj ( )

{int a = 0; ... } <- źle
(int a = 0; ... ) <- dobrze



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 mar 2017, o 15:37 
Offline
Użytkownik

Dołączył(a): 05 mar 2017
Posty: 25
Lokalizacja: Skoczów
Pomógł: 0

Śliczne dzięki za pomoc.

Już mi się zaczyna to forum podobać jak widzę tak szybkie odpowiedzi ludzi.

Jeszcze raz wielkie dzięki.

Pozdrawiam:

Andrzej



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 17:56 
Offline
Użytkownik

Dołączył(a): 05 mar 2017
Posty: 25
Lokalizacja: Skoczów
Pomógł: 0

Witam.

Postanowiłem nie zakładać nowego tematu, a dalej w tym temacie opisywać moje problemy z nauką programowania i prośbami o pomoc.
Wymyśliłem sobie ćwiczenie które w zależności od wartości zmiennej załączało by odpowiednio jedną z dwóch diód lub powodowałoby miganie diody w zależności od wartości zmiennej. program powinien działać w 5 krokach tak jak postarałem się opisać w komentarzach i wszystko działa pięknie do momentu gdy wartość i dochodzi do 3 już nie wychodzi z tego kroku. Proszę o wytłumaczenie jak powinienem skonstruować ten program by po ponownym wciśnieciu klawisza program przeszedł do następnego polecenia.

Z góry dziękuję za pomoc i pozdrawiam wszystkich.

Ps. nie chcę dalej przechodzić do ćwiczeń skoro wymyślone przeze mnie ćwiczenia nie wychodzą mi we własnym zakresie.

Kod programu:
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: 3 maja 2017, o 17:59 
Offline
Użytkownik
Avatar użytkownika

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

tak na biegu - brak klamry otwierającej " while (1) {....."



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 18:06 
Offline
Użytkownik

Dołączył(a): 05 mar 2017
Posty: 25
Lokalizacja: Skoczów
Pomógł: 0

Niestety pomimo tej porawki dalej zatrzymuje się w kroku 3 i wykonuje while (i==3) bez końca



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 18:11 
Offline
Użytkownik
Avatar użytkownika

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

w pętli while brak operacji na "i" ciągle będzie=3. dlatego z tej pętli nie wychodzi.

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

tak w skrócie- przecież while(wykonuj dopóty dopóki warunek jest spełniony ). :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 18:19 
Offline
Użytkownik

Dołączył(a): 05 mar 2017
Posty: 25
Lokalizacja: Skoczów
Pomógł: 0

O teraz działa faktycznie.

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


Powtórzyłem linie dotyczącą obsługi klawisza i zadziałało.

Ślicznie dziekuję za pomoc.
Pytanie jeszcze jedno czy można to jakoś uprościć żeby obsługa klawisza była niejako nadrzędna nad pętlą while (i==3) czy musi być odwołanie w pętli np w postaci goto ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 18:25 
Offline
Użytkownik
Avatar użytkownika

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

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

pomyślał bym nad zaprzęgnięciem timera. :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 18:34 
Offline
Użytkownik

Dołączył(a): 05 mar 2017
Posty: 25
Lokalizacja: Skoczów
Pomógł: 0

Pomyślę dzięki wielkie za podpowiedź i szybką reakcję, podkreślę jeszcze raz że super to forum użytkownicy pomocni i szybko reagują.
Nauka idzie pomalutku do przodu także jak tylko będzie możliwość spróbuję zrobić tak jak mówisz.

Jeszcze raz dzięki i pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 22:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 16 mar 2016
Posty: 30
Pomógł: 0

Witam, moim zdaniem za dużo chcesz odrazu do przodu iść i właśnie gubisz takie zagadniania jak klamry i operacje na zmiennych.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2017, o 12:12 
Offline
Użytkownik

Dołączył(a): 05 mar 2017
Posty: 25
Lokalizacja: Skoczów
Pomógł: 0

Może faktycznie za szybko troszkę chcę z tym iść ale chciałbym stworzyć w końcu jakieś fajne użyteczne urządzenie.

Ktoś ma może pomysł na jakieś fajne ćwiczenia albo zestaw ćwiczeń może gdzieś jest prezentowany żeby coś zrobić, bo dziś przeszedłem do ćwiczenia z multipleksowaniem wyświetlacza 7 segmentowego i jakaś lipa jest zamiast poprawnych cyfr mam krzaki. Przy zdefiniowanych cyfrach wg BB wyświetla jakieś babole.

Załączę kody może ktoś wpadnie na pomysł gdzie robię źle. Nie dodawałem komentarzy bo ćwiczenie całe przepisane z BB



Ostatnio edytowano 9 maja 2017, o 20:10 przez maxrider, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2017, o 12:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 16 mar 2016
Posty: 30
Pomógł: 0

Hej A gdzie masz funkcję główną programu z pętlą główną ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2017, o 12:30 
Offline
Użytkownik

Dołączył(a): 05 mar 2017
Posty: 25
Lokalizacja: Skoczów
Pomógł: 0

O przepraszam wkleiłem dwa razy bez funkcji main.



Ostatnio edytowano 9 maja 2017, o 20:11 przez maxrider, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2017, o 12:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 16 mar 2016
Posty: 30
Pomógł: 0

Hmm wsad wygląda raczej dobrze, wydaję mi się że sprzętowo coś źle podłączyłeś, pozatym lepszym rozwiązaniem jest utworzenie tablicy w pamięci Flesh jeżeli chodzi o wyświetlanie jakiś liczb na wyświetlaczu, oszczędzasz pamieć ram w ten sposób, będzie prosciej i szybciej ;)

Ustawienie cyfr masz zapisane w hex i tylko wyciągasz z tablicy i wrzucasz na wyjścia, polecał bym takie rozwiązanie:

Tablica w pamięci flesh z liczbami od 0 - 9

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


A wywołujesz tak:

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


Gdzie & jest operatorem pobrania adresu a w nawiasie masz którego elementu ;) polecam masz to lepiej opisane w BB kilka stron dalej

Sprawdz jeszcze raz połączenia do wyświetlacza jak i na tranzystorach ;)



Ostatnio edytowano 6 maja 2017, o 15:00 przez OskarQ1, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2017, o 13:12 
Offline
Użytkownik

Dołączył(a): 05 mar 2017
Posty: 25
Lokalizacja: Skoczów
Pomógł: 0

Dzięki za pomoc faktycznie powodem była pomyłka sprzętowa odwrotnie podłączone wyprowadzenia portów z wyświetlacza.

Jeszcze raz dziękuję



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2017, o 13:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 16 mar 2016
Posty: 30
Pomógł: 0

Spoko, miłej zabawy dalej ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2017, o 16:06 
Offline
Użytkownik
Avatar użytkownika

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

Witam
maxrider napisał(a):
Załączę kody może ktoś wpadnie na pomysł gdzie robię źle. Nie dodawałem komentarzy bo ćwiczenie całe przepisane z BB

Z oczywistych względów nie wklejamy kodów z BB - jeśli nic nie jest w nich zmieniane to tylko informujemy skąd wsad.
Jeśli coś jest zmieniane, to przedstawiamy tą zmianę. Jeśli już Ci działa to usuń te kody - możesz zostawić po dwie/trzy linijki, ale resztę wykasuj.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2017, o 20:12 
Offline
Użytkownik

Dołączył(a): 05 mar 2017
Posty: 25
Lokalizacja: Skoczów
Pomógł: 0

Poprawiłem zgodnie z uwagą kolegi @kicajek.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2017, o 16:21 
Offline
Użytkownik

Dołączył(a): 05 mar 2017
Posty: 25
Lokalizacja: Skoczów
Pomógł: 0

Witam ponownie.
Męczę się od dwóch dni nad tym by z wykorzystaniem w/w ćwiczenia z wyświetlaczem 7 segmentowym stworzyć prosty minutnik.
Natomiast gdzieś w przeliczaniu liczb na minuty i sekundy popełniam błąd który powoduje że gdy wartość odpowiadająca za minuty (jedności) cy3 przekroczy 10 zaczynają mi się pojawiać dziwne znaki związane z błędem na cy2 odpowiedzialnej za sekundy (dziesiętne).

Może ktoś byłby tak miły i mnie oświecił gdzie jest błąd w obliczeniach bo już drugi dzień główkowania nad tym nie daje efektu.

Fragment kodu z 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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2017, o 16:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1146
Lokalizacja: Kraków
Pomógł: 93

Składnia: [ Pobierz ] [ Ukryj ]
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Ale tu przecież zawsze wstawi 0. To na pewno ma tak być?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2017, o 17:01 
Offline
Użytkownik

Dołączył(a): 05 mar 2017
Posty: 25
Lokalizacja: Skoczów
Pomógł: 0

W tym miejscu raczej jest ok, ponieważ minuty zlicza do końca poprawnie, wykrzacza się tylko wyświetlacz cy3 sekundy gdy wartość licznika jest większa od 599. Coś jest nie tak z obliczaniem zmiennej odpowiadającej za ten wyświetlacz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2017, o 17:44 
Offline
Użytkownik
Avatar użytkownika

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

witam,
trochę pokrętnie napisane wg mnie. :roll:
np. w linijce 17. wychodzi że "z2=min-(z1*10);" ---> (z2=min - min) ? bo przecież z1*10 to ?-> lin.15.. ( z1=min/10; ) z2 zawsze =0.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2017, o 17:55 
Offline
Użytkownik

Dołączył(a): 05 mar 2017
Posty: 25
Lokalizacja: Skoczów
Pomógł: 0

Ok teraz już chyba się coś zaczyna mi klarować w głowie. Dzięki za podpowiedź, będę działał jutro z tym, bo dziś mam troszkę nawał innej pracy. Dam znać co z tego wyszło.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2017, o 18:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Prosze zadawać pytania dotyczące różnych problemów w osobnych tematach ..

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2017, o 18:42 
Offline
Użytkownik

Dołączył(a): 05 mar 2017
Posty: 25
Lokalizacja: Skoczów
Pomógł: 0

Dokończę tylko wątek dotyczący tego minutnika i już każdy problem będzie osobno pisany.

Mianowicie panowie jeszcze raz gorąca prośba bo siadłem do tego ponownie i za nic nie mogę wymyślić jak rozbić ten minutnik na poszczególne cyfry. mógłby ktoś wrzucić przykład jak to powinno być zrobione pewnie macie z jakichś projektów zegarów minutników przykłady takiego kodu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2017, o 19:27 
Offline
Użytkownik
Avatar użytkownika

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

może podążając tropem Twojego sposobu.(1 godzina)
licznik zlicza do 3599. bo 3600 to zero. tak ?

1. oblicz dziesiątki minut (już to napisałeś)
2. policz pozostałe jednostki minut w liczniku (po odjęciu dziesiątek minut)
4. policz pozostałe dziesiątki sekund w liczniku (po odjęciu jeszcze jednostek minut )
5. odejmij od tego te dziesiątki sekund. to będą sekundy. :)

Lub pobaw się" modulo" %. reszta z dzielenia. :)
pozdrawiam.

------------------------ [ Dodano po: 12 minutach ]

tak zerknąłem na tytuł wątku, nic nie sugeruje.:?
może edytuj tytuł i dopisz w nim (mruganie diodą),(cyfry minutnika).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2017, o 20:20 
Offline
Użytkownik

Dołączył(a): 05 mar 2017
Posty: 25
Lokalizacja: Skoczów
Pomógł: 0

Jak tylko rozpracuję tą koncepcję to zamknę ten temat zgodnie z sugestią @SunRiver, pisałem w tym samym wątku ponieważ nie chciałem takimi błahymi sprawami zaśmiecać forum.

O modulo i reszcie z dzielenia myślałem już dawno bo wydaje się to prostsze rozwiązanie, ale muszę jeszcze się zmierzyć z tymi operacjami na liczbach żeby nie iść na łatwiznę od razu.

------------------------ [ Dodano po: 55 minutach ]

Panowie sukces.

Nie dałem za wygraną pomyślałem trochę dzięki naprowadzeniu kolegi @daro69 powstał taki oto zestaw operacji który działa w 100%.


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


Dziękuję za pomoc.

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 maja 2017, o 18:44 
Offline
Użytkownik

Dołączył(a): 05 mar 2017
Posty: 25
Lokalizacja: Skoczów
Pomógł: 0

Witam. Pytanie mam jeszcze jedno odnośnie tego ćwiczenia.
Czy jestem w stanie jednocześnie odmierzać czas na tych wyświetlaczach oraz jednocześnie migać kropką sygnalizującą pojedyncze sekundy? Czyli kropka miga w takt odliczania sekund.
Ewentualnie z jakiej funkcji skorzystać by to zrobić z Timera czy w tym samym przerwaniu mogę to zrobić zmieniając częstotliwość odświeżania ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 maja 2017, o 19:49 
Offline
Użytkownik
Avatar użytkownika

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

jeżeli oczekujesz by kropka mrygała co sekundę, to musi zmieniać stan co 0,5 sek.
wtedy np. można co drugie tyknięcie :
raz wyświetlasz cyfrę a potem cyfrę z kropką. cy_x=( (z_x) | (z_kropka) )
Przyjrzyj się jak są zdefiniowane kształty wyświetlanych znaków.
pozdrawiam



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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