DRO DIY

Na tym forum rozmawiamy o elektronice nie związanej bezpośrednio z tematem CNC

upanie
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 48
Posty: 1962
Rejestracja: 15 sty 2011, 09:26
Lokalizacja: Wyszków

#121

Post napisał: upanie » 27 kwie 2017, 22:35

Więc radzę ostrożnie z teoriami że C to jest taki wspaniały język, ponieważ ktoś doświadczony może was wyśmiać. Owszem jest to szybki język, dla prostych programów. Ale w bardziej wymagających zastosowaniach wyparty niemal całkowicie przez obiektowe C++.
Uwierz mi chłopaku, że jestem doświadczony i nikogo nie wyśmieję za to, że uważa iż język C jest wspaniały. Bo jest. Mam kilkanaście lat doświadczenia w programowaniu w różnych językach. Zarabiałem i zarabiam tym na życie. I uwierz mi również w to, że mechanizmy synchronizacji aplikacji wielowątkowych istniały w języku C zanim Twoje cudowne framework-i się pojawiły. A jeśli chodzi o skomplikowane programy napisane w C to zgadnij w czym jest napisane jądro Linux-a.
Owszem nikt teraz nie będzie na siłę pisał programów PC-towych w C bo da się szybciej w C++, Javie,C# czy innych cudach łącznie z językami skryptowymi jak Python. Ale C nigdy nie zostanie wyparty bo nie ma żadnej konkurencji w swojej kategorii.


czilałt...

Tagi:


strikexp
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 105
Posty: 4690
Rejestracja: 31 mar 2017, 19:47
Lokalizacja: Warszawa

#122

Post napisał: strikexp » 27 kwie 2017, 23:47

upanie pisze:A jeśli chodzi o skomplikowane programy napisane w C to zgadnij w czym jest napisane jądro Linux-a.
Wiem w czym jest napisane, i nie tylko ono ale i wiele innych programów sprzed np 2000 roku. Takie były czasy, tak się pisało.
Inna sprawa że jądro linuxa musi być bardzo wydajne. A w asemblerze ciężko pisać w ogóle.
To tak trochę jakbyś napisał, że rower jest najlepszy. Ponieważ koń to paskudzi, a samochód to jest fanaberia leniwych.
Każda technologia która nie zdechła na przestrzeni czasu. Ma jakieś zalety które powodują że nadal jest używana. Tak jak silnik odrzutowy nie sprawił że przestało się produkować samoloty śmigłowe. Tak inne języki nie sprawiły że zapomniano o C.
Niemniej dziś pewnie jakieś 90% podróży odbywa sie samolotami odrzutowymi.


upanie
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 48
Posty: 1962
Rejestracja: 15 sty 2011, 09:26
Lokalizacja: Wyszków

#123

Post napisał: upanie » 28 kwie 2017, 00:39

Porównania nie są trafione bo jak napisałem C nie ma dla siebie konkurencji.
To w zasadzie jedyny język, który pozwala na interakcję ze sprzętem. Nie tylko na mikrokonktrolery ale również na PC. Jakkolwiek cudowny nie byłby jakiś tam nowoczesny język to jednak pracuje na sprzęcie i wcześniej czy później musi skorzystać z funkcji sprzętowych, które to są zrealizowane w C. Pomijając już sam fakt, że program napisany w tym nowoczesnym języku pracuje pod kontrolą systemu operacyjnego, który to w pythonie czy w Javie napisany nie jest.
I da się w tym języku napisać chyba wszystko więc jest wspaniały co nie zmienia faktu, że do wielu zastosowań są języki wspanialsze do C.
czilałt...


strikexp
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 105
Posty: 4690
Rejestracja: 31 mar 2017, 19:47
Lokalizacja: Warszawa

#124

Post napisał: strikexp » 28 kwie 2017, 00:44

A w czym są napisane biblioteki C? :wink:


upanie
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 48
Posty: 1962
Rejestracja: 15 sty 2011, 09:26
Lokalizacja: Wyszków

#125

Post napisał: upanie » 28 kwie 2017, 08:25

W C.
czilałt...


mc2kwacz
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 7
Posty: 2920
Rejestracja: 27 maja 2013, 22:18
Lokalizacja: gdzieś

#126

Post napisał: mc2kwacz » 29 kwie 2017, 13:34

A można jeszcze dodać, że do bardzo dopasowanych i bardzo wydajnych rozwiązań, nawet C wysiada przy kodzie maszynowym. Bo jest to jedyny sposób, żeby uzyskać DOKŁADNIE zamierzony efekt sprzętowy w każdym momencie działania programu i specyficzne (nadzwyczaj wydajne) zarządzanie zasobami, w tym pamięcią. W takich przypadkach języki obiektowe są nie tyle niewydajne, co całkowicie bezużyteczne.
Podsumowując Wasz spór można powiedzieć, że rasowy inżynier programista posługuje się kodem maszynowym, językiem liniowym (np C) oraz językiem obiektowym, w zależności od potrzeb. Udowadnianie że język obiektowy jest super do wszystkiego, jest wręcz śmieszne.
To zupełnie tak samo jakby powiedzieć, że elektronik wystarczy jak umie zastosować układ scalony z aplikacją oraz wiedzieć jak działa wzmacniacz operacyjny i bramka cyfrowa.
Avalyah pisze:Sztuką jest napisać program, który działa sprawnie i optymalnie, a nie ukrywanie niedociągnięć mocą obliczeniową. To, o czym tutaj mówimy to jest przecież sprawa nieskomplikowana. Trzeba podpiąć enkodery pod przerwania, zliczać im impulsy i wyświetlać to na jakimś wyświetlaczu... gdzie tu filozofia? Pewnie na zwykłej atmedze taktowanej 2MHz by się to dało zrobić, a Wy tutaj piszecie o czterordzeniowych prockach i armach :razz: No chyba, że wynik ma być na wyświetlaczu full HD podpiętym przez hdmi, to wtedy atmega nie wystarczy.
Święte słowa :)
strikexp pisze:To był taki przykład przerwanie procesu. Czy programując mikrokontrolery nie doszliście do takiego pojęcia jak proces ( nie, nie chodzi o te z Linuxa)?
To są problemy programów wielozadaniowych, wielowątkowych i ogólnie programów serwerowych z których korzysta więcej niż jeden klient jednocześnie.
Może tego nie pojmujecie bo mikrokontrolery są jednowątkowe i rzadko działają jak serwery.
KAŻDY układ mikroprogramowany jest jednowątkowy. Żeby procesor był wielowątkowy, musi mieć w sobie więcej niż jeden FIZYCZNY kompletny rdzeń złożony z ALU, adresowania i rejestrów pomocniczych. Tyle że jest to faktycznie kilka mikroprocesorów na jednej płytce półprzewodnika i w zasadzie jest to równoważne płytce na której te elementy są widoczne osobno. Zanim powstały wielordzeniowe (wielowątkowe) procesory tak się to właśnie robiło. Nic nowego tu nie wymyślono, tylko dokonano miniaturyzacji.
W dużych programach jak np aplikacje internetowe. Stosuje się bardzo skomplikowane struktury aby temu zaradzić. Więc radzę ostrożnie z teoriami że C to jest taki wspaniały język, ponieważ ktoś doświadczony może was wyśmiać. Owszem jest to szybki język, dla prostych programów. Ale w bardziej wymagających zastosowaniach wyparty niemal całkowicie przez obiektowe C++.
To nie jest kwestia konieczności tylko wyłącznie wygody. Języki wyższego poziomu są oparte na językach niższego poziomu i tej zależności nie da się przeskoczyć. Język wyższego poziomu to po prostu język na wyższym poziomie abstrakcji, w którym istnieją (gotowe) mechanizmy których programista nawet nie musi wiedzieć, skąd się wzięły i jak działają. Po prostu chodzi o szybsze tworzenie dużych aplikacji i oszczędność na wynagrodzeniu programistów. Tylko i wyłącznie. I o oczywiście o to, żeby ci programiści nie musieli być zanadto dobrzy, żeby wystarczyli przeciętni. Wtedy za te same pieniądze można mieć ich więcej i taniej i tez zrobią co trzeba.
Programowanie użytkowe opiera się na takich właśnie zasadach, bo to od dłuższego czasu jest rynek przypominający tanie supermarkety, gdzie jest potrzeba na zapełnienie półek dużą ilości towaru przeciętnej jakości. Ale tam gdzie robi się rzeczy trudne i technologicznie zaawansowane oraz na szczycie technologii, nadal pisze się programy w językach bardziej "archaicznych".


strikexp
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 105
Posty: 4690
Rejestracja: 31 mar 2017, 19:47
Lokalizacja: Warszawa

#127

Post napisał: strikexp » 30 kwie 2017, 21:44

upanie pisze:W C.
Na pewno nie w asemblerze? :wink:


@mc2kwacz
Warto zaznaczyć że bezpośrednim przełożeniem kodu maszynowego na jezyk ludzki jest asembler. Tym językiem wywołujemy konkretne instrukcje ALU czy coś w ten deseń. Sam nie wnikałem aż tak głęboko, bo to mało przydatna wiedza w praktyce.

Co do wątkowości, niezupełnie prawda. Owszem od strony technicznej jest tak jak piszesz. Ale program może mieć kilka podprogramów równocześnie. To występuje właśnie w komputerach gdzie często trzeba długo czekać na odpowiedź upraszczając z klawiatury czy sieci. Trzeba wtedy używać tzw lock żeby wszystko się nie rypło.
Jest to bardzo skomplikowany temat którego nie warto tutaj rozgrzebywać. Ale nawet na Arduino robiłem taki wielowątkowy program.
mc2kwacz pisze: Ale tam gdzie robi się rzeczy trudne i technologicznie zaawansowane oraz na szczycie technologii, nadal pisze się programy w językach bardziej "archaicznych".
A tutaj się mylisz, im grubsze wymagania tym nowszy jezyk programowania. Wiem to z przetargów w które podsyła mi do analizy dział handlowy :wink:
Oczywiście mówię tutaj o programach na kalasyczne komputery/tablety/telefony. W mikrokontrolerach itp, gdzie wydajność ma znaczenie. Używa się właśnie archaicznych języków o wysokiej wydajności jak C czy C++.
Ogólnie skomplikowany temat, a Twoja wypowiedź bardzo rzeczowa. Ale nie róbmy offtopu ponieważ...


Zaprogramowałem DRO z eliminacją luzów nakrętki
Chciałbym jednak aby ktoś je przetestował zanim udostępnię na forum instrukcję jak je wykonać samodzielnie. Powody są dwa:
1. Ja niezbyt mam pojęcie o mechanice. A w dodatku szkoda mi czasu robić uchwyty na DRO w tokarce(muszę do niej jeździć 100km :mrgreen:).
2. Nie mam prawdziwego enkodera. Do testów mam jedynie enkoder gałkowy, który przeskakuje po 4 impulsy. Kiepsko sie na nim testuje.

Do testów będzie potrzebne:
- Arduino UNO
- zestaw kabli połączeniowych a najlepiej kable i płytka stykowa
- rezystory około 10k omów sztuk 3
- enkoder
- wyświetlacz z allegro który pokazywałem (około 20zł)
- przycisk - krańcowy lub tactical switch
- uchwyt enkodera na jakiejś śrubie


Avalyah
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 22
Posty: 2437
Rejestracja: 29 lis 2015, 00:38
Lokalizacja: Bielsko-Biała

#128

Post napisał: Avalyah » 30 kwie 2017, 22:08

Wrzuć nam tutaj kod, chętnie popatrzę :razz:


pukury
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 8
Posty: 7737
Rejestracja: 23 lis 2004, 22:41
Lokalizacja: kraków

#129

Post napisał: pukury » 30 kwie 2017, 22:19

hej.
oświećcie mnie ! Wiedzący !
jakie zło tkwi w dro ( dla ubogich ) do którego podsyłam ( po raz kolejny ) link ?
to oto - http://www.juergenschwelm.de/
zakładka " projekte " - zadro.
pzd.
Mane Tekel Fares


Avalyah
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 22
Posty: 2437
Rejestracja: 29 lis 2015, 00:38
Lokalizacja: Bielsko-Biała

#130

Post napisał: Avalyah » 30 kwie 2017, 22:22

Żadne zło nie tkwi, dlaczego miałoby tkwić? Niestety ja niemeckiego nie znaju, więc nie wiem, jak on to tam dokładnie zrobił.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika ogólna”