Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Obliczenia procentowe na platformie AVR (AtMEGA128)

Adrian1978 14 Sie 2006 02:32 1538 7
  • #1 14 Sie 2006 02:32
    Adrian1978
    Poziom 9  

    Witam wszystkich WAS!
    Czy ktokolwiek próbował obliczać wielkości procentowe na AVR używając asemblera AVR? Czy pozostaje mi tylko C?

    Proszę o jakiekolwiek info.

    Kilka informacji wyjściowych dla zawężenia tematu:

    -Rozbudowany system pomiarowy z procesami autokalibracji,samotestowania itd.Platforma AtMEGA128 TQFP

    -ADC dokonuje pomiaru,wynik pomiaru jest liczbą 8 lub 12 bit (kwestie częstotliwości próbkowania,tryby pracy itp - tu nieistotne)

    -Z tego wyniku (liczby) muszę wyliczać procent (np.7%,2%)

    -W przypadku wyniku jako liczby ułamkowej chcę zaokrąglić wynik do liczby całkowitej

    -Kilka wyników pakuję do kolejnych komórek RAM i uśredniam

    -Potrzebną wartośc liczbową używam po procesie próbkowania,uśredniania i zaokrąglania.

    - Całkowity przedział wartości mierzonych mieści się od 0,000V do +10,000V (zakładam to na etapie projektowym od strony analogowej,więc mogę to dosyć wygodnie i elastycznie zmieniać)

    -Częstotliwość przelicznia nie musi być duża,mogę dokonywać przeliczeń np.co 10 proces uśredniania

    -Algorytm powinien być "elastyczny",tzn.wartość procentowa nie jest stała,czasem z danej liczby muszę obliczyć np.2% a czasem 15%


    Czy ktokolwiek mógłby napisać na ten temat cokolwiek?Byłbym bardzo wdzięczny za okazaną pomoc!!!

    P.s.Używam właściwie tylko asemblera na różne platformy,piszę w nim od lat i,co tu dużo ględzić - jestem już wprawiony w kodowanie tym językiem,jednak nie znam na dzień dzisiejszy języka C(nic prócz naprawdę podstaw i kilku różnych informacji).Oczywiście,jeśli nie pozostanie inne wyjście,sięgnę po C,jednak to sporo czasu a projekt nabrzmiały(...)

    Są to prace związane z magnetodynamicznym oraz elektromagnetycznym pomiarem cieczy (Faraday)

    Z wielką ciekawością będę zaglądał na Państwa sugestie w tej sprawie,jako że po raz pierwszy (naprawdę dziewiczy) jestem na "ELEKTRODA.PL"

    Gorąco pozdrawiam,Adrian

  • #2 14 Sie 2006 11:45
    McRancor
    VIP Zasłużony dla elektroda

    W asemblerze będzie to potworna mordęga moim zdaniem, jak nie chcesz uczyć się C, to może Bascom? Masz dużo miejsca na kod,a w bascomie to jeden dzień nauki i jedne dzień pisania

  • #3 14 Sie 2006 12:06
    Dexter77
    Poziom 28  

    Ewentualnie zrobic tablice stalych przeliczajaca na procenty. Pamieci Flash masz bardzo duzo wiec taka tablica z 1024 wartosciami spokojnie sie zmiesci. A po co robic takie dokladne pomiary jak wykorzystujesz tylko 1/10 tej dokladnosci. 1024/100%
    Pozdrawiam
    Dexter

  • Pomocny post
    #5 15 Sie 2006 00:41
    Dar.El
    Poziom 40  

    Witam
    Stosuję obliczenia numeryczne tylko w asemblerze z całkiem dobrymi efektami. Na stronie ATMELA można znaleźć gotowe procedury dzielenia i mnożenia wielokrotnej precyzji, jest pełno stron z przykładami działających procedur. Znalazłem nawet pierwiastkowanie (nie potrafię zrozumieć algorytmu :cry: ). Pisanie programów w asemblerze daje nieograniczone możliwości, na małych procesorach można zbudować "wielkie" urządzenia :D .

  • #6 16 Sie 2006 07:04
    Adrian1978
    Poziom 9  

    Witam ponownie i dziękuję za szybki odzew!
    Bardzo mi pomogliście!

    Pan McRancor:
    Cóż,nie wykluczam nauki C,wręcz przeciwnie - myślę że prędzej czy później będzie to konieczne (wszak wiele aplikacji wygodniej i szybciej tworzyć w C niż męczyć się w Asm).Co do mozołu - zgadzam się w całej rozciągłości...Dziękuję za sugestie!
    Co do Bascom - traktuję ten język trochę po macoszemu - uważam (widziałem jego możliwości) że jest to doskonały sposób dla początkujących którzy oczekują "łatwego i bezbolesnego" startu w temacie programowania mikrokontrolerów.Ma on jednak spore wady i desygnowany jest (moim skromnym zdaniem) dla projektów "15 minutowych" dla tych najmniejszych kontrolerów ,choć na pewno istnieją programiści krórzy się ze mną nie zgodzą (miałem okazję podziwiać efekty pracy programów naprawdę dopracowanych).

    Pan Dexter77:
    Tablica jest pewnym i znanym rozwiązaniem problemu - myślałem o niej pierwotnie.Być może jeszcze wrócę do zastosowania jej w tym konkretnym przypadku.Jednak celem wyjaśnienia : w A128 pamięci programu jest rzeczywiście sporo, biorąc pod uwagę że chip jest pustawy...czego nie mogę powiedzieć o swoim systemie.Oczywiście teblica jeszcze "wejdzie", jednak to ostateczność.

    Pan Sawitar:
    Dziękuję za link,zapoznaję się właśnie z nim.Nie byłem świadom istnienia rozwinięcia takich tematów w "Elektrodzie",tym bardziej cieszę się z już przecieranych ścieżek...Pozwoliłem sobie na przesłanie punktów za pomoc dla Pana.Pozdrawiam serdecznie!

    Pan Dar.El : W pełni zbieżna opinia z moją wlasną!Napisałem już bardzo wiele najróżniejszych algorytmów w *.asm (pracuję jako niezależny konstruktor od wielu lat) i śmiem twierdzić,że własciwie tylko Assembler oferuje PEŁNĄ kontrolę nad systemem.Niezrównana prędkośc i wydajność kodu przy minimum objętości.Jest to jeden z powodów,dla których cenię język i tworzę w nim od lat.Oczywiście nie omieszkam zapoznać się z ofertą pomocy od producenta,dziękuję za info i chcąc wyrazić swoją wdzieczność - również przesyłam punkty za pomoc.

    Raz jeszcze dziękuję za opinie w tej sprawie,wszystkim Państwu.
    (Bedę śledził ewentualne dalsze odpowiedzi w tej sprawie)

    Serdecznie pozdrawiam,Adrian

  • #8 02 Sie 2017 12:37
    Adrian1978
    Poziom 9  

    Witam Was , temat "leżał" już długo jako otwarty, postanowiłem zamknąć - po prostu przesiadłem się na język C i takie obliczenia po prostu stały się łatwe i przyjemne :) Pozdrawiam każdego uczestnika dyskusji i bardzo serdecznie dziękuję za poświęcony czas i radę !

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME