Post musi chyba powędrowac do działu DSP - tam chłopaki doradzą dokałdnie jaki filtr do czego wykorzystać. Generalnie takie filtry polegaja na sumowaniu aktualnej wartości z poprzednia w odpowiedniej wadze (mnożniku) i ewentualnie jeszcze poprzednich an tej samej zasadzie. Dlatego tam definijuje sie ile ma być komórek X(n-1..y). O ile dobrze pamietam...
Przerwanie nie powinno byc zgubione, procesor przerwania odbiera tylko nie wywoluje procedur obslugi a stan przerwan zapamietuje w wewnetrznych przerzutnikach i jak tylko przerwania sa odmaskowane to wykonuje ich procedury obslugi. Oczywiscie stan ten nie moze byc dlugi dlatego trzeba to robic na czas najkrotszy jak sie da, nie ma innej mozliwosci synchronizacji...
Czy takie rozwiązanie będzie działać? czy można to zrealizować w lepszy sposób?? Będzie dobre, wiele rzeczy się tak robi, żeby uniknąć działania na float'ach. [syntax=c] while ( !(UCSRA & (1<<RXC)) ); [/syntax] Co to robi w przerwaniu? Przecież jak Ci się już wywołało przerwanie to nic nie trzeba sprawdzać. Co robi ta linijka? [syntax=c]...
A jakby taki pomysł wypalił: Ustawić Timer jako Input Capture reagującego na obydwa zbocza sygnału. DMA skonfigurować na żądania od Timer i jako Circular buffer, Periph -> Memory. Analizować w wątku bufor kołowy z DMA, ślędząc licznik transferu i ładować do innego bufora wykryte stany 1 i 0 na podstawie róźnicy czasu obydwu zbocz. Z innego wątku ściągać...
Witam. Moja propozycja jest następująca: 1. Bufor kołowy jak już wcześniej koledzy zaznaczyli 2. Format ramki telekomunikacyjnej <STX> <Byte1> <Byte2> <CRC> <ETX> I w tym momencie niczego nie pogubisz nie pozamienia Ci się baj pierwszy z drugim itd. Nie wiem czy tym jesteś to w stanie w labview tak zmodyfikować aby sobie...
chodzi mi o sposób na zatwierdzenie wprowadzonej liczby, coś w stylu przycisku enter, oraz o samo wprowadzanie cyfr jako liczba 2 lub 3 cyfrowa. Do takich celów robię sobie bufor kołowy na kilka znaków, w tym wypadku wystarczy na 4. Każdy znak z klawiatury zapisuję do bufora. Pojawienie się określonego znaku (np #) konwertuje liczbę do zmiennej. [syntax=c]...
String to znaki ASCII, więc ustawiasz sobie 2 znaki (2 wartości bajtu) spoza używanego obszaru ASCII i traktujesz je jako stop i start. Algorytm wygląda tak: 1. Czekam na bajt start (lub wykrywam jego nadejście w odpowiednim przerwaniu) 2. Otrzymałem bajt start - zaczynam odbiór 3. powtarzam w pętli (dopóki nie otrzymam bajta) stop: a) odbierz znak...
Jeśli Arduino to masz bibliotekę do kart SD, schematy podłączenia znajdziesz w internecie bez problemu, musisz tylko uważać na to, ze karta SD zasilana jest napięciem 3,3V i w takim standardzie przyjmuje też sygnały - czyli bezpośrednie podpięcie jej do Arduino pracującego na 5V uszkodzi ją. Warto też pamiętać, że karta pobiera 100mA lub więcej "w szpilkach"...
Witam Mam prośbę czy mógłby mi ktoś ze znających się opisać lokowanie bufora kołowego najlepiej na podstawie procesora C5402. Potrzebuje go opisać, a nie znam się na DSP. Proszę o pomoc.
[syntax=c]RCC_APB2PeriphClockCmd(RCC_AHB... ENABLE);[/syntax] Zdecyduj się, czy konfigurujesz szynę APB2, czy AHB?
https://obrazki.elektroda.pl/8545401100_... Mój poprzedni temat o Pierwsze kroki Jakiś czas temu publikowałem temat o https://obrazki.elektroda.pl/4535548900_... Wyszukujemy DHT. Biblioteka DHT wymaga też dodania Adafruit Unified Sensor Library, więc dodajemy obie biblioteki. Najpierw Unified Sensor: https://obrazki.elektroda.pl/1839946000_...
http://obrazki.elektroda.pl/9114017400_1... Zanim Fukushimę nawiedziła fala, zaczytywałem się m.in. w stronie c4r0 o promieniowaniu jonizującym. Tak jakoś mnie temat zainteresował, a że lubię konstrukcje nietypowe to po małym rozpoznaniu postanowiłem zrobić dozymetr, który będzie oferował ciut więcej niż klasyczne urządzenia pokazujące...
http://obrazki.elektroda.pl/9221069900_1... Witam. Zdecydowałem się zaprezentować projekt i wykonanie zestawu zasilacza i lutownicy, zamkniętych w jednej obudowie. Potrzebowałem urządzenia które mogłem zabrać ze sobą w „teren”. Zaczynając od zewnątrz, obudowa upolowana jakiś czas temu na portalu aukcyjnym, za niewielkie...
brakuje "pół HEXa" I nadal nie daje ci to do myślenia ? Jeżeli korzystasz z arduinowej funkcji Serial.read() do odczytu bajtów z UART, to jak najbardziej może się zdarzyć, że jakiś bajt zostanie zagubiony. Jest to zależne od "tempa" z jakim funkcja Serial.read() opróżnia bufor kołowy dedykowany dla UART. (at)szczukot Pomyśl, co read() zwraca w sytuacjach...
A to nie chodzi przypadkiem o to, że część analogowa ma z tych 2mVpp zrobić np 1Vpp, a dopiero cyfrowa ma zrobić MAF? Dodatkowo w części analogowej zrobić filtrowanie zapobiegające aliasingowi... Procesor ma żadne wymagania. - Bufor kołowy długości N, wyzerowany, - pointer wskazujące miejsce zapisu nowej próbki do tego bufora - SUMA = 0 na początek....
https://obrazki.elektroda.pl/5371288300_... Witajcie moi drodzy. Przedstawię tutaj teorię i praktykę implementacji wsparcia protokołu TuyaMCU. TuyaMCU to protokół oparty o UART, służący do komunikacji modułu WiFi z głównym mikrokontrolerem urządzenia Tuya. Protokół ten wykorzystywany jest w wielu produktach IoT, m. in. w ściemniaczach,...
https://obrazki.elektroda.pl/7640927000_... Dzisiaj pokażę jak można postawić na Arduino R4 WiFi prostą stronę WWW wyświetlającą zebrane przez nas pomiary na ładnych, czytelnych wykresach. Być może przyda się komuś to do projektu typu czujnik temperatury, pomiar zużycia energii czy tam stacja pogodowa. Wykresy będzie rysować dobrana...
https://obrazki.elektroda.pl/3803750000_... Witajcie moi drodzy Przedstawię tutaj mój sieciowy sterownik przekaźników kompatybilny z Home Assistant poprzez Tasmota HTTP. Sterownik oparty jest o PIC18F67J60 i dodatkowo oferuje m. in. odczyt temperatury, budzik, przyciski, niezależny panel WWW oraz szerokie możliwości konfiguracji. Wstęp...
https://obrazki.elektroda.pl/5461019800_... Opiszę tutaj proces implementacji wysyłania sygnału IR w oparciu o PWM i timer. Wysłany tak z mikrokontrolera sygnał będzie w stanie kontrolować klimatyzację. Dodatkowo użyty format sygnału będzie zgodny z tym co przechwytuje Flipper Zero, co pozwoli na wykorzystanie przechwyconych w ten...
(at)ElektrodaBot trochę poprawiłem stepgen.c, przeanalizuj go i jeśli ma błędy, wygeneruj nowy. Bezpośrednia odpowiedź na pytanie Poniżej prezentuję przykładowy, kompletny plik „stepgen.c”, który integruje input shaper (ZV lub MZV) pracujący domyślnie z częstotliwością rezonansową 22,2 Hz i tłumieniem 0,1. Kod zawiera bazową funkcjonalność stepgen...
http://obrazki.elektroda.pl/3025550100_1... Mając do dyspozycji jedną matrycę 8x8 czerwonych diod LED o boku 60,2mm oraz mikrokontroler ATtiny861 pozostałe po innych projektach postanowiłem zbudować to, co każdy elektronik chociaż raz w życiu zbudować musi: zegar ;). Ze względu na charakter wyświetlacza miał to być zegar binarny, ale...
Akurat do LCD Ale ten bufor kołowy jest używany na początku do UART'a. Plus przy samej konstrukcji bufora, jeśli już piszemy artykuł, trzeba wspomnieć o takim fakcie...
Ja kiedyś na AVRku zrobiłem bufor kołowy zapis do końca bufora a potem od zera. Jeden wskaźnik na zapis do bufora (wyzwalanie pomiaru z timera), jeden wskaźnik na odczyt (w wolnej chwili procesora) zapis inkrementował jedną zmienną a odczyt wysłanie RSem dekrementował (jak zmienna za wysoko urosła to przepełnienie bufora (usart się nie wyrabiał ) Ograniczenie...
Witam, można również całą tę pamięć potraktować jak bufor kołowy i zapisywać kolejne komplety danych, każdy z nich opatrując jakimś "time stamp" ewentualnie "count stamp" dla rozpoznania tego, który jest najnowszy. Pozdrawiam
Bufor kołowy ma mieć ogon i głowę. Każdy zapis do bufora ma zwiększać wartość głowy a każdy odczyt ma zmniejszać. Jak się zrównają- to alarm.
Całego bajtu- i wtedy odczytujesz go w czasie pojedynczych us. Mało tego- możesz to zapisać w bufor kołowy i odczytywać po kolei.
Być może rejestr kołowy to to samo co rejestr przesuwny. Tylko że nikt tutaj o takim nie pisał. Pisał za to o buforze kołowym. A to oczywiście jest co innego. Bufor kołowy to bufor w którym przemieszczasz się po bajtach za pomocą wskaźników (bez przesuwania elementów bufora). Z kolei rejestr przesuwny to: Po pierwsze operuje na bitach a nie bajtach....
to co kolega zrobił, to jest bufor kołowy. Takie algorytmy średniej kroczącej robi się właśnie w ten sposób, więc pomysł kolega miał dobry. W buforach kołowych operuje się na wskaźnikach, tworząc tak na prawdę listę kierunkowa. Niech sobie kolega poczyta jak to się dokładnie koduje.
To jest połączenie trzech koszmarków: - bufor kołowy o wielkości 2 bajty (wtf?!) - chcęć ustawiania wielkości bufora kołowego na 3 bajty (wtf? * wtf?) - if w obsłudze bufora... [syntax=C] #define BUFSIZE 32 //musi być potęgą dwójki (np. 128, 256, 512, 2048...) unsigned char buf[BUFSIZE]; unsigned int readptr=0,writeptr=0; __inline void push(u8 byte)...
.które z kolei są obsługiwane też przez DMA (request RXNE), które chodzi w trybie circular i zapisuje takie paczki po 3 bajty w większy kołowy bufor. Jaka jest wielkość tego większego kołowego bufora i czy jest podzielna przez 3? Co ile sekund bufor się zawija?
No to czemu uważasz, że korzyści wynikające z użycia semaforów nie przewyższają kosztów ich użycia? (; W życiu, w programowaniu, w elektronice, w inżynierii, ..., wszystko jest kompromisem, wydaje mi się jednak, że potencjalne koszty są mniejsze (znacząco) niż potencjalne korzyści. Jeśli koszty są duże, to pewnie dlatego, że starasz się np. odbierać...
Problemem dla mnie w moim projekcie jest to, że ramki które składam i wysyłam mają klika długości (12B, 20B,48B i 248B). W związku z tym może lepszym rozwiązaniem będą osobne bufory statyczne dla każdego typu ramki np. bufor kołowy z tablicami dwuwymiarowymi?
Niepotrzebna komplikacja. Wystarczy zaświecić jedną diodę reprezentującą głowę i jedną zgasić. Czy masz na myśli odświeżanie ekranu? Generalnie tak, można albo zawsze od 0 "rysować" scenę, albo robić tylko zmiany. Swego czasu nawet pisałem coś chyba w Pascalu/na Lazarusie z grafiką gdzie nie było double bufferingu i okazało się, że wygodniej jest tylko...
Ok datagramy, 300 us to 0,3 ms. Telegramy są kolejkowane, wprowadziłem już bufor kołowy w obsłudze DMA. Musze tylko to przetestować, mój problem występuje bardzo rzadko, raz na parę godzin, przy wymianie danych co 50 ms.
FIFO, bufor kołowy itp znam. Może źle zrozumiałem pytanie, ale w dalszym ciągu poczekam i może ktoś będzie znał takie coś. Też wydaje mi się to dziwne, jak brakuje pamięci na dane to automatycznie będą tracone.
szymon122 napisał: Jaka prędkość maksymalna jest dla 1, 2 i 4 kanałów? 2M, z tym że, ponieważ atmega ma już mało mocy na przerabianie danych z portów, od 20ksps są zawsze 4. Coś tam jeszcze może pomyśle. No i pomyślałem. Napisałem obsługe dla analizatora szybszych wartości (7 opcji synchronizacji), oraz dodałem 4M: - 1,2,4 kanały 100-500khz bufor kołowy...
Bufor kołowy przydaje się gdy jednocześnie wykorzystujesz dane odbierane i odbierasz, dzięki czemu obsługa odebranej danej może trwać dłużej niż czas do odebrania kolejnej. Ty o ile dobrze rozumiem chcesz odebrać całą paczkę danych i wówczas poddać je odróbce wobec czego wystarczy ci klasyczny bufor.
Wszystkim. Podstawą do parsowania AT jest dobry bufor kołowy i detekcja CRLF. Istnieje wiele rozwiązań pozwalających prawidłowo przetwarzać ten bajzel (swoją drogą paskudny do parsowania), między innymi użycie bufora kołowego z "szukaczem" (już gdzieś pisałem o tym posta). Jak można obsługiwać UARTa sposobem "zwykłym"? Da się inaczej niż przerwania...
nie rzutuje nic na floata. Wczytuje od razu z bufora do i2sa w przerwaniu od i2sa. Zaczynam od 45 bajtu. Słychać tylko szum. Może problem jest z czytaniem wartości z karty w przerwaniu? Może czytanie kolejnej wartości z karty trwa za długo? Mam bufor kołowy 512 i gdy dojdę do jego końca to odczytuje kolejne 512 bajtów pliku wave i wysyłam dalej od początku...
Ten sposób to tryb LinkedList w DMA. Opisujesz listę buforów, które DMA ma wysłać do wybranego interfejsu. Element listy pokazuje na następny bufor, który mechanizm DMA sam sobie wczyta i przygotuje do następnego transferu. Ostatni element listy niech pokazuje pierwszy i masz bufor kołowy... U mnie na SAM3U4(at)96MHz (CM3) transfer 4MBit/s po SSC działa...
No fakt, to jest BASCOM 8051 a nie AVR. :oops: Ale idea jest taka sama. Trzeba zrobić sobie bufor w pamięci (np. tablica bajtów - Array) i dwa wskażniczki: Zapis, Odczyt; które będa sobie biegać w kółko po tablicy - tworząc tym samym bufor kołowy (http://en.wikipedia.org/wiki/Circular_b... Zapis będzie wskazywał element, który aktualnie można zapisać....
marmur99 - nie słyszałem o brzytwie Ockhama. Zgadzam się z Tobą (napisałem to w poście wyżej), że przy megahercowych częstotliwościach to nawet DSP będzie miał problemy, nie mówiąc już o '51. Metoda prostokątów to zwykłe uśrednianie, ale jak to zaimplementować, żeby to chodziło w real-time? Trzeba by zrobić bufor kołowy i uśredniać konkretną liczbę...
a czym sie rózni tablica volatile uint8_t od char[] wg Ciebie.? Czy komórka pamieci , w której uint8_t jest inna niz komórka w której jest char? Oczywiście używajac sscanf musisz mieć pewnosć!! ze masz w tym buforze cały komunikat a nie np połowe, a następna połowe bedziesz skanowac w drugim rzucie - tak sie nie da.. Osobiście sscanf bym nie użył do...
Kolega zrobi tak: Nadawanie: Organizujemy bufor kołowy (tablica w RAM np. 1KB i dwa indeksy - zapisu i odczytu). Procedura UartSend(unsigned char* txt, int size) kopiuje dane z txt do bufora zapisu. Po każdym bajcie podbija się indeks zapisu (i zawraca na początek bufora gdy dojdzie do końca). Po przepisaniu danych zabiera się bajt z pozycji indeksu...
W moim przykładzie realizowałem fft (za pomocą cmsis'a, 64 próbki), atan2 (na fix pointach), filtr fir w przerwaniu co 2.5us na 22 tapsy, obliczanie nowych nastaw i rekonfiguracja hrtim... HAL nie był tutaj, żadnym problemem, ale realizowanie filtra w przerwaniu z flash'a już tak. Formą optymalizacji prędkości wykonywania kodu nie było użycie innej...
(at)nowyARM Nie cytuj mnie wyrywając poszczególne słowa z kontekstu, zmieniając mój (raczej chyba to oczywiste) żartobliwy post w cos zupełnie innego. Przy okazji jak piszesz programy? Wszystko prawie tam jest zerżnięte od innych. Taki np bufor kołowy czy inne rozwiązania. Powinieneś na wszystko mieć swoje oryginalne autorskie rozwiązania (moze bufor...
Witam. 230 na kanal przy pomiarze sinusa ? Moze kolega wyjasnic dokladniej ? Jesli kolega chce zatrzymac 230 x 3 (3 fazy) x 16 bit danych to nie wystarczy pamieci w samym AVR.Jesli to tylko 1 faza to zostanie jeszcze polowa pamieci na pozostale operacje .Mysle ze w tym 1 przypadku należałoby podzielic obliczenia na etapy , po wczytaniu np 115 pomiarow...
Teoretycznie wiem chyba jak to zrobić, ale nie potrafię tego praktycznie wykorzystać Przedewszystkim odbieraj dane w przerwaniu ISR(USART1_RX_vect) // przerwanie do odbioru znaku i zapisu do bufora { bufor[ilosc_znakow]=UDR1; ++ilosc_znakow; } GPS bezprzerwy sra danymi, praktycznie tylko dobierasz od niego dane. Najprosciej...
Już prawie mam obmyślone skuteczne rozwiązanie. Po co ID? Jeśli przed nadejściem statusu transmisji rozpocznę inna transmisję to nie będę miał pewności do której transmisji należy status, który później nadejdzie. Jeśli ustawie je jednak w kolejkę i przekażę całe sterowanie wysyłaniem do przerwania zegarowego to jestem w stanie to ogarnąć. To samo przerwanie,...
4. Ja bym taki odtwarzacz zrealizował jako kilka równoległych procesów: Proces 0: Wstępne załadowanie buforów danych (np. 8), które powinny stanowić ciągły obszar w pamięci, ustawienia i tym podobne; Proces 1: Przesyłanie danych z bufora do DAC przez DMA taktowane z timera. Wielkość pojedynczego transferu to 1 kwant czasowy, np. dla 2kanały x 16 bit,...
bufor kołowy stm32 usart bufor kołowy wykres kołowy
schemat instalacja kotłownia rower elektryczny awaria prądnica bocznikowy
odkurzacz einhell ds18b20 asembler
Dopisanie kluczyka do BMW X3 E83 EWS 4.3 Zgubione kluczyki samochodowe bez zapasowych - co robić?