sterowanie urządzeniami el. przez PC?

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Polish to

Threaded View
Witam,

szukam jakiejś przystawki (może na USB?) dzięki której wykorzystam moje PC
jako centralę do wentylacji, oświetlenia domu itp
szukałem na google ale niewiele znalazłem poza urządzeniami na rs232 (nie
mam takiego portu w kompie)

pozdrawiam

Maciek



Re: sterowanie urządzeniami el. przez P C?
onet pisze:
Quoted text here. Click to load it

To użyj przejściówki USB/RS232 tylko nie takiej z Allegro za 10pln.


--
Pozdrawiam
MD

Re: sterowanie urządzeniami el. przez P C?
onet pisze:
Quoted text here. Click to load it

Na mojej strone masz konwerter USB-RS485, zmieniajac nieco uklad mozesz
go wykorzystac jako kupa portow IO. W szczegolnosci jesli potrzebujesz
tylko pare portow to mozesz wykorzystac sam chip FTDI232 lub jego wersje
rownolegla.

Re: sterowanie urządzeniami el. przez PC?
Użytkownik "T.M.F." napisał:
Quoted text here. Click to load it

a jak komp sie zawiesi to co wtedy?:O)
dlatego urzywanie kompa w roli sterownika jest troszke niepoważne


Re: sterowanie urządzeniami el. przez PC?
Dnia Tue, 10 Feb 2009 21:17:01 +0100, gargamel napisał(a):

Quoted text here. Click to load it

Dlaczego? W sumie to przypadek pewnego rodzaju awarii, taka sama awaria
moze dopasc jakis mikrokontroler. Szansa na zawieszenie podobna jak przy
innym sprzecie (jesli dobrze jest wszystko skonfigurowane i przemyslane).
Dodatkowo jak ktos chce juz cos bardzo pewnego, to mozna sobie jakis
zewnetrzny watchdog zmajstrowac. A mozliwosci PC w porownaniu z "golym" uP
sa nieporownywalnie wieksze. Nawet na glupim windowsie XP w zasadzie
zawieszalnosc jest znikoma - u mnie restarty/resety ograniczaja sie tylko
do aktualizacji oraz zaniku zasilania.

m.

Re: sterowanie urządzeniami el. przez P C?
Madz pisze:
Quoted text here. Click to load it

Jakie możliwości? Przecież on nie ma portów. Zamiast dawać jakieś porty
na USB czy i2c lepiej zrobić sterowniczek na Atmelu z przekaźnikami a
peceta zastosować jako centrum zarządzania komunikujące się przez USB
bądź USB/RS232. Masz te same możliwości peceta a strona wykonawcza jest
odporna na zwisy, restartuje się w ułamek sekundy a nie 5 minut.


--
Pozdrawiam
MD

Re: sterowanie urządzeniami el. przez PC?
gargamel denied rebel lies:

Quoted text here. Click to load it

Tu to byłbym ostrożny.

--
<:>    Roger, MoonWolf Out   <:>|Live your life so you don't see mine
(::)                        (::)|
We've slightly trimmed the long signature. Click to see the full one.
Re: sterowanie urządzeniami el. przez PC?
Użytkownik "T.M.F."  napisał:
Quoted text here. Click to load it

to że pisząc w asemblerze dokładnie wiesz co piszesz i jaki sprzęt
oprogramowujesz, a w językach wysokopoziomowych to nigdy nie wiesz jak
program zostanie skomplilowany, nawet w takim C pisząc pętlę nie wiesz jaki
naprawdę kod asemblera oba zawiera,


Quoted text here. Click to load it

wiesz, widziałęm program graficzny 3D na PCta napisany w asemblerze
zajmujące megabajty kodu, więc mozna:O)
na starym pierniku (jakiś stary pentium) obliczał i wyswietlał grafikę 3D w
czasie rzeczywistym!!! co na dzisiejszych kompach PC jest wyzwaniem, wiec
można

.


Re: sterowanie urządzeniami el. przez PC?
Użytkownik "T.M.F."  napisał:
Quoted text here. Click to load it

no właśnie w tym stwierdzeniu jest całą prawda o językach wysokopoziomowych,
nie wiedzieć jest łatwo, wygodnie, łatwiej nauczyć się języka C raz na całę
życie niż architektury i asemblera kolejnych uP-uf, ale ceną tej łatwości
jest to że potem taki windows, czy linux sie zawiesza, programy sie
zawieszają nie wiedzieć dlaczego, a nawet telefony komurkowe się zawieszają
(i reset nie pomaga) dawniej gdy sprzęt był programowany w asemblerach coś
takiego się w głowie nie mieściło żeby telefon mógł się zawiesić, a mam w
domu taką starą dwóekranową gierkę (donkey kong) i w życiu sie nie
zawiesiła, cuda jakeiś czy co?:O)


Quoted text here. Click to load it


kompilatopr może nie mieć błędów, chodzi o brak kontroli) a własnie
niewiedza jest przyczyną błędów, dodatkowo oprogreamowując sprzęt urzywasz
sterowników producenta i też używasz funkcji wysokopoziomowych, czyli też
nie masz pojęcia jak dana instrukcja jest wykonywana, znowu nie masz
kontroli i dupa blada


Quoted text here. Click to load it


nazwy nie pamiętam, zresztą jak programu na oczy nie widziałeś to i nazwa
nic ci nie powie, a sens ma to ogromny, bo program który pisany
wysokopoziomowo nie ma szans na działąnie w czasie rzeczywistym na nowym
super sprzęcie, napisany w asemblerze tylko śmiga na starych piernikach,
wiec sens jest, jest nim wydajnosć i niezawodność,
p.s. do tego programu 3D to pamiętam jak sam pisałem w C takie funkcje i
wiem że jedna klatka takiego obrazu zajmowała nowemu PC 10 minut a bryła 3D
skąłdała się z kilkuset takich klatek, więc taka obróbka trwała setki
godzin, dlatego byłem ogromnie zdziwiony gdy program napisany w asemblerze
działąjacy na starym peirniku robi to samo w czasie rzeczywistym i jeszcze w
czasie rzeczywistym obraca taką bryłę i ją kroi w dowolnej płaszczyźnie,
więc różnica w wydajnosci między językami niskopoziomowymi a
wysokopoziomowymi jest OGROMNA i im język jest wyższego poziomu to jego
wydajność drastycznie spada!


Quoted text here. Click to load it

jakie ego? to oczywisty fakt że pisząc w asemblerze na tym samym sprzęcie
program będzie o niebo szybszy od pisanego wysokopoziomowo, ale ja tego nie
będę pisał bo mi za to nie płącą:O)


Re: sterowanie urządzeniami el. przez P C?
Quoted text here. Click to load it

Zawiesza sie bo jest napisany w jezyku wysokiego poziomu? Masz jakas
literature na poparcie tej tezy? Porownaj taki ZX Spectrum, ktory mial
16 kB ROM, w dodatku z bledami, ze wspolczesnym komputerm, ktorego OS ma
setki MB.

Quoted text here. Click to load it

Jaka niewiedza? Co mnie obchodzi jak dziala jakas funkcja. Mam funkcje
biblioteczna, ktora realizuje np. x+y i nie ma dla mnie znaczenia jak
ona to robi, byle to robila.

Quoted text here. Click to load it

Pisales procedury do takiego programu 3D i nie pamietasz jego nazwy? Wez
nie sciemniaj.

Quoted text here. Click to load it

Wez sie nie osmieszaj. Masz np. funcje realizujaca np. pomniejszenie
fragmentu obrazu z antyaliasingiem. Realizowana jest ona sprzetowo przez
GPU, jaka bedzie roznica czasu wykonania jesli wywolam ja programujac
bezposrednio GPU, albo wywolujac przez funkcje GDI? Podpowiem, zadna.
A w tym pierwszym wypadku trace od razu kompatybilnosc, w dodatku moj
program ma szanse miec o wiele wiecej bledow niz program korzystajacy z
przetestowanej przez tysiace programistow funkcji bibliotecznej.

Re: sterowanie urządzeniami el. przez PC?
Użytkownik "T.M.F." napisał:
Quoted text here. Click to load it

oj zaraz byś chciał literaturę kjtóra by zaciebie pomyślała, naprawdę nie
rozumiesz aktu że im język jest wyższego poziomu tym programista ma mniejszą
kontrolę nad kodem?:O)
np: taka zwykłą pętla for w C, wiesz ile z tego kompilator robi instrukcji
asemblera?:O) jak sprawdzisz to przynajmniej dędziesz wiedział ile tam jest
śmiecia


Quoted text here. Click to load it

no włąśnie, co ciebie obchhodzi, tak samo co ciebie obchodzi ze
oprogramowanie jest niestabilne i z masą śmieci skoro jest poprawnie
napisane:O(


Quoted text here. Click to load it

nic do tego programu nie pisałem, pisałem włąsny program w C o
funkcjonalności podobnej do tamtego programu w asemblerze, dlatego wiem jaka
byłą między nimi róznica w wydajnosci


Quoted text here. Click to load it

jeśli coś można zrobić sprzętowo to lepiej to będzie działąć sprzętowo, ale
czy ty myślisz ze grafika 3D to tylko gry PC? nie każda grafika ma zwiazek z
przetwarzaniem obrazu, często są to czasochłonne filtracje, sploty, operacje
na wielkich macierzach i tym poodbne, pod które nikt sprzętu masowo nie
produkuje


Re: sterowanie urządzeniami el. przez P C?
gargamel pisze:
Quoted text here. Click to load it

Załóżmy, że jesteś w stanie napisać krótszą pętlę niż wygenerowana z C
przez kompilator. Ale musisz napisać znacznie więcej kodu, we którym
masz znacznie większe szanse pomylić sie. A pętla w C jest prosta jak
konstrukcja cepa. Nawet jeśli kod wynikowy jest troszkę dłuższy to jest
wygenerowany automatycznie i małe są szanse żeby zawierał błąd. Zdarza
się, że kompilatory zawierają błędy ale dość szybko są wykrywane łatane.
Zakładam, że bardziej niezawodna jest zbiorowa praca programistów od
avr-gcc niż rzeźbienie rozbudowanego projektu przez programistę
asemblerowego. Sam od dawna pisałem w asemblerze ale przy okazji
przejścia na nowe procki przerzuciłem się na C. Nigdy więcej pisania w
asemblerze obliczeń zmiennoprzecinkowych na logarytmach :) Będzie
konieczność przyspieszenia jakiejś obsługi przerwania to najwyżej
przepiszę kawałek kodu w asemblerze ale jeszcze nie miałem takiej potrzeby.

Quoted text here. Click to load it

A skąd wniosek że jeśli go nie obchodzi jak funkcja działa to znaczy że
go nie obchodzi stabilność kodu wynikowego. Przecież ty pisząc w
asemblerze też nie interesujesz się jak to jest realizowane na poziomie
mikrokodu. Skoro tego nie wiesz to może twoje instrukcje są zamieniane
na błędne mikroinstrukcje?
Quoted text here. Click to load it



--
Pozdrawiam
MD

Re: sterowanie urządzeniami el. przez PC?
Użytkownik "Mario" napisał:
Quoted text here. Click to load it

tak, wiem że kod w C jest piękny, te wszystki odstępy, tabulatory,
komentarze, wszystko tak piękne że tylko podziwaić i takie proste, dlatego
stosuje sie języki wysokopoziomowe, ale jest dróga strona, kosztem łątwizny
jest niestabilnosć, bnłęduy io brak kontroli, to są fakty a nie moje
widzimisie, acha a co do błędów w kompilatoraach to każdy kto sie świeżo
uczy jakiegoś języka to takie błędy znajduje w ilościach huirtowych na
porządku dziennym:O(
acha, no i cały brak kontroli polega na tyum że nasz funkcję jako czarne
pudełeczka, a wiec nie masz kontroli nad tym co w środku a włąsnie te
nieprzewidywalnme błędy biorą się gównie z niewiedzy a nie z
nieumiejętnosciu programowania


Quoted text here. Click to load it

przecież instrukcje w asemblerze to jest wąłśnie mikrokod (jedna instrukcja
jest zamieniana na ciąg zer i jedynek (i dokłądnie wiesz na jaki a jak znasz
arhitekturę to i wiesz jak te instrukcje są wykonywane)


p.s. zboczyło sie trochę z tematu a wiec do sterowania wentylatorem mo zna
kupić sobie taki mały sterowniczek mieszczący się w puszce eleltrycznej
9mozliwy do programowania z PC, kupujesz, programuijesz, podłączasz i
zapominasz:O)


Re: sterowanie urządzeniami el. przez P C?
gargamel pisze:
Quoted text here. Click to load it

Skoro to sa fakty to z latwoscia podasz przyklady w literaturze, ktore
je potwierdzaja.

Quoted text here. Click to load it

Jasne. Bredzisz.


Znowu palnales. Poczytaj czym jest mikrokod.

Re: sterowanie urządzeniami el. przez PC?
Użytkownik "T.M.F." napisał:
Quoted text here. Click to load it

ja pie### literatura? poczytaj podręcznik do C i do asemblera, acha samo
przeczytanie nic ci nie da, niestety jeszcze nie wymyślono literetury która
jeszcze myśli za czytelnika, głową musisz ruszyć sam, może zaboleć:O)


Re: sterowanie urządzeniami el. przez PC?
In the darkest hour on Mon, 16 Feb 2009 20:06:38 +0100,
Quoted text here. Click to load it

Aha. Czyli widzimisię. Syndrom związany z byciem ajatollahem asemblera.

--
[ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:222B ]
[ 12:47:55 user up 11989 days,  0:42,  1 user, load average: 0.99, 0.95, 0.97 ]

We've slightly trimmed the long signature. Click to see the full one.
Re: sterowanie urządzeniami el. przez P C?
gargamel pisze:
Quoted text here. Click to load it

Ja widzę u ciebie błędy io :)
Kod w asemblerze też może być piękny z tabulatorami i komentarzami.
Kod w języku wysokopoziomowym jest przede wszystkim zwięzły. Fakt
pisania w C (i automatycznej generacji kodu wynikowego) nie jest
przyczyną niestabilności i błędów io. Systemy operacyjne pisze się w C i
to jest najlepszym przykładem na to że jest to najlepsze rozwiązanie.
Nie sądzę żeby napisany w asemblerze system był stabilny i dawał się
rozwijać.

  to są
Quoted text here. Click to load it

Z reguły to nie są błędy kompilatora tylko brak wiedzy programisty. Jak
się przerzucisz z jednego kompilatora asm na inny to też będzie ci się
kompilacja sypać.

Quoted text here. Click to load it

Czytasz opis funkcji i wiesz jak ona działa. Jak masz wątpliwości to
przeglądasz kod. Jeśli chcesz w c wysłać przez UART liczbę typu int to
użyjesz np printf("%d",a) - najpierw inicjując port
rprintfInit(uartSendByte). Nie musisz znać architektury.  Aby to zrobić
w asm musisz napisać sobie konwersję bin > dec > ascii potem załadować
do bufora i dopiero potem uruchomić procedurę wysyłania przez UART. W
każdej z tych procedur musisz pilnować jakie wartości odłożyć na stos
jakie rejestry użyć itp. Jednym słowem nawet do trywialnych operacji
matematycznych musisz znać dokładnie architekturę. Trudno jest ci
dołączyć kod z biblioteki - zwłaszcza pisany przez kogoś innego a w
dodatku gdy przechodzisz na inny procek to trzeba wszystko przepisywać
od nowa.
Quoted text here. Click to load it

Jedna instrukcja już jest ciągiem zer i jedynek :)

(i dokłądnie wiesz na
Quoted text here. Click to load it

Doczytaj o mikrokodzie i zastanów się czemu np. w prockach typu CISC
cykl maszynowy składa się z kilku cykli zegarowych.

Quoted text here. Click to load it

Można też kupić mieszczące się w puszce sterowanie światłem czy roletami
a to wszystko na pilota radiowego.


--
Pozdrawiam
MD

Re: sterowanie urządzeniami el. przez PC?
Użytkownik "Mario"  napisał
Quoted text here. Click to load it

jądra systemów operacyjnych (czyli to co najważniejsze) pisze sie w
asemblerze, całą resztę bajerów w C:O)


Quoted text here. Click to load it

opis to jest tylko wyglądu czarngo puidełeczka a do tego co w środku opisów
nie ma, często nawet nie masz mozliwosci zajrzeć do tego co jest w środku,
bo są to funkcje skompilowane, kiedyś pamiętam napisałem bardzo prostą
unkcyjkę (kilka lini kodu) a potem znalazłem funkcję w kompilatorze o opisie
dokładnie odpowiadającemu działąniu mojej funkcji i jak zajrzałem do jej
kodu źródłowego (nie pamiętam skąd go wziąłem, może było dostępne żródło w
C) to zobaczyłem dosłownie setki lini kodu, nawet nie byłem w stanie tego
przeanalizować,


Quoted text here. Click to load it

co tu czytać? to zależy wyłącznie od architektury procka


Re: sterowanie urządzeniami el. przez P C?
gargamel pisze:

Quoted text here. Click to load it

Eeee, ale niby od kiedy? W asemblerze są zwykle 2-3 pliki (część wspólna
przerwań, część schedulera związana z przełączaniem kontekstu, startup)
i już. Cała reszta jądra, włączając scheduler, kolejki, powiadomienia,
starzenie zadań - to wszystko prawie zawsze pisze się w C. Wtedy jest
duużo mniej roboty z portowaniem na kolejny procek. Zobacz przykładowo,
na ilu platformach pójdzie FreeRTOS. A to tylko mały pikuś w porównaniu
z większymi systemami.

--
Adam Dybkowski
        http://dybkowski.net /

We've slightly trimmed the long signature. Click to see the full one.
Re: sterowanie urządzeniami el. przez PC?
In the darkest hour on Mon, 16 Feb 2009 20:03:42 +0100,
Quoted text here. Click to load it

Rozumiem. SprawdĹşmy kolejne fakty...

# tar tvjf linux-source-2.6.26.tar.bz2 |grep -c '\.c$'
10215
# tar tvjf linux-source-2.6.26.tar.bz2 |grep -ci '\.S$'
1005

Gdyby pisać wszystko w assemblerze, to samo zdebugowanie zajęłoby dużo
czasu, nie mówiąc o konieczności wynajdowania koła w postaci backtrace.

--
[ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:221B ]
[ 12:53:28 user up 11989 days,  0:48,  1 user, load average: 0.99, 0.95, 0.97 ]

We've slightly trimmed the long signature. Click to see the full one.

Site Timeline