Właśnie na macierzach to robię. Jednak ilość mnożeń jest dość spora. Dodatkowo u mnie obliczenia wykonywane są na floatach, co także obciąża dość mocno procesor, nawet biorąc pod uwage moją 32bitową architekturę. Innym rozwiązaniem jest zaimplementowanie fixed pointa i wtedy całość sprowadza się do obliczeń na intach, co wg moich testów o 97% skróci...
W sumie radix4 dzieli sygnał na 4. Użyj radix2 aby obsłużyć 512 próbek. Użyj układu z FPU lub rób obliczenia na fixed point aby przyśpieszyć obliczenia
Główny mikrokontroler to Puya PY32F002AF15P6TU, używana jako PY32F030. Wszystkie sztuki jakie sprawdziłem działały, ale producent nie gwarantuje istnienia peryferiów których używam. Czasami pomylą się z nadrukami i to w seriach. Zdarza się ;) Przejrzałem kod na githubie. Szacun. Zdaje sobie sprawę, że zastosowany filtr dolnoprzepustowy absolutnie nie...
Jeśli wyrzucisz float to musisz zastosować triki z fixed point math. Czyli część całkowitą uzyskujesz dzieląc np. przez 100, a część ułamkową przeprowadzając operację modulo 100. No i nie możesz dać od razu lcd.print, bo najpierw trzeba sformatować to co chcesz wyświetlić, przygotowując łańcuch funkcją sprintf.
Witam serdecznie, Nie wiedzialem gdzie to opublikować więc zdecydowałem się tutaj jako ze temat jest zwiazany z akustyką / elektroniką i przetwarzaniem sygnałów. Czy ktoś mógłby mi podpowiedzieć jak tłumaczy się na polski "fixed-point devices" oraz "embedded fixed-point devices". I czy telefon komórkowy może być takim właśnie urządzeniem fixed point....
Co do zmiennego przecinka - jeśli ARM nie ma FPU to jest to tak samo prawdziwe dla ARM jak i AVR. Bezedura (; Po co mam kombinować bezsensownie jak coś policzyć na liczbach całkowitych, skoro układ ma prawie 100MHz i nawet bez FPU mogę sobie takich operacji wykonywać kilkadziesiąt-kilkaset tysięcy na sekundę? Kiedyś pisałem dosyć skomplikowany algorytm,...
Kulka wlatująca w przeszkodę to najpewniej efekt pracy na intach. Jesli miałbyś FPU, to problem byłby rozwiązany - po prostu brakuje Ci ułamków... Spróbuj wykonywać operację na u64 fixed point, przesuwając przecinek na np 40sty bit -> Q23.40... Funkcje trygonometryczne powinieneś wtedy tez mieć stablicowane w tym formacie, ale dodatkowo owinąć LUT w...
Kupiłem dwa Ovislinki: • Wl-5450AP - jako client wifi oraz • WL - 1500R - router Mam problem z tym pierwszym, a mianowicie nie potrafię podłączyć się jako klient do sieci... Używam funkcji Client, MAC Clone i mam wpisany adres karty radiowej, której wcześniej używałem, klucz wep oraz kanał nadawania są poprawne... W konfiguracji pokazuje...
To może ci wcale float nie jest potrzebne, można użyć fixed point? Ew. jak pisałem - rozbij proces konwersji, tak, że najpierw robisz zaokrąglenie, a potem konwersję. Musi być float, wartości muszą być wyświetlane z różną precyzją (poprzednio podałem tylko przykład dla formatu "0.00"). W jaki sposób zrobić zaokrąglenie, powiedzmy to 2-ch miejsc po...
To może powiedz to co chciałbyś osiągnąc przez te testy. Jaki algortym chcesz zamplementować?
Witam mam jakąś zaćmę umysłową albo niewiem co ale prosty program nie ma ochoty mi działać oto program : ----------------------------------------... org P:$100 move #$10,x1 ; liczba 1 do x1 move #$20,y0 ; liczba 2 do y0 move #0,b ; wyzerowanie rejestru b mac y0,x1,b ; wymnoz y0 przez x1 i dodaj do b ----------------------------------------...
(at)ejcon https://docs.espressif.com/projects/esp-... Avoid using floating point arithmetic float. Even though ESP32-S3 has a single precision hardware floating point unit, floating point calculations are always slower than integer calculations. If possible then use fixed point representations, a different...
witoldwitoldowicz - trochę udziwniasz, nie prościej sumowanie zrobić w przerwaniu? goldcap - zajmuje sporo bo używasz arytmetyki zmiennopozycyjnej. Jaki sens jest mnożyć razy 1.1 a potem razy 1000? Nie lepiej od razu pomnożyćrazy 1100? Jeśli nie wyświetlasz nic po przecinku to dzielenie przez 1024.0 też sensu nie ma, lepiej przez 1024. A jeśli masz...
Tak mi się przypomniało, że ludzie kórzy siedzą w branzy od lat i wygląda na to, że się chociaż trochę znają nie nazywają tego "protezami" ale "fixed point math": http://www.embedded.com/electronics-blog... Sorry, ale fixed point nie został wynaleźiony do formatowania liczb dla printf/sprintf. Przechowywanie pomiaru...
http://en.wikipedia.org/wiki/Infinite_im... Nieskończona jest odpowiedź na impuls, a nie na jakiś "nieimpulsowy" sygnał. Na wiki fajnie porównali do prostego filtra RC, który też ma nieskończoną odpowiedź, tyle że malejącą exponencjalnie. Tak jak napisano na wiki, projektowanie filtra IIR jest bardziej skomplikowane, może on być niestabilny,...
Jak chcesz lepszy kod (szybszy i mniejszy) to użyj fixed point zamiast floatów. Z tego, co pamiętam AVRGCC nie w pełni wspiera fixed point. Poza tym trudno mi ocenić, jak na tym ucierpiałaby dokładność. możesz podglądnąć listę funkcji zdefiniowanych w danej bibliotece poleceniem avr-nm biblioteka.a (ogólnie poleceniem nm z toolchaina) Dzięki. Sprawdzę....
szczególnie że ani gcc, ani icc natywnie dla x86 nie wspierają tej arytmetyki. Nie muszą, ponieważ w wypadku fixed-point jest stosowana arytmetyka na liczbach całkowitych. Podobne listy parametrów dość bogate w float i bez fixed point Wcale mnie to nie dziwi. Czym innym jest ekspozycja parametrów interfejsu w programie/bibliotece/funkcji, a czym innym...
No więc jest na to prosty sposób i zwie się fixed-point math. Zakładasz, że liczba jest zapisana w formacie np. 4:4 bity , gdzie 4 wysokie bity to liczba całkowita w przedziale 0-15 , a 4 niższe to ułamek w przedziale 0/16-15/16 Jeżeli mnożysz liczbe 8:0 przez 4:4 to masz wynik 12:4 i wszystko cacy - masz swój wynik i wartość ułamkową. Jeżeli chciałbyś...
Dzięki za miłe słowa. Ale wracając do tematu - to czy w 4ms się wyrobisz zależy od tego jak ta część kodu jest napisana. Zauważ, że I2C jest wolne, powiedzmy, że je taktujesz 100 kHz, a więc wysłanie/odbiór jednego bita trwa 10us. Powiedzmy, że odczytujesz około 20 bajtów, to daje nam 20*9*10us=1,8ms na samą transmisję I2C. Co gorsze, zmiana procka...
To jeszcze dodam, że żadne kombinacje nie są potrzebne, to co pisze Freddie jest ok, ale avr-gcc wspiera fixed-point arithmetic - sprawdź czy twój kompilator jest skompilowany z opcja --enable-fixed-point, jeśli tak to możesz stosować różne typy stałopozycyjne. Jeśli nie to ściągnij nowszy toolchain od Atmela.
Witam, Nie dolewając oliwy do ognia - każdy typ arytmetyki ma swoje miejsce. Gdy maksymalny zakres liczb jest znany, lub obliczenia wymagają wysokiej precyzji, korzysta się z arytmetyki fixed point (albo integer). Floating point jest wygodny, ale ma swoje wady (utrata precyzji przy krańcach zakresu liczb). Polecam lekturę dokumentu [url=http://www.physics.ohio-state.edu/~...
[syntax=c]float temp = 0; temp = (float)(pad[0]+(pad[1]*256))/16; dtostrf(temp,1,1,buf);[/syntax] Dodam, że to kosztuje cię trochę KB kodu, sporo pamięci i sporo cykli, gdy wystarczy użyć, albo notyfikacji stałoprzecinkowej (fixed point) // nota bene u mnie mimo --fixed-point-enable najzwyczajniej NIE DZIAŁA (kompilator pluje się o nierozpoznany typ...
Powiedz do czego jest ci potrzebna taka precyzja? Bo w 99% przypadkow problem da sie rozwiazac inaczej. No i zawsze mozesz przejsc na fixed point arithmetics.
Niekoniecznie, jeśli użyjesz artymetyki stałopozycyjnej - zobacz fixed point math w gcc. Wersja toolchaina z AS6 ma obsługę tego. Zyskasz na wielkości kodu i skróceniu obliczeń.
Przepraszam za odgrzewanie starego tematu, ale sprawa jest istotna z punktu widzenia bezpieczeństwa pożarowego. Termoregulator typu 161-491 ma dwie funkcje - regulacja temperatury i zabezpieczenie samego siebie i sprzętu przed pożarem. https://www.intercontrol.de/en/control-t...
A jak myślisz, dlaczego Eric chce wypuścić nowe WinAVR?:) Jeśli zależy ci na dodaniu arytmetyki stałopozycyjnej to ściągnij skrypty Bingo i dodaj patche z Atmela dotyczące fixed-point (swoją drogą to nie są ich patche ).
Jeśli chodzi o dekoder MP3 na mikrokontrolerze (stały przecinek, fixed point) to jest ciekawe rozwiązanie biblioteki pod nazwą mad Do znalezienia na sourceforge.
To może poszukaj o standardzie IEEE 754 (to do zapisu liczb zmiennoprzecinkowych), oraz hasło fixed point (to do stałoprzecinkowych). W obu z nich możesz zapisywać ułamki, oba z nich dają się przedstawić w postaci innej niż dziesiętna
Texas Instruments TMS320 is a blanket name for a series of digital signal processors from Texas Instruments. Outside the main series: * TMS320C1x, the first generation 16-bit fixed point DSPs. All processors in these series are code compatible with the TMS32010 o TMS32010, the very first processor in the first series introduced in 1983, using external...
W zasadzie mozna sprobkowac połowe połówki sinusoidy. pamięć dwuportowa czyli adresy i dane ? Jak zamodelowac ta pamiec, na case ? Mysle ze uzyje integer 32 b przerobiony na fixed point 21b na liczbe całkowita 10b na ulamek.
Q15,Q31 itp to reprezentacja fixed-point. Możesz zerknąć na opis IQmath od TI: http://www.ti.com/lit/sw/sprc990/sprc990... . Bardzo przydatne dla procesorów bez FPU.
Analogicznie możesz aktywować to w keil-u: [url=http://www.keil.com/support/man/doc... Czy te zmienne liczbowe będą miały ograniczony zakres? Może bardziej tu się nada fixed-point?
No niestety jest ten pokręcony kod z datasheeta, on jeszcze poprawia to o wartości kalibrujące odczytane z czujnika. Jeżeli czas przetwarzania nie jest problemem to cokolwiek da radę jeśli biblioteka do floatów się zmieści, jak nie to trzeba przerobić na fixed-point. (btw. dlaczego robisz na 51? okropna architektura, i jeszcze nie ma do tego żadnego...
Witam ponownie. Uporałem się z podwójnym buforowaniem, przez co obracający się sześcian wygląda przyjemnie, dopisałem też kilka efektów: Oto cieniowanie Gourauda ze światłem świecącym z przodu. Świetna robota. Do obliczeń 3D używałeś zmiennego przecinka (float/double w C) czy arytmetyki fixed point?
Właściwie wszystkim. Porównaj spisy treści - w II wydaniu jest sporo więcej, m.in. na temat sterowania matrycami LED, WS2812, piloty w podczerwieni, zegary RTC, w tym data z modułu DCF77, obsługa LCD monochromatycznych z układem ST7565r, wiele tematów jest rozszerzonych, m.in. o debugowanu kodu, fixed-point math, named address spaces itd. W książce...
A te funkcje cos/sin to jakieś wlasne implementacje? Przyjmują one kąt w radianach w postaci fixed point? Bo normalne przyjmują wartość typu float/double, poza tym wymagają załączenia libm (chyba, że używasz gcc>4.7.0). No i stosowanie typu 64 bitowego dla reprezentacji punktu na wyświetlaczu o rozdzielczości 128 pikseli to prawdziwy hardcore :)
Tak jak sivex napisał,zadeklarowałeś A jako integer. Nie pamiętam jak jest w języku basic (odległe czasy), ale w Qbasic są takie deklaracje: INTEGER A 16-bit signed integer variable. LONG A 32-bit signed integer variable. SINGLE A single-precision 32-bit floating-point variable. DOUBLE A double-precision 64-bit floating-point variable. STRING * n% A...
Od avr-gcc w wersji 4.8 wsparcie dla stałoprzecinkowych liczb jest z pudełka. https://gcc.gnu.org/wiki/avr-gcc#Fixed-P... Deklarujesz zmienną typu _Accum i możesz korzystać z wbudowanych operatorów (+-*/) a kompilator sam podstawi funkcje z tej przydługiej listy: https://gcc.gnu.org/onlinedocs/gccint/Fi...
Prawie dobrze. 1. coeff to stała, może być wyliczona przez kompilator. 2. "normalized_frequency" zgodnie z linkiem, który Ci podałem is some frequency of interest, in cycles per sample , which should be less than 1/2 3. Zainteresuj się hasłem "fixed-point arithmetic", unikniesz warningów i przyspieszysz i zmniejszysz kod wynikowy. Albert
spojrz w lewo.... widzisz, na obrazku masz caly tutorial do fixed-point math!:D a co do << i >> , to pisalem ze jest to przesuniecie o x bitow w lewo/prawo wiec x=x<<5; oznacza to samo co przesun x o 5 bitow w lewo wiec z 00000001b po operacji x=x<<5; masz 00100000b
szybka transformana fouriera sygnału dżwiękowego w czasie rzeczywistym Nie rób fft przypadkiem na floatach a fixed point. pamiętaj że 990.0 to nie jest float tylko double, float to 990.0f Wirtualne metody to jedna z tych rzeczy w cpp, które powodują że kod jest wolniejszy niż ten napisany w C :P Jeśli ich naprawdę nie potrzebujesz to nie ma co ich...
To wydaje się być ok, chociaż100 us to sporo. Pokaż jak wygląda wysyłanie i odbiór bajtów i przede wszystkim procedura wyświetlania, bo ciekami mnie jak robisz konwersję na float/fixed point, bo podejrzewam, że tu masz błąd. W przypadku problemu z OW magistrala jest w stanie wysokim, a nie niskim, stąd też powinieneś mieć odczyty typu same 0xff, a nie...
Dane przesyłane w SAS są w formacie BCD. Sama konwersja BCD<->bin nie jest problemem, zwłaszcza, ze dane przesyłane są w postaci 4 bajtów. Jedna owe dane muszę "obrobić". W takim razie wygodniejszym wydaje mi się jednak operowanie na standardowych typach, a konwersja jedynie przy wysyłaniu/odbieraniu. W każdym razie wydaje się to opcja oszczędniejsza....
Nie do końca - wsparcie dla XMEGA jest oficjalnie pod linuksem dopiero w testowej wersji gcc 4.7, a w innych to mniej lub bardziej udane porty łatek z wersji 4.4. Natomiast Atmel daje swój toolchain dla linuksa, szkoda, że nie IDE (ze względu na naprawdę dobry debugger i symulator AVR). A, jeszcze jedno - toolchain Atmela ma wsparcie dla fixed point,...
Akurat zapis na FAT to czasu nie zabiera za dużo. Ale istotnie coś jest nie tak w waszych wyliczeniach. Dla 16 MHz AVRa, masz przy 500sps koło 32000 instrukcji. Podstawowe operacje na float trwają koło 400 taktów, to daje 80 operacji na sampla. Jakieś sinusy itd. to i tak się tablicuje, Przy wykorzystaniu fixed point można zejść do kilkudziesięciu taktów...
Zakup jednej sztuki nic nie da, serwisując trzeba ich zakupić , ja tak bynajmniej robiłem, średnio 50 sztuk. Dlatego ,iż w handlu są tylko te gorsze o dużym rozrzucie oznaczenie łamane przez -2, -3..... ponadto panowie proponuje wnikliwie przyjrzeć się takiej konfiguracji na załączonym schemacie nie bez znaczenia jest oznaczenie elementów skrótem F.P....
Witam, szukam jakiegoś mikrokontrolera z rodziny ARM do projektu inżynierskiego. Moim tematem jest identyfikacja modelu obiektu metodą ARMA + dobór nastaw do regulatora PID i regulacja. Próbowałem projekt wykonać na Atmedze128 i niestety wysiada. Problemem jest to, że obliczenia muszę przeprowadzać na dość dużych liczbach, dlatego zaimplementowałem...
hmm... w temacie masz fixed-point arithmetic, a piszesz o liczbach zmiennoprzecinkowych, musisz się zdecydować, generalnie jeśli decydujesz się na zmienny przecinek to musisz wykorzystać np. Dodano po 1 oba rozwiązania są syntezowalne
Całkiem fajny układ. Jak na mój gust dobrze zbudowany PID (biorący pod uwagę fizyczne właściwości ciało-grawitacja) powinien sobie z tym poradzić. Zawsze można go trochę podrasować. A co do twoich pytań: 1.Float w procesorze jest tobie na grzyba potrzebny. Masz fixed-point math jak i emulację typu float w softwarze. Problem jest raczej na tyle prosty,...
JTAG jest wyłaczony, poza tym 'DAC' jest na porcie D zrobiony. h mam D9 l mam 6E e (nie wiem do czego one) mam FF Dodano po 1 Zaczynam tracic wszelka nadzieje. Poza tym zupełnie dziwne dla mnie jest dlaczego funkcje: /*/=== fixed point mult =============================== int multfix(int a, int b) { int result1 = a * b; int result2 = (a>>8)...
fixed variable wzmacniacz fixed fixed removable
układ synchroniczny rejestrator goclever resetowanie zmywarka bosch
instalacja wodorowa miernik rezystancji izolacji
Niedomykający i cieknący dach w Peugeot 206 CC - przyczyny i rozwiązania Koszt wymiany matrycy w telewizorze LG 55SJ800V