eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaPIC vs AVR › Re: PIC vs AVR
  • Data: 2014-04-04 10:48:27
    Temat: Re: PIC vs AVR
    Od: Sylwester Łazar <i...@a...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    > Proszę o jakieś opinie.
    >
    > Pozdrawiam
    > jp
    Wydaje mi się, że praca z kompilatorem (C czy czymkolwiek w przyszości, co
    też nie będzie spójne),
    jest jak praca z drugim programistą.
    Toż przecież kompilator też napisał człowiek.

    Wygląda mi na to, że decydując się na C, zgadzasz się jak gdyby na pracę w
    grupie.
    I naturalnym będzie, że są różnice w wizji - jak to ma działać.

    Inny kompilator - inny programista.

    Zmieniając kompilator, to tak jakbyś zmieniał współpracownika.
    Nowy może być lepszy, ale te "docieranie".
    Dlatego bardzo rozsądne wydaje mi się to co robi MAREK:
    "nie zmieniam kompilatora używanego latami,
    przetestowanego na wszelkie możliwe sposoby i działającego prawidłowo
    (C18} nagle na inny (XC8)"
    Zna jego wady i zalety i pracuje mu się z nim skutecznie.

    Jeśli chodzi o Microchip, to sytuacja jest wydaje mi się jeszcze gorsza.
    np. z ostatnich dni.
    Chciałem sobie zrobić sortowanie napięć.
    Bąbelkowe - najprostrze, ale nie wypada, bo niemal prawie najgorsze z
    możliwych.
    No to quic sort.
    Fajnie. Biorę C32 i jest piękna funkcja qsort() w bibliotece. Ale ja mam
    18F.
    W C18 już jej nie ma.
    Lepiej jednak mi pasuje metoda zliczania.
    Myślę sobie - co za problem - kopiuję z Wikipedii i mam.
    Jednak coś mnie zatrzymało. Jak to będzie działać na 8-bitowym z rekordami
    danych, bo oprócz wartości napięć są i ich adresy?
    Musi być to strasznie czasochłonne i nadmiarowe zrobić na 8-bitówce.
    Więc zrobiłem w asm. Zaraz uruchomię.
    Nie zdecydowałem się w pierwszej kolejności w C i podpatrzeć, tylko
    sprawdzić od razu w ASM nie sugerując się.
    Jak to zrobię zapuszczę w C18 poniższy fragment z Wikipedii i porównam.
    W międzyczasie, jakby mi ktoś powiedział, czy widzi jakieś spowolnienia w
    tym kodzie, to byłbym wdzięczny.
    S.



    # variables:
    # input -- the array of items to be sorted; key(x) returns the key for
    item x
    # n -- the length of the input
    # k -- a number such that all keys are in the range 0..k-1
    # count -- an array of numbers, with indexes 0..k-1, initially all zero
    # output -- an array of items, with indexes 0..n-1
    # x -- an individual input item, used within the algorithm
    # total, oldCount, i -- numbers used within the algorithm

    # calculate the histogram of key frequencies:
    for x in input:
    count[key(x)] += 1

    # calculate the starting index for each key:
    total = 0
    for i in range(k): # i = 0, 1, ... k-1
    oldCount = count[i]
    count[i] = total
    total += oldCount

    # copy to output array, preserving order of inputs with equal keys:
    for x in input:
    output[count[key(x)]] = x
    count[key(x)] += 1

    return output

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: