eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaPIC vs AVRRe: PIC vs AVR
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!news.internetia.pl!not-for-mail
    From: Sylwester Łazar <i...@a...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: PIC vs AVR
    Date: Fri, 4 Apr 2014 10:48:27 +0200
    Organization: Netia S.A.
    Lines: 75
    Message-ID: <lhlsfa$be0$1@mx1.internetia.pl>
    References: <533ddbbb$0$2158$65785112@news.neostrada.pl>
    NNTP-Posting-Host: 77-253-151-203.adsl.inetia.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset="utf-8"
    Content-Transfer-Encoding: 8bit
    X-Trace: mx1.internetia.pl 1396602154 11712 77.253.151.203 (4 Apr 2014 09:02:34 GMT)
    X-Complaints-To: a...@i...pl
    NNTP-Posting-Date: Fri, 4 Apr 2014 09:02:34 +0000 (UTC)
    X-Notice1: This post has been postprocessed on the news.internetia.pl server.
    X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200
    X-Tech-Contact: u...@i...pl
    X-Newsreader: Microsoft Outlook Express 5.00.2615.200
    X-Priority: 3
    X-Server-Info: http://www.internetia.pl/
    X-MSMail-Priority: Normal
    X-Notice2: Subject line has been filtered and any Odp: strings removed.
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:662237
    [ ukryj 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: