[syntax=c]RCC_APB2PeriphClockCmd(RCC_AHB... ENABLE);[/syntax] Zdecyduj się, czy konfigurujesz szynę APB2, czy AHB?
Witam, Zwracam się z prośbą o pomoc przy moim projekcie. Tematem projektu jest obsługa termometru DS18B20 poprzez interfejs USART pracujący w trybie half duplex z przerwaniami i buforem kołowym. Wyszukiwanie urządzeń na magistrali 1-Wire, odczyt co zadany interwał pomiarowy podawany w milisekundach. Wiem mniej więcej, jak obsługiwać ten termometr poprzez...
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...
Bufor cykliczny, inaczej też nazywany kołowym, to najlepsze rozwiązanie do tego co chcesz zrobić. Tym bardziej, że jak zaznaczyłeś danych będzie sporo. Każdy odebrany znak wpisujesz do bufora i przesuwasz wskaźnik zapisu o 1. Możesz to robić przez obsługę przerwania od portu szeregowego, albo możesz do tego wykorzystać DMA. Dlaczego bufor? Ponieważ...
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ć...
A czy nie da się tego zrobić prościej? Prościej by było użyć filozofii bufora kołowego. Czyli tablicy elementów (u Ciebie sześciobajtowych) i dwóch wskaźników (nie koniecznie rozumianych jako adres fizyczny, bo może być to indeks w tablicy) "głowy" i "ogona" danych do wysyłki. Wtedy w operacjach zapisu i odczytu z bufora odpowiednio interpretujesz...
Mam następujące zadanie; stworzyć projekt na laboratoria z mikroprocesorów. Męczę się z tym już od początku semestru i szczerze nie mam pojęcia gdzie robię błędy. Liczę na moc internetu i oczywiście odpłatnie na pomoc. Pełna specyfikacja projektu: 1. Komunikacja z komputerem za pomocą interfejsu USART z buforem kołowym. 2. Zaprojektowanie i implementacja...
Witam ;) Od niedawna prowadzę bloga dotyczącego programowania embedded : http://www.embeddeddev.pl/ Przykłady są oparte głównie na mikrokontrolerach STM32, ale przedstawiane tam informacje mogą przydać się także przy programowaniu innych uC. Dotychczas opisałem tam takie zagadnienia jak: - bufor kołowy (zasada działania, implementacja, przykład obsługi...
Weź sobie przypadek bufora kołowego do którego dane są pchane np z UARTa lub innego szybkiego peryferiala i do tego jakiś protokół co ma ramki po !%4.
Kazałeś odebrać 5 bajtów to woła callbacka jak tyle odbierze. Jezeli nie wiesz ile to możesz odbierać po znaku i sobie interpretować albo wkładać do bufora kołowego, odbierać i czekać na przerwę w transmisji (co może świadczyć o zakończeniu). Masz wiele opcji.
(możliwa transmisja "bez odbioru" i rozpoczęcie odbioru w środku ramki). Jezeli przez ramke (bo używasz tego pojęcia w 2 róznych znaczeniach) rozumiesz pakiet to dość łatwo te problemy wyeliminować przez odpowiednią strukture pakietu. Jeżeli przez ramke rozumiesz start+dane+stop+parzystość to moze zając kilka bajtów aż się zsynchronizuje. Podtawa matematyczno-techniczna...
Dzień dobry, To mój pierwszy post tutaj (jeśli jest w złej kategorii to proszę powiedzieć). Z góry mówię że w elektronice jestem BARDZO początkujący więc jeśli ktoś zdecyduję się odpowiedzieć to poproszę BARDZO prostymi słowami. Mam następujący problem. Mam zrealizować następujące zadanie -> za pomocą płytki STM32 NUCLEO-F401RE mam dokonać pomiaru temperatury...
Koncepcja jest nie najgorsza pod warunkiem, że w ciągu danych nie występuje 0xA3. Owszem, masz rację. W ramce A3 może się powtórzyć (np. kiedy się jedzie z prędkością 16,3km/h ). Dlatego proponowałem po wykryciu A3 zbierać następne bajty do bufora już bez ich oglądania (czy to A3 czy nie), tylko na ilość (konkretnie jeszcze trzy bajty po A3). Zakładając...
Witam. Mam za zadanie zaprojektowanie i oprogramowanie protokołu komunikacyjnego pozwalającego na odczyt/zapis zadanych parametrów. Komunikacja z PC ma się odbywać po USART z użyciem przerwań i bufora kołowego. Jeżeli chodzi o bufor to będę opierał się na tej stronie: http://www.embeddeddev.pl/bufor... wiem od czego mam zacząć....
Z DMA powinno być łatwiej a z pewnością mniej obciąża CPU. Oczywiscie ze nie. Jak zwykle kol. (at)LChucki wprowadza w błąd. Dla 2 znaków oczywiście to nie ma sensu. Trzeba po stronie odbierającej wykrywać koniec transmisji (np poprzez IDLE, przekróecenie bufora itd itd). Do tego trzeba zaimplementować odpowiednie mechanizmy synchronizacyjne. Sądząc...
Po to są bufory cykliczne (czy kołowe), żeby uniknąć takich problemów - do bufora sięga tylko wątek ISR i wątek pobierający dane z bufora: przy odbieraniu danych w ISR wpisujemy znak na pozycji wskazywanej przez indeks wejściowy i ustawiamy ten indeks na następną pozycję; przy pobieraniu danych z bufora zabieramy znak z pozycji wskazywanej przez indeks...
Chciałbym pomóc, ale... 1) Jak skonfigurowales DMA? Czy co koniec transmisji alokujesz nowy bufor i stawiasz tam wskaznik DMA? Czy może masz dwa bufory (ping-pong) i jeden przetwarzasz gdy w drugi DMA ładuje dane...? Ja na twoim miejscu wykorzystałbym właśnie ping-pong. W przerwaniu od DMA[TCIF] przelaczałbym tylko wskaznik na bufor i rekonfigurował...
Witam W ramach zaliczenia mam do stworzenia projekt na bazie stm32f407 (płytka discovery) który będzie bazował na free rtos. Będą wątki sprawdzające stan przycisku[1], poziom napięcia[2] oraz wątek[3] tzw loga który będzie przez dma wyrzucał ciągi znaków przez porty szeregowy. Bez rtos sprawa wydaje mi się banalna lecz przy rtos mam wątpliwości merytoryczne....
A po co w ogóle chcesz ręcznie wywoływać przerwanie od nadania? Wrzuć po prostu dane do TDR to się samo wywoła w odpowiednim momencie. [syntax=c]volatile unsigned charut0_mst=0, ut0_sta=0, ut0_end=0, ut0_buff[32]; //pomocnicze dla nadajnika/odbiornika rs //bufor kołowy nadajnika void rs_tx(uint8_t data) { TX_1;//led tx //ltx0=2; EnterCritical(); if(!ut0_mst)...
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...
http://obrazki.elektroda.pl/4155164900_1... Witam wszystkich Tym razem chciałbym zaprezentować jeszcze programowy projekt radioodbiornika internetowego. Prezentowany projekt jest rozszerzeniem przedstawionego wcześniej projektu odtwarzacza i dyktafonu na STM32F407VG. Połączenie z Internetem zapewnia moduł WiFi WF121-A (internal antenna)...
http://obrazki.elektroda.pl/7258579400_1... Witam. Chciałem dzisiaj przedstawić kolejny projekt z cyklu "inni mają - mam i ja" ;) Tym razem jest to miniaturowy sterownik ethernetowy - " uWebServer ". Układ zbudowany został w oparciu o mikrokontroler Cortex-M3 - STM32F103C8T6, do tego kontroler ethernetu "znany i lubiany" - ENC28J60. Całość...
Cześć, Procek gada sobie z ADC po SPI+DMA, machając radośnie CSem. Jest sobie następująca "konstrukcja": - TIM3 generuje fizycznego CSa (krótki impuls H, resztę czasu L) - TIM3 w właściwym momencie triggeruje TIM8... - ...który chodzi w trybie retriggerable one-shot z repetition counterem równym 3... - ...w celu wygenerowania pod rząd 3 8bitowych requestów...
Nie jestem pewien zapisu USART1->CR1 |= USART_CR1_RXNEIE w main Tzn jeżeli coś wysyła mi dane, to automatycznie pojawia się informacje o tym w rejestrze ISR? jeśli tak to czy powinienem w main sprawdzać tę flagę i włączać przerwanie od odbioru czy nie ma to znaczenia i od razu bez żadnego sprawdzania włączam przerwanie na odbiór a potem przerwanie...
Obróbkę danych GPS jak najbardziej zostaw w przerwaniu, ale dorzuć zabezpieczenia przed przekroczeniem długości. Nie przesadzaj z tymi buforami "kołowymi", o ile masz gwarancję, że zdążysz przed następną porcją danych. Kod, który wkleiłeś, obejrzę nieco później,
Widzę, że tutaj burza na całego. ;-) Wczoraj nie miałem czasu więc dzisiaj zabrałem się znowu za te g...o i: - ostatecznie zastosowałem kwarc 8 MHz (25 MHz na MCO1 wyglądał na niestabilny) i jak najdokładniej dobrałem kondensatory aby ostatecznie uzyskać 8.00002 MHz. Tym kwarcem rozpędzam PLL do 216 MHz - przy obliczeniu BRR użyłem 216 MHz / 115200...
Mam rozumieć ze pomiedzy krokami 2 a 3 wysyłasz konfigurację do BTka zeby zmienił predkosc na 115200, a nastepnie przekonfigurowujesz UART na 115200?...;] Czy zupełnie nigdzie nie zmieniasz prędkości BTka?... Jesli nie zmieniasz nigdzie tych predkosci, to na test każ w przerwaniu RXNE xorować diodke, sprawdz czy co znak wyslany z kompa zmienia ona swoj...
Poza tym typowy błąd AVRowca - nieskasowana flaga przerwania. W tym przypadku akurat jest kasowana przez sprzęt sama. Jeżeli nie włączył przerwań od błędów to i tak nie będą wywoływane poza ORE, który i tak nie czyści się poprzez pisanie czegoś do SR. Zresztą ORE w tym przypadku się nie spodziewam :) Jak właczysz wywoływanie przerwań od błedów wtedy...
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...
Buffor Fifo to oddzielna implentacja (zwykły bufor kołowy). Zmieniłem ustawienia I2S tak żeby częstotliwość była jak najbardziej zbliżona do 44100Hz. Aktualnie mam ustawione 44097Hz (tak pokazuje cubemx) i jest duża poprawa, tylko przy starcie mam ok 2-3 sekundy "ćwierkania" a później już gra normalnie.
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?
Wydaje mi się, że to forum elektrody jest używane głównie przez amatorów lub okazyjnych programistów . ..Bullshit. Jesli wszyscy byliby tutaj dorywczymi lub poczatkujacymi programistami, to kto by pomagał w rozwiązywaniu problemów? "pomagał głuchy ślepemu". Racz zauwazyc, ze na tym forum wypowiadają się ludzie, którzy pracują już w zawodzie związanym...
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...
Tutaj nawet nie chodzi o to jakie konkretne mikrokontrolery są używane do nauki, ale o brak podejścia do techniki tworzenia oprogramowania na urządzenia wbudowane. Jak optymalnie pisać drivery, na co zwracać uwagę w C, po co volatile, jak projektować maszynę stanów, podejście algorytmiki, bufory kołowe, FIFO, stosy, podejście pseudo-obiektowe i tak...
bufor kołowy usart bufor kołowy podwójny bufor stm32
podłączyć telewizor philips router epson gramatur zasilacz kondensator 10000uf
reklamacja wtryskiwacze stable diffusion
Czarny ekran po wymianie procesora w Lenovo B540 Serwisy magnetofonów kasetowych w Polsce: adresy i informacje