eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikasterowanie urządzeniami el. przez PC?
Ilość wypowiedzi w tym wątku: 62

  • 41. Data: 2009-02-15 22:12:56
    Temat: Re: sterowanie urządzeniami el. przez PC?
    Od: "T.M.F." <t...@n...mp.pl>

    > no więc na ile komend asemblera kompilator gcc kompiluje pętlę for?
    > bo w asemblerze wystarczą dwie, trzy instrukcje

    I dokladnie tyle samo w gcc.
    I o czym to ma swiadczyc?


  • 42. Data: 2009-02-15 22:19:09
    Temat: Re: sterowanie urządzeniami el. przez PC?
    Od: "T.M.F." <t...@n...mp.pl>

    >> A jak plyte sz.. trafi, to tak samo moze mi w mikroprocesorowym
    >> sterowniku poleciec procek.
    >
    > to teraz policz ile w tym procku PC jest milionów tranzystorów, dodaj do
    > tego resztę milionów tranzystorów w płycie głównej i podzespołąch i
    > porównaj to z liczbą tranzystorów w całym sterowniczku opartym na procku
    > jednoukładowym, to ci popkaże skalę prawdopodobieństwa awarii sprzętu:O)

    Czlowieku, na kazdy temat na ktory sie wypowiadasz pokazujesz swoja
    ignorancje. Prawdopodobienstwo awarii zalezy od procesu technologicznego
    a nie ilosci tranzystorow. Taki AVR32 ma zblizone prawdopodobienstwo
    awarii jak malutki 8-bitowy AVR. A kazdy z tych procesorow ma
    wielokrotnie nizsze prawdopodobienstwo awarii niz np. kondensator czy
    dyskretny tranzystor.

    >> Jak wspomnialem wczesniej, jedynym problemem jest brak watchdoga -
    >> mozliwe
    >> ze producenci ITX o tym wkrotce pomysla. Tymczasem trzeba sobie cos
    >> wlasnego wymyslic.
    >
    > wątpię, bo w PC sam restart nie musi rozwiazać problemu, wiec i sensu
    > stosowania brak:O(

    Jasne, dlatego np. sprzedawane w setkach milonow egzemplarzy routerki/AP
    z linuxem na pokladzie wg ciebie nie maja prawa dzialac.
    Jak dla mnie EOT.


  • 43. Data: 2009-02-15 22:55:45
    Temat: Re: sterowanie urządzeniami el. przez PC?
    Od: "zbyszek" <z...@o...eu>

    > 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

    Programowanie to nie tylko zadanie napisania kodu który raz zadziała,
    przejdzie 2 proste testy i już. Kod często ma też sprawdzać zakresy
    oczekiwanych
    danych i wyników aby wyłapywać ewentualne inne mniej oczywiste błędy
    przetwarzania.
    Samo dodawanie czy pomnożenie to nie wszystko. Sprawdzanie zakresu wyniku,
    przekroczenie tabeli
    itd jest ważnym elementem prawie każdego programu. Jesli tego nie robisz w
    swoich programach to
    są one marne. Nawet nikt nie wie, że występują błędy i wychodzą bzdurne
    wyniki.
    Stąd takie proste x+y może być obudowane większym sprawdzonym kodem
    kompilatora czy biblioteki.


    >> 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.
    >
    > no włąśnie, co ciebie obchhodzi, tak samo co ciebie obchodzi ze
    > oprogramowanie jest niestabilne i z masą śmieci skoro jest poprawnie
    > napisane:O(

    Czepiasz się niesłusznie. Nie musi go obchodzić efektywność kodu
    który wykonuje się sporadycznie, ważniejsza jest wtedy jego pewność
    poprawności działania. A poprawność kodu na pewno jest wyższa z kompilatora
    C
    niż wklepanego ręcznie w asm. Ilość błędów jest związana z ilością linijek
    kodu,
    im prostrzy i czytelniejszy zapis tym mniej pomyłek.

    Także optymalizacja kodu to inne zadanie kiedy piszesz prosty program dla
    prostego 8 bitowca
    i możesz to zrobic ręcznie niż kiepski C, a inne kiedy tworzysz kod dla
    robudowanych
    procków mających mnóstwo schematów adresowania i dla których kompilator
    szuka optymalnego kodu, wykorzystania banków rejestrów , analizuje i
    eliminuje martwy kod,
    itd

    > 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
    >...
    > 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

    Pisałem kiedyś program w C - implementując prosto dla próby własne FFT a
    następnie
    skorzystałem z gotowej biblioteki intela - była ona ponad 10 x szybsza od
    mojego kodu,
    ale to nie zasługa języka programowania tylko wykorzystania wbudowanych
    zaawansowanych
    instrukcji sygnałowych procka!. Jest ich teraz tak dużo i są związane
    ściśle z konkretnymi
    prockami, w kazdym są inne zestawy, że sami ani w asm ani w C tego nie
    oprogramujemy -
    biblioteki tworzy producent procków i ma popisane różne kawałki dla różnych
    procków..

    Takie filtry i inne o których piszesz właśnie mają piękne wsparcie sprzętowe
    (SIMD) w procesorach.


    zbyszek
















  • 44. Data: 2009-02-15 22:58:11
    Temat: Re: sterowanie urządzeniami el. przez PC?
    Od: Mario <m...@p...onet.pl>

    gargamel pisze:
    > Użytkownik "Mario" napisał:
    >> 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.
    >
    > 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,

    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ą
    > 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(

    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ć.

    > 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

    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.
    >
    >> Przecież ty pisząc w asemblerze też nie interesujesz się jak to jest
    >> realizowane na poziomie mikrokodu.
    >
    > przecież instrukcje w asemblerze to jest wąłśnie mikrokod (jedna
    > instrukcja jest zamieniana na ciąg zer i jedynek

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

    (i dokłądnie wiesz na
    > jaki a jak znasz arhitekturę to i wiesz jak te instrukcje są wykonywane)

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

    >
    >
    > 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)

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


    --
    Pozdrawiam
    MD


  • 45. Data: 2009-02-15 23:04:37
    Temat: Re: sterowanie urządzeniami el. przez PC?
    Od: Mario <m...@p...onet.pl>

    gargamel pisze:
    > Użytkownik "T.M.F." napisał:
    >> No wiem. Tak sie sklada, ze np. gcc robi petle tak optymalnie jak w
    >> assemblerze.
    >
    > no więc na ile komend asemblera kompilator gcc kompiluje pętlę for?
    > bo w asemblerze wystarczą dwie, trzy instrukcje

    Pod warunkiem, że w pętli będzie inkrementacja/dekrementacja o 1 a
    licznik ma wielkość równą długości słowa danych.

    >
    >> Gratuluje, napisac program o funkcjonalnosci kilku MB w assemblerze i
    >> nie pamietac jak sie nazywal... Moze czas zaczac brac Nootropil.
    >
    > ojej, czytaj za zrozumieniem, nie pisałem w asemblerze, pisałem w C i
    > mój program w C miałem okazję porównać z programem w asemblerze (jego
    > nazwa ani kto go napisał wsale mnie nie interesowało)

    Może nie potrafiłeś wydajnie pisać?

    --
    Pozdrawiam
    MD


  • 46. Data: 2009-02-15 23:10:43
    Temat: Re: sterowanie urządzeniami el. przez PC?
    Od: Mario <m...@p...onet.pl>

    gargamel pisze:
    > Użytkownik "Madz" napisał:
    >> A jak plyte sz.. trafi, to tak samo moze mi w mikroprocesorowym
    >> sterowniku poleciec procek.
    >
    > to teraz policz ile w tym procku PC jest milionów tranzystorów, dodaj do
    > tego resztę milionów tranzystorów w płycie głównej i podzespołąch i
    > porównaj to z liczbą tranzystorów w całym sterowniczku opartym na procku
    > jednoukładowym, to ci popkaże skalę prawdopodobieństwa awarii sprzętu:O)


    Jednoukładowiec (np ARM9) może mieć więcej tranzystorów niż stary PC. Np
    XT :) Sądzę że bardziej bardziej złożony system, może być jednocześnie
    bardziej bezawaryjny.

    >
    >> Jak wspomnialem wczesniej, jedynym problemem jest brak watchdoga -
    >> mozliwe
    >> ze producenci ITX o tym wkrotce pomysla. Tymczasem trzeba sobie cos
    >> wlasnego wymyslic.
    >
    > wątpię, bo w PC sam restart nie musi rozwiazać problemu, wiec i sensu
    > stosowania brak:O(

    Dlaczego? Zwisy mogą być spowodowane losowym błędnym odczytem danych z
    pamięci RAM lub HDD lub np wyciekiem pamięci i zajęciem wszystkich
    zasobów po dużym uptime. Reset sprzętowy często ratuje sytuację.

    --
    Pozdrawiam
    MD


  • 47. Data: 2009-02-16 19:03:42
    Temat: Re: sterowanie urządzeniami el. przez PC?
    Od: "gargamel" <s...@d...eu>

    Użytkownik "Mario" napisał
    > 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ć.

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


    > Czytasz opis funkcji i wiesz jak ona działa. Jak masz wątpliwości to
    > przeglądasz kod.

    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ć,


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

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


  • 48. Data: 2009-02-16 19:06:38
    Temat: Re: sterowanie urządzeniami el. przez PC?
    Od: "gargamel" <s...@d...eu>

    Użytkownik "T.M.F." napisał:
    > Skoro to sa fakty to z latwoscia podasz przyklady w literaturze,
    > ktore je potwierdzaja.

    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)


  • 49. Data: 2009-02-16 19:19:24
    Temat: Re: sterowanie urz?dzeniami el. przez PC?
    Od: "gargamel" <s...@d...eu>

    Użytkownik "zbyszek" napisał:
    > Sprawdzanie zakresu wyniku, przekroczenie tabeli itd jest ważnym
    > elementem prawie każdego programu. Jesli tego nie robisz w swoich
    > programach to s? one marne. Nawet nikt nie wie, że występuj? błędy i
    > wychodz? bzdurne wyniki. St?d takie proste x+y może być obudowane
    > większym sprawdzonym kodem kompilatora czy biblioteki.

    dałeś bardzo dobry przykład, wiekszość funkcji jest właśnie tak pisana zeby
    była debiloodporna, sprawdza wszystko i jest na wszystko odporna, zajmuje
    setki lini kodu i nadmiernie obciąża procesor:O(
    widzisz, nie zawsze takich funkcji potrzebujesz, często wystarczy ci funkcja
    które niczego nie sprawdza i wykonuje to samo w paru liniach kodu, a błędów
    nie będzie bo funkcja pracuje tylko na jednym typie danych i już
    sprawdzonych:O)


    > Czepiasz się niesłusznie. Nie musi go obchodzić efektywno?ć kodu
    > który wykonuje się sporadycznie, ważniejsza jest wtedy jego pewno?ć
    > poprawno?ci działania.

    ok, wpożo, jak wydajność i niezawodność nie jest wymagana to sie pisze w
    C:O)


    > Pisałem kiedy? program w C - implementuj?c prosto dla próby własne FFT a
    > następnie skorzystałem z gotowej biblioteki intela - była ona ponad 10 x
    > szybsza od mojego kodu,

    ok, bo prawdopodobnie była ona pisana w asemblerze:O)


  • 50. Data: 2009-02-16 19:25:19
    Temat: Re: sterowanie urządzeniami el. przez PC?
    Od: "gargamel" <s...@d...eu>

    Użytkownik "Mario" napisał:
    > Pod warunkiem, że w pętli będzie inkrementacja/dekrementacja o 1 a licznik
    > ma wielkość równą długości słowa danych.

    fakt, ale powiedz mi ile komend asemblera wygeneruje kompilator włąśnie dla
    takiej prostej pętli napisanej w C?:O)


    > Może nie potrafiłeś wydajnie pisać?

    może, ale akurat osoba co mi program zademonstrowałą, pokazała mi też
    identyczny program napisany w C (jeden i drógi pisane przez zawosowe zespoły
    porogramistów) i porównanie było też takie jak pisałem:O)

strony : 1 ... 4 . [ 5 ] . 6 . 7


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: