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



Teraz jest 9 wrz 2025, o 15:02


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
Autor Wiadomość
PostNapisane: 1 kwi 2012, o 13:04 
Offline
Nowy

Dołączył(a): 26 lut 2012
Posty: 7
Pomógł: 0

Witam załogę!
Przy ćw z wyświetlaczem 7-segmentowym LED przy analizie kodu źródłowego znajdującego się w main.c natrafiłem na problem. Nie rozumiem tej części kodu, w jaki sposób to działa. :oops: Poniżej zamieszczam dany fragment:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Może ktoś podpowie jak to rozszyfrować. Mam jeszcze jedną prośbę: chodzi mi o książkę do nauki języka C zawierającą przykłady wraz z opisem podobnych problemów/zagadnień. Myślę, że dla wielu osób raczkujących w C byłaby to nieoceniona pomoc. Wiem, że w sieci jest tego bardzo dużo, ale wolałbym skorzystać z porad bardziej doświadczonych kolegów i zaoszczędzić czas na poszukiwaniu najlepszych pozycji. Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 kwi 2012, o 13:10 
Offline
Użytkownik

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

Myślę że w Mirka książce znajdziesz dogłębne wyjaśnienie jak to działa :)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 kwi 2012, o 14:33 
Offline
Nowy

Dołączył(a): 26 lut 2012
Posty: 7
Pomógł: 0

SunRiver dzięki za odpowiedź, jak dotąd doszedłem do rozdziału 5.4 z multipleksowaniem wyświetlacza LED oczywiście mowa o książce Pana Mirosława Kardasia. Przykład podany w książce nie zawiera takiego kodu źródłowego jak ten zamieszczony przeze mnie. Kod wziąłem z płyty dołączonej do książki, program testowałem na swoim zestawie i działa on w ten sposób, że wyświetla odliczanie od 6000ms do zera. Sugerujesz, że w dalszej części książki jest wyjaśnienie jak to działa?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 kwi 2012, o 15:05 
Offline
Użytkownik

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

przeanalizuj dokładnie multiplexowanie właśnie tam znajdziesz odpowiedź :)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 kwi 2012, o 15:14 
Offline
Moderator
Avatar użytkownika

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

PJR --> Nie ma w dalszej części książki wyjaśnienia jak działa ten fragment kodu bo jest niestety zbyt oczywisty ale najpierw trzeba dobrze zrozumieć jak działa ta opisana przeze mnie idea multipleksowania a zrozumiałeś w ogóle jak działa i jaka jest idea korzystania z tych bibliotek do obsługi multipleksowania ? Bo coś mi się wydaje że ani trochę ..... tymczasem zadajesz pytanie o jakiś fragment przykładowego kodu płyty DVD. A zapytam jeszcze - uruchamiałeś go ? widziałeś co on robi ? czy wszystko teoretycznie rozpatrujesz bez najmniejszych ćwiczeń praktycznych....

przyznam szczerze, że jest to trochę przykre pytanie gdy po przejściu całej pierwszej połowy książki dotyczącej teorii ty pytasz się czy mogę np polecić ci jakąś lekturę w której to czy tamto będzie wyjaśniane....

Przepraszam bardzo ale przy takim podejściu do czytania i ćwiczeń to sorki ale możesz mieć wciąż problemy.

Ale na spokojnie jeszcze raz przypomnę ci podstawową ideę tej mojej małej niby biblioteki do multipleksowania przedstawionej w książce.

1. ty jako programista dostajesz do ręki cztery zmienne cy1, cy2, cy3 oraz cy4
2. każda z nich odpowiada jednej cyfrze na wyświetlaczu 7-segm
3. wpisanie wartości do dowolnej zmiennej powoduje że jej reprezentacja pojawia się na wyświetlaczu od razu

zatem jeśli chcemy zorganizować sobie np aby jakiś licznik kręcił się na wyświetlaczu i żeby latał po wszystkich 4 cyfrach to co ???? no musi to być jakaś liczba od 0 do 9999 tak?

a jak rozbić taką liczbę na 4 pojedyncze znaki(cyfry)

no właśnie ten kod do tego służy!

najpierw trzeba sprawdzić jaka jest pierwsza cyfra czyli tysiące tak?

d1=licznik/1000;

no to LU! dzielimy zmienną d1 przez 100 i już mamy w niej pierwszą cyfrę

i teraz chcemy sobie np sprawdzić czy to jest zero - bo zakładamy sobie że jeśli zero to ma się nic nie wyświetlić albo inaczej kod pustego znaku

if(d1) cy1=d1; else cy1=NIC;

i już mamy załatwioną pierwszą zmienną cy1 czyli pierwszą cyfrę. No to teraz druga cyfra z całej liczby to będą setki tak?

no to co ???? teraz liczbę, która pozostała dzielimy przez 100 chyba no nie ?

d2=(licznik-(d1*1000))/100;

i tak analogicznie dalej robimy - sprawdzamy czy jest zero nieznaczące i mamy za chwilę cy2 .... potem sprawdzamy dziesiątki a na końcu jedności

SORKI ..... ale ten sposób robienia licznika jest totalnie MEGA nieoptymalny - można to zrobić 100x prościej i krótszym kodem ale wtedy byłby on rzeczywiście niezrozumiały a TUTAJ ????? specjalnie tak rozpisałem krok po kroku działania żeby każdy zobaczył te obliczenia na poziomie pierwszej klasy szkoły podstawowej - bo to każdy zrozumie....

Gorzej - gdy ktoś próbuje to zrozumieć a w ogóle sam nie próbował sobie jakoś praktycznie tego włączyć, samemu coś wpisać do cy1, cy2, cy3 czy cy4 i popróbować jak to działa jak się zmienia itp ..... tylko pyta o książkę w której to byłoby wyjaśnione......

Kurczę i tak mi się obrywa na niektórych forach, że ludzie piszą iż ja w książce tłumaczę pewne tak oczywiste rzeczy jak "krowie na rowie" - tak o mnie piszą ...... ale ja uważam, ze warto (np opis jak dobierać i obliczać czasy timerów w przykładzie o multipleksowaniu) .....

ale jak mówię - czuję że strasznie dużo materiału przeleciałeś albo bez czytania albo bez próby zrozumienia .....

jeśli się mylę to napisz mi o tym - każdą krytykę przyjmę - bo moim celem jest pisać jak najbardziej zrozumiale......

Nie zawsze mi się to uda oczywiście i nie do każdego dotrę - zdaję sobie z tego sprawę ..... no ale tego że w mojej książce nie ma tłumaczenia wszystkiego od podstaw to nikt mi nie zarzuci niestety.

_________________
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: 1 kwi 2012, o 16:10 
Offline
Nowy

Dołączył(a): 26 lut 2012
Posty: 7
Pomógł: 0

Mirku, bardzo dziękuję Ci za rozpisanie tego przykładowego kodu z płyty dvd który tu wrzuciłem. Przyznam, że teraz mi się co nieco rozjaśniło. Co do Twojej książki to bardzo mi się podoba, zrozumiałem z niej i nauczyłem się już naprawdę dużo. Wcześniej nie miałem nic wspólnego z programowaniem więc zaczynam od zera. Przez cały czas wracam do poprzednich rozdziałów w celu utrwalenia sobie podstawowych informacji, także operacje bitowe, logiczne, zmienne oraz podstawowe funkcje nie są mi już obce ;) Wbrew pozorom z matematyką u mnie nie jest też aż tak źle np pochodne, całki, liczby zespolone nie są dla mnie czarną magią. Wykonałem szereg ćwiczeń na zestawie uruchomieniowym z użyciem różnych funkcji z diodami led i przyciskami microswitch właśnie w celu żeby to wszystko dobrze zrozumieć i udało mi się.

Moim powyższym postem nie miałem zamiaru krytykować Twojej książki, nie da się ukryć, że się trochę uniosłeś. Nie należę do konkurencji i nikogo nie chcę zniechęcić do tej pozycji wręcz przeciwnie uważam, że jest świetna. Do tego jeszcze zestaw uruchomieniowy który pozwala ćwiczyć ćwiczyć i jeszcze raz ćwiczyć. Oczywiście, że odpalałem ten program na moim zestawie w celu zobaczenia jak on działa. Dzięki zajęciom praktycznym człowiek przecież najlepiej się uczy prawda.

Multipleksowanie jest trzecim ćwiczeniem praktycznym, także jestem świadom tego, że dopiero zaczynam pracę na ''żywym'' kodzie. Nie widzę nic dziwnego w tym, że czegoś nie rozumiem. W bardzo przystępny sposób znalazłem tam informacje jak stworzyć tablicę zawierającą instrukcję wyświetlania cyfr poprzez zapalanie odpowiednich segmentów wyświetlacza. Rozumiem na czym polega multipleksowanie czyli kolejne przełączanie 4 wyświetlaczy. Wiem również jak ustawić timer, oraz preskaler oraz jak napisać procedurę przerwań. Temat maskowania też jest bardzo fajnie rozpisany nie miałem problemów ze zrozumieniem jak to działa.

Sam nie raz w książce napominasz o tym, że nie jesteś w stanie zawrzeć w niej wszystkiego. Pewnie dużo ludzi się zniechęca bo np nie potrafią przebrnąć przez system binarny, czy heksadecymalny. Masz do mnie pretensję, że chciałbym zobaczyć więcej przykładów co do samego języka C, co w tym złego?? Przeanalizowałbym kilka przykładów co z pewnością by zaprocentowało. Nie należę do ludzi co z byle powodu piszą posty na forum w celu nabicia sobie ich jak najwięcej.

Forum jeszcze jest na tyle młode, że nie znalazłem na nim jakiś wskazówek na dręczący mnie problem stąd mój post, którego poniekąd teraz żałuję, bo wyszedłem na jakiegoś przygłupa który nie czyta ze zrozumieniem i się bezpodstawnie czepia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 kwi 2012, o 16:25 
Offline
Użytkownik

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

Nie przesadzaj kolego , nie od razu kraków zbudowali :)
ale temu też często odwołujemy się w odpowiedziach do książki
bo oczywiste rzeczy w niej zawarte pozwalają na zrozumienie kodu właśnie
tylko trzeba umieć szukać odpowiedzi ... na początku nie zawsze to wychodzi
z czasem przychodzi zrozumienie i niestety rutyna :)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 kwi 2012, o 16:31 
Offline
Moderator
Avatar użytkownika

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

Posłuchaj - wcale się nie uniosłem a już na pewno nie miałem na celu żeby ci zarzucać że nie znasz podstaw matematyki. Jeśli tak to odebrałeś to bardzo przepraszam i niech to będzie dowodem że nie miałem na celu jakiegoś dogadywania ci czy zrobienia przykrości.

Jedyne co mnie zawsze dziwi w takich ogólnych pytaniach to właśnie to, że - rzadko kto napisze coś więcej a potem domyśla się że ja się uniosłem albo coś złego miałem na myśli. Moim zdaniem gdybyś od razu napisał i przedstawił sprawę tak jak teraz to - sam przyznaj że mi byłoby łatwiej i prościej się ustosunkować do tego .....

Na żadnego przygłupa nie wyszedłeś - a jeśli ktoś inny odbierze tak jak ty moją wypowiedź to prędzej ja na przygłupa wyjdę, że się denerwuję jak to odczytałeś .....

ale dajmy już temu spokój - forum jest po to żeby pytać - no tylko to jest troszkę tak, że jak zadajesz pytanie , podajesz jakiś fragment kodu to może się okazać, że warto dopisać co z tego jest wiadome a co w ogóle nie .... przecież widać tam że wrzucamy do czterech zmiennych cyX jakieś liczby....

ale ty napisałeś od razu tak:

PJR napisał(a):
Mam jeszcze jedną prośbę: chodzi mi o książkę do nauki języka C zawierającą przykłady wraz z opisem podobnych problemów/zagadnień. Myślę, że dla wielu osób raczkujących w C byłaby to nieoceniona pomoc. Wiem, że w sieci jest tego bardzo dużo, ale wolałbym skorzystać z porad bardziej doświadczonych kolegów i zaoszczędzić czas na poszukiwaniu najlepszych pozycji. .


Więc proszę nie dziw się, że taka była moja reakcja - bo troszkę się po prostu załamałem - staram się, piszę podstawy, ale jak coś jest nie jasne to zawsze proszę dopytać tu na forum czy na maila - zawsze chętnie podpowiem - tymczasem co widzę ? Prośbę o polecenie jakiejś książki gdzie to będzie dobrze wyjaśnione .... rozumiesz mnie ???

Gdybym miał złe intencje to bym tyle nie pisał no i nie podejmował próby wyjaśnienia tego fragmentu kodu - a jednak to zrobiłem - staram się mieć bardzo dużo cierpliwości do czytelników - tylko proszę też tak samo o wyrozumiałość dla mnie OK ?

jak coś to jeszcze raz przepraszam - i zachęcam pomimo wszystko do pytań na forum .... Mam nadzieję że będzie już lepiej .

_________________
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: 1 kwi 2012, o 16:46 
Offline
Nowy

Dołączył(a): 26 lut 2012
Posty: 7
Pomógł: 0

Nie wziąłem tego aż tak bardzo do siebie, Twoje ''mocne'' słowa tylko utrwaliły mnie w przekonaniu jak dużo jeszcze pracy przede mną. Suma summarum w Twojej wypowiedzi doszukałem się odpowiedzi na dręczący mnie problem:) więc zabieram się do roboty.

Nie byłem świadom, że rozpętam burzę w szklance wody :)

Tak czy inaczej nadal będę korzystał z forum i pewnie nie raz zadam jeszcze jakieś prostackie pytanie za co już przepraszam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 kwi 2012, o 16:56 
Offline
Moderator
Avatar użytkownika

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

PJR napisał(a):
Nie byłem świadom, że rozpętam burzę w szklance wody :)


A tam zaraz? proszę cię nie odbieraj tego tak do siebie.... no przepraszałem przecież.

PJR napisał(a):
Tak czy inaczej nadal będę korzystał z forum i pewnie nie raz zadam jeszcze jakieś prostackie pytanie za co już przepraszam.


Żadne prostackie i ja zawsze chętnie pomogę i postaram się już lepiej podejść ok ? .... więc nie musisz z góry za nic przepraszać.

_________________
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: 1 kwi 2012, o 17:04 
Offline
Nowy

Dołączył(a): 26 lut 2012
Posty: 7
Pomógł: 0

Nie, no wszystko jest w porządku, ja bez grzechu też nie jestem. Wystarczy już tego offtopu, nie chodzi o to żebyśmy się przepraszali. A tak na marginesie, śledzę to forum od jakiegoś czasu i naprawdę zazdroszczę Ci Mirku cierpliwości.
Widać, że każdemu chcesz pomóc, ale nie podając od razu rozwiązania na tacy co jest bardzo fajne ponieważ zmusza do myślenia. Pozdrawiam i życzę miłego spokojnego wieczoru :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 kwi 2012, o 17:23 
Offline
Użytkownik

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

Kolego PRJ właśnie oto chodzi żeby pokazać drzwi , i jak szukać odpowiedzi , w ten sposób można się wiele rzeczy nauczyć. Taka jest misja Mirka - myślę że tak to można nazwać. Musisz też zdać sobie sprawę z takiego małego faktu:

im precyzyjniej zadasz pytanie tym dokładniejszą odpowiedź dostaniesz :)

--- No ale dziś 1 kwietnia wiec zapewne warto wszystko w żart obrócić bo sobie normalnie jaja wszyscy robią :)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2012, o 20:47 
Offline
Użytkownik

Dołączył(a): 26 kwi 2012
Posty: 67
Lokalizacja: Drawski / Gorzów
Pomógł: 0

mirekk36 napisał(a):
SORKI ..... ale ten sposób robienia licznika jest totalnie MEGA nieoptymalny - można to zrobić 100x prościej i krótszym kodem ale wtedy byłby on rzeczywiście niezrozumiały


Zastanawiam się w jaki sposób rozbijanie liczby na cyfry można przeprowadzić prościej. Czy mógłbyś mnie naprowadzić na trop?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2012, o 20:51 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 344
Lokalizacja: Bydgoszcz
Pomógł: 11

Te rozbijanie liczby na cyfrowej nie zrobisz prościej jak przez operacje dzielenia tej liczby przez 10 dla uzyskania dziesiątek i operacji modulo z 10 aby otrzymać jedności(oczywiście dla liczby dwucyfrowej).

Pozdrawiam Michał!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lis 2016, o 21:53 
Offline
Użytkownik

Dołączył(a): 12 sty 2016
Posty: 34
Pomógł: 0

Witam

kompletnie nie rozumiem tego fragmentu kodu :

Proszę o wytłumaczenie tego zapisu.
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 lis 2016, o 21:57 
Offline
Moderator
Avatar użytkownika

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

B
RadekC napisał(a):
Proszę o wytłumaczenie tego zapisu.


Bo pewnie w ogóle nie przeczytałeś o wyrażeniu warunkowym w C (znak zapytania i dwukropek) ... a chyba widzisz, że w przytoczonej przez ciebie linijce kodu właśnie zostało to użyte.

? :

zgadza się ? A masz to w Bluebooku - mógłbyś więc zacząć od przeczytania co to za wyrażenie, jak działa i o co w nim chodzi ? A wtedy powtórzyć to pytanie albo dopytać czego nie rozumiesz w opisie w książce - o ile jeszcze coś będzie niejasne.

_________________
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 lis 2016, o 22:19 
Offline
Użytkownik

Dołączył(a): 12 sty 2016
Posty: 34
Pomógł: 0

Moja wina , nie doczytałem , strona 103 w niebieskiej Biblii rozwiewa moje wątpliwości , dziękuję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 kwi 2018, o 10:06 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 31 mar 2018
Posty: 2
Pomógł: 0

Cieszę się ze kolega PJR poruszył ten kod, bo wyjaśnienie potrafi naprowadzić na właściwe tory. 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: 18 ] 

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