mozesz zrobic tak: masz menu -> wybierasz jakas opcje z menu-> w kazdej z opcji wykonujesz zwyklego while(1) z warunkiem po wykonaniu petli na jakas flage, ktora ustawiasz w przerwaniu. Teraz w przerwaniu ustawasz zwykly powrot do menu (czyli w przerwaniu np. od nacisniecia przycisku czy od czegokolwiek co Ci bedzie pasowac ustawiasz tylko jakas flage...
Timerem zmierzyć możesz.
Witam Chciałbym zrobić urządzenie które będzie potrafiło wykonywać zdjęcia które potem ewentualnie wyśle do PC/ wyświetli na LCD. W związku z tym potrzebuję Waszej pomocy: gdzie kupić jakiś aparat kamerę? czy jest dokumentacja dla kamer z telefonów? czy ktoś ma jakieś projekty? Pozdrawiam
Witam, Robię analizę FFT na tym mikrokontrolerze korzystając z bibliotek DSP producenta. Za pomocą TIM2 zmierzyłem czas obliczeń FFT (szyna APB1 36MHZ, prescaler = 35 daje inkrementację licznika co 1µs). Fragment listingu z pomiarów: [syntax=c] TIM2->CNT = 0; for(i=0; i<512; i++) buffer_input[i]=(float)(ADC_buff_1[i][0]... arm_rfft_f32(&S,...
Ustawiłeś odpowiednio piny BOOT0 i BOOT1? Po tym: target halted due to breakpoint, current mode: Handler HardFault xPSR: 0x20000003 pc: 0x20000004 msp: 0x20004fe0 wydaje mi się, że Twój układ próbuje wykonywać kod z RAMu. 4\/3!!
Nie chcąc zakładać nowego tematu mam nowe pytania. Czy jest jakaś różnica w prędkości wykonywania kodu gdy mam możliwość uruchomienia uC w trybie Debugra czy nie? Na niektórych maszynach jest np tryb realase oraz debug kompilacja w tym pierwszym powoduje krótszy kod wynikowy (oraz szybsze wykonywanie się kodu?).
Nie powinien być. Kolego (at)rogeros czytaj uważnie warningi zgłaszane przez kompilator albo chociaż zamieszczaj tutaj log kompilacji. Znacznie to ułatwi rozwiązywanie tego typu problemów. Typ drugiego parametru przekazywanego do tej funkcji również generuje ostrzeżenie (ale to już po części wina mistrzowskiego designu API od ST...).
Nie wiem dlaczego to nie działa. Mam oryginalnego j-linka, chińskiego j-linka, i ulinka2, i na każdym da się programować, debuggować i kasować różne STM32 bezzonkowo. Keil 4.03, MDK-ARM 4.10. Nie podoba mi się RAM for algorithm. W STM32 RAM zaczyna się pod adresem 0x20000000 a nie 0x10000000, to spora różnica... Popraw to, i powinno chodzić. Loader...
To wskazuje na wykonywanie się bootloadera ST.
Ja wiem czym jest ale twierdzenie,że prędkości wykonywania bitbandu i operacji |= lub &= są te same to błąd. Bitband jest szybszy.
Nie, no niewątpliwie masz rację, że jeśli chodzi o wydajność to szybciej jest bezpośrednio pisać po rejestrach ;) Tyle że tu chodzi zarówno o szybkość pojmowaną jako prędkość wykonywania kodu, jak i o prędkość pisania go - i tak musisz przeczytać manuala, a do tego jeszcze dokumentację biblioteki [; 4\/3!!
Po pierwsze, w SPI zawsze nadajesz i odbierasz bajt. Jeśli nadałeś dwa i odebrałeś jeden, to odebrałeś ten, który przyszedł po nadaniu pierwszego, a drugi zignorowałeś. Musisz zawsze odczytywać tyle bajtów, ile zapisałeś. Po drugie, chcesz nadawać bajty, a rejestr DR w STM32 ma 16 bitów, więc jednym zapisem do DR nadajesz 2 bajty. Musisz wykonywać bajtowe...
Ja zawsze kasuje bity żądania na koniec przerwania i nigdy nie maiłem takich problemów w STM32, niezależnie od poziomu optymalizacji przerwanie wykonywało się tylko raz.
Fault input także ma stm32, 3 oddzielne ADC przetworniki także prędkość przetwarzania będzie podobna jak przy 2 oddzielnych próbkujących z 2MSPS w dsPICu. Jeśli chodzi o Pwm no to dsPIC widzę że ma jeszcze zamianę faz, nie ma co ukrywać wyposażenie w dsPICu jest bardziej zaawansowane jeśli chodzi o sterowanie silnikami i energoelektronikę. W każdym...
Ewentualnie zmiana poziomu optymalizacji - zależnie od kompilatora pomoże lub nie. Bez volatile kompilator na podstawie samego kodu stwierdza ze "run" nie ma szans zmienić stanu bo niby jak ma wejść do funkcji TIM2_IRQHandler i olewa taki fragment kodu. Kompilator nie uwzględnia czynników sprzętowych (zewnętrznych) oddziałujących na kolejność wykonywania...
Mam ją. Jak polecacie czytać czy siąść i całą przeczytać na sucho czy może krok po kroku wykonywać wszystkie wskazówki?
Zawiodłem się- nie ukrywam. Mimo tego nie zaprzestane z nich korzystać, bo np. przy konfiguracji peryferiów są bardzo przejrzyste. Po za tym trzeba zmienić podejście do programowania... Chciałbym wiedzieć z czego to wynika, czy tak duże opóźnienia powstają na skutek częstego wywoływania funkcji API STM32?
Mówisz o tym by procesor sam zmienił swój program. Czy chcesz program, który będzie wykonywał inny program(skrypt).
Do pasma EKG układ w zupełności wystarczy. W kwestii punktu 4, chodziło mi o taką konfigurację licznika: - licznik zlicza w jednym kierunku, np. w górę. - Czas pełnego okresu (PSC i ARR) to trochę więcej niż czas transmisji + impuls LDAC (=210ns). - Do jednego z rejestrów porównujących ładujesz wartość, która odpowiada impulsowi LDAC, a wyjście konfigurujesz...
Czy w procesorach STM32 wiekszość rozkazów wykonuje się w 1 cyklu zegarowym? Nie wszystkie. Jeśli chcesz mieć bardzo dokładnie oszacowany czas w cyklach to musisz zdeasemblować program, zajrzeć do dokumentacji, żeby sprawdzić ile czasu się wykonuje jeden rozkaz i sprawdzać rozkaz po rozkazie. Jak zależy Ci na prędkości i oszczędności co do rozkazu,...
Nie za bardzo się zrozumieliśmy. Nie chodziło mi o to jak się ustawia priorytety w STM32, tylko jak je ustawić aby ta funkcja nie została przerwana w trakcie wykonywania, przez jakieś przerwanie. A dokładniej aby nie została przerwana w momencie da niej krytycznym - między przepisywaniem zmiennej data do bufora i inkrementacją zmiennej ut1_end. Bo później...
Witam, jestem w trakcie wykonywania ćwiczeń z książki Mikrokontrolery STM32 w sieci Ethernet na zestawie uruchomieniowym ZL29ARM, z programatorem j-link edu, w środowisku eclipse (a konkretniej System Workbench for STM32 z pluginem do obsługi j-link). Aktualnie zawiesiłem się dłuższy czas na konfigurowaniu budzików biblioteki lwip (dla posiadających...
Myślałem że zmieniam płytkę, wgrywam nowy bootloader i działa tak samo jak inne arduino. Wykonywałem procedurę z tego linku https://geektimes.ru/post/277928/
Witam, Zaczynam prace z mikrokontrolerami ARM a konkretnie z modułem STM32F103, do tej pory wgrywanie programu wykonywałem przez program STM32 ST-link Utility oraz programator ST link v2, jednak chciałbym mieć możliwość wgrywania bezpośrednio z Eclipse no i możliwość debugowania. Czy byłby ktoś w stanie napisać jak tego dokonać od początku do końca...
To tak, patrzę i na okno disassembly w CubeIDE i na kod wynikowy asm (plik .lss w folderze z projektem). Wycinek, który dałem jako screen jest właśnie z pliku .lss. W tym pliku wartość do jakiej odnosi się rozkaz ldr ( załaduj do r3 wartość z pod 0x80001d8) zgadza się ( jest tam 0x40010c00, i nawet patrząc na rejestry w czasie wykonywania programu wartość...
Jeszcze jedno mam pytanie. Szybciej w STM32 wykona się dodawanie/odejmowanie 32 bitowych zmiennych, czy 8 bit ? A jak w powyższym jest z mnożeniem i dzieleniem ?
Witam mam trywialny problem, ale chciałbym się upewnić: Otóż postanowiłem zrobić sobie wysyłanie danych przez port szeregowy. Mam w związku z tym pytanie odnośnie USART na STM32. Jeśli ustawię sobie przerwanie USARTA na aktywny stan TXE (USART_ITConfig(USART1, USART_IT_TXE, ENABLE); ), to ono od razu mi się wykona, bo w TDR nie ma danych. Przerwanie...
Dzięki za szybką odpowiedź. Przy okazji zapytam. Jeśli jest wykorzystywana tablica, to szybciej będzie się wykonywało obliczenia z wykorzystywaniem standardowej obsługi, czy obliczeń na niej z wykorzystaniem wskaźników ?
Jeżeli chcesz do szyny wykorzystać np. połówkę portu (8 bitów) to najszybciej BSRR. Najszybciej wtedy wykonywać 8-bitowy zapis do rejestru ODR. 4\/3!!
Masz łączność debugerem z tym prockiem? Daje radę wykonywać program krok po kroku? Bo w F103 dało się rejestry po prostu oglądać. Próbowałeś z tym MCO i ustawieniem podzielnika i oscyloskopem?
Rzeczywiście, po "halt" i bez 'bin' zadziałało. Dzięki. Ciekawostka: bez "halt", w trakcie wykonywania się programu, też działa (bez 'bin' - z 'bin' nie). Nie pamiętam, w jakich okolicznościach bez 'bin' OpenOCD zgłaszał, że nie może otworzyć pliku. Na pewno zgłaszał, inaczej bym nie próbował 'bin'.
Widzisz gdzieś w kodzie wyłączanie HSION? Bo ja nie... A boli cię że HSION jest włączony? Jeśli tak, to go wyłącz ;] Czymże jest "jakiś licznik"? Co ty z nim masz zmiar robić i do czego go używać? Od pomiaru czasów wykonywania kodu jest timer w procesorze. Poza tym, co ci po liczniku, skoro pierwsze lepsze przerwanie rozwala ci cały pomiar... W lewym...
są jakieś praktyczne przypadki wykorzystywania zdarzeń? Pytam ogólnie w całej rodzinie stm32. Tak w praktyce to zdarzeń nie ustawia się wcale. BlueDraco, a np. zdarzenie od zmiany stanu pinu ? Zdarzenie od przepełnienia licznika i zmiany stanu pinu ja osobiście dość często wykorzystuję. Co do pytania o aspekty praktyczne takich zdarzeń, hmm no to chyba...
akt_bufor ^= bufor1 ^ bufor2; Tak, pamiętam. Zastosowanie XOR Swap, ale nie za bardzo potrafię to zastosować :). Dokumentacja twierdzi, że przed modyfikacją ustawień DMA rejestr CCR powinien być wyzerowany (czy tam jeden bit w nim). Poszukam :). A czy na pewno to przerwanie będzie się wykonywać? Jest poprawny wpis w NVIC?
Witam wszystkich. Przenosze kod z STM32 L 053 na STM32 F 030 Ruszylo mi prawie wszystko czyli: RCC GPIO SPI Pracuje na kodzie dostarczonym przez ST pod pewien moduł radiowy. Kod jest oparty o HAL generowany z Cube. Mam problem z DMA. Problem ten jest wynikiem nie wykonywania się jednej linijki kodu. Zamiast wskaznika (adresu funkcji) wpisywane jest...
(...)co zajmie 10 cykli zegara w przypadku wykonywania z ITCRAM. Jezeli z FLASH to trochę dużej, bo FLASH jest wolniejsza. Wiesz o ile wolniej? Bo u mnie właśnie z flasha się to wykonuje. W sumie, nie dałoby się po prostu zliczać jakoś cykli zegarowych? Albo może użyć timera, tylko czy on wyrobi przy częstotliwości np 100MHz?
Może trochę źle się wyraziłem ale zrozumiałem to tak że w STM32 instrukcja GPIOA->ODR = 0x44(czyli ustawienie na pinach odpowiednich stanów) może wykonywać się dłużej niż PORTB = 0x44 w AVR
Dobra, to jest znacznie lepsza opcja, z poczekaniem po prostu... Albo nawet ze zworką. Bo rozumiem, że to jest tak, że jak już programator (ST-Link) "złapie" procka, tzn. się z nim połączy to wykonywanie kodu jest wstrzymane i wtedy może już sobie tak wisieć ile chce?
[syntax=c]void MIDImessage(byte command, byte data1, byte data2) { uint8_t data[3]; data[0] = command; data[1] = data1; data[2] = data2; HAL_UART_Transmit_IT(&huart2, data, sizeof(data)); }[/syntax] Pamiętaj transmisja jest wykonywana w tle.
Ale ja to zaczerpnąłem z opisu z EdW. Tam w kursie było opisane że w zależności od ustawień dwóch pinów BOOT1 i BOOT2 po stracie są trzy możliwości: alebo bootloader, albo Flash albo z RAM i teraz jak program jest tak napisany że ma się mieścić sę w RAM to całośc ładowana jest do RAM i stąd się zaczyna wykonywać. Z tym że to dotyczyło STM32 a nie LPC1114.
O adresy kodu chodzi, a nie danych. Adresy kodu mają wpływ na akcelerację dostępu do Flash. Pętla zaczynająca się od adresu podzielnego przez 16 ma szansę wykonywać się szybciej, niż taka od adresu np. 16x + 14.
Dodanie podstawowego wsparcia dla innych układów jest porównywalne z postawieniem projektu na FreeRTOSie - ot po prostu musisz mieć tablicę wektorów i skonfigurowane rozmiary/adresy pamięci i dokładny typ układu. We FreeRTOSie przecież wsparcie dla STM32 czy dla LPC tak samo nie istnieje - tablicę wektorów, skrypt linkera, startup, Makefile (czy konfigurację...
Dane lądowały w SDRAM bo RAM procesora jest znacznie za mały by pomieścić 2 miliony pikseli w formacie RGB565. Po wykonaniu zdjęcia dane były "wyciągane" przez procesor z tego ramu i wyliczana była krzywa którą monitorowała kamera. Cały proces wykonywał się ok 2 - 3 razy na sekundę.
Powinno się dać, JTAG też ma swój pin reset, który blokuje wykonywanie się kodu (gdy pin = 0) Chyba, że w st-linku o tym nie pomyśleli :)
Timer może wywoływać transfery INNEGO kanału DMA niż ten odpowiedzialny za ADC. Co prawda kanał ten może być skonfigurowany tak, aby wykonywał transfer z ADC, ale jednak jest to inny kanał niż konfigurujesz i włączasz. 4\/3!!
Nie. Wciąż jadę na starych przykładach i zmieniłem w nich tylko ten adres. Dodatkowo kilkanaście razy przekompilowywałem kod i wgrywałem go do procesora i działał. Po którymś przeprogramowaniu raptem przestał. I teraz jak już wiem o co chodzi to jadę na kodzie bez PLL. Po za tym to zawsze muszę dwa razy przeprogramować. Po pierwszym przeprogramowaniu...
Masz rację - wydaje Ci się... (; Latencja to nie jest jakiś delay czy preskaler, po prostu przy nie-sekwencyjnym wykonywaniu rozkazów (skoki), potrzebne są te 2 cykle na załadowanie bufora. Spadek wydajności przez taką latencję oscyluje pewnie w rejonie kilku procent, więc nad czym się tu zastanawiać? Jeśli podniesienie częstotliwości "nic nie dało"...
Proszę moderatora o doklejenie do wcześniejszego tematu bo przez przypadek kliknąłem w rozwiązano :( Przerwania mam włączone. Globalnie przez __enable_irq(); i poszczególne przez wpisanie jedynek do odpowiednich rejestrów ISER. Czy to możliwe że przerwania działają przy debugowaniu a przy normalnym wykonywaniu kodu już nie nawet jakby nie były włączone...
Juz to przerabialem.. toolchain jest zainstalowany, program z przykladu juz kompilowalem i ladowalem do uC. Moze w takim razie inaczej sformuluje pytanie.. Dlaczego po wgraniu tego programu do mikrokontrolera sie on nie wykonuje?
dla miłoścników natychmiastowej satysfakcji jest godbolt. Tam można sprawdzić wszystko na szybko (tu np. jak zmusić kompilator do zrobienia odpowieniej szerokości zaipisu i odczytu):https://godbolt.org/z/WbxkKr Można nawet "na zywo" wykonywać programy online (ale to tylko oczywiście na pc-cie) https://godbolt.org/z/qxMQJW
Dla pewność próby wykonywałem na drugiej takiej samej płytce STM32, niestety bezskutecznie. Nie mam już na to głowy... Łaczenie róznych pinów i portów tak aby działało jest jak by to powiedziec solą zabawy z uC. Nie da sie tego uniknąc - a najlepsza metodą nauki jest praktyka i eksperymenty. Zwarcie Tx z Rx bylo po to zebys na jakims terminalu na Pc-ie...
Nie wiem, czy do końca zrozumiałem Twoją odpowiedź, gdyż kłóci się z tym co obserwuję w układzie. Mogę zmieniać częstotliwość jednego z kanałów w trakcie wykonywania programu. Problem został rozwiązany, dany kanał przy zmianie okresu jest załączany i wyłączany w procedurze obslugi przerwania.
Jakiego typu jest absolutnie absurdalny i perwersyjnie wypaczony pomysł, aby mając OSa robić takie delay'e w wątkach ??? Również o podobną perwersję zakrawa wykonywanie przerwania timera co mikrosekundę tylko po to, zeby zmniejszać tam jakąś zmienną. Wez timer, skonfiguruj go jako one-shot, skonfiguruj mu takt na 1us, do ARR wpisz chciany czas w us,...
tzn. są jakieś adresy z flasha, ale nie te które bym się spodziewał. Przede wszystkim musisz wiedzeć jakiego typu to HF bo adresy mogą być nieprecyzyjne. __disable_irq(); W HF-ie możesz sobie to już darować :) Czy ma może to związek z tym że w Hard Fault używany jest inny stos niż podczas wykonywania tasków? To sobie sprawdż jaki stos jest w użyciu....
Timery i dokładne odmierzanie czasu w różnych miejscach kodu. Zamiast korzystać z kilku timerów, można w różnych blokach kodu konfigurować 1 timer i wstrzykiwać odpowiednią funkcję przerwania. Oczywiście pod warunkiem, że nie będziemy musieli odmierzać czasu dla dwóch bloków jednocześnie. Wygląda na to, że potrzebujesz po prostu callbacka w jednym...
W modelu zdarzeniowym nie ma przełączania zadań, bo program nie "zatrzymuje się w oczekiwaniu" - obsługa zdarzenia kończy się i już. Tyle, że zadanie może wykonywać się długo, np zapis dużego pliku, programowe dekodowanie JPG. Wtedy trzeba rozbić na mniejsze fragmenty co bywa upierdliwe.
Wykonałem próbę pracy z watchpoint-ami, za pomocą nowej (rozwojowej) wersji OpenOCD 0.4.0-rc2 i telnetu. Już wykonanie komendy: "wp 0x20000e04 4 r 10 0xffffffff" (gdzie 0x20000e04 adres zmiennej typu int), powoduje błąd: openocd-0.4.0-rc2.exe -f interface/kt-link.cfg -f target/stm32.cfg -c "jtag_khz 1000" Open On-Chip Debugger 0.4.0-rc2 (2010-02-14-10:00)...
Witam, od kiedy zacząłem porządkować kod, korzystając z funkcji mój program zaczął się źle wykonywać. Dotychczas kod był nie wielki więc wszystko robiłem na if'ach, zaczął się rozrastać więc w systicku zostawiłem if'y ale całe obliczenia do wykonania oraz wysyłanie dałem do oddzielnej funkcji (wysyłanie jest też poprzez wywołanie następnej funkcji)....
Ok. Głównie chodzi o wywłaszczenia, bo zgłoszenie dwóch lub wiecej przerwań jednocześnie jest dość rzadkie (przynajmniej w moim projekcie). Dzięki za informację, jako ciekawostka:) Mam przerwania które są wywoływane dość często i mają kilka linijek kodu, oraz przerwanie wywoływane rzadko ale mające sporo kodu - chce tak ustawić priorytety, żeby te krótkie...
Nie bez powodu wspomniałem o końcowym resecie. To fakt, że specyfikacja 1wire w najmniejszym stopniu nie każe resetować magistrali po transakcji. Wynikło to z moich własnych doświadczeń. Taki DS2450 jeśli pracował z wieloma kolegami na długim kablu, nie zawsze chciał akceptować reset rozpoczynający transakcję. Empirycznie zostały na to znalezione 2...
Czy istnieje u ciebie przerwanie które wymusza dostęp na FSMC, tj. wyświetlacz? Jeśli nie, to nie ma opcji żeby praca FSMC miała wpływ na wykonywanie przerwań...Jeśli tak, to masz błąd w założeniach, bo dostęp do wyświetlacza nie powinien być w ISRrze.... Przerwania się skolejkują wtedy, gdy masz włączonych kilka przerwań i wszystkie wystąpią na raz...
Kontroler flasha to nadal tylko peryferial memory-mapped, wiec SFR w ktorym ustawiasz protekcje niczym sie nie rozni od SFRów od np. SPI, i dokladnie tak samo mozna go zapisać przez SWD/JTAG . A to juz wprost odpowiedz na twoje pytanie. SWD/JTAG pozwala na rw dowolnego 32bitowego adresu w losowym momencie, niezaleznie od tego, czy rdzen wykonuje kod,...
Odpowiedź na Twoje pytanie jest dosyć prosta - protokół SWD nie ma rozkazu zapisu do flash i tego się po prostu nie da tak zrobić jak zapisu do RAM. Oprogramowanie na PC, które się komunikuje przez SWD z układem (np. program do ST-Linka, OpenOCD) wgrywa do RAMu specjalną procedurę, która fizycznie realizuje zapis (poprzez odpowiednią sekwencje zapisów...
O stacjai FDD będę myślał . Do zaprojektowania COBRA-DOS skłoniły mnie właśnie "męczarnie z kartridge" , jest to problem sprzętowy i softwerowy . Aktualnie pracuję nad płytką i tu pojawia się problem , oprócz oryginalnego złącza Cobry forum nie wypracowało innego standardu (naliczyłem kilka indywidualnych propozycji) .Nie wiem jakie zastosować rozwiązanie...
Znalazłem. Domyślnie kod wypluty z CubeMX przestawia wszystkie nie wykorzystane piny w tryb GPIO Analog, co powodowało "wyłączenie" pinów od debugera w trakcie wykonywania auto generowanej funkcji GPIO_Init(); Rozwiązanie: W CubeMX na zakładce "pinout" znaleźć na liście "SYS" i wybrać tryb "SWD".
Dodałem do bity CPOL i CPHA : https://obrazki.elektroda.pl/7719867000_...
Plik map wygląda na sensowny. Podejrzyj w deassemblacji (albo zdebugguj) czy aby na pewno startup czyści sekcje .bss i inicjalizuje .data (podczas wykonywania funkcji Reset_Handler). Jeśli program "nie działa" tylko jeśli poprzednio uruchomiony był malloc(), a jeśli nie był uruchomiony to działa, to wskazywałoby na problem z inicjalizacją tych sekcji....
(at)janchar Ponieważ widać tutaj pewne niejasności, dlatego polecam zapoznać się z podstawami. Kluczowe słowa to proces debugowania i debuger. Na przykład [url=https://en.wikipedia.org/wiki/Debug... Prościej się nie da. Wracając do tego konkretnego przypadku, to podłączając mikrokontroler przez interfejs SWD, czyli GND, SWCLK, SWDIO, nie ma...
Generalnie adres w PC wskazuje na kilka instrukcji "po" faktycznym problemie, bo zanim problem "dojdzie" do wykonywania, to PC jest już nieco dalej. Przed PC na stosie masz odłożony też LR - możesz sprawdzić też tam czy czegoś dziwnego nie ma wcześniej. Generalnie ciężka sprawa zwykle jest z tymi HardFaultami... Sprawdzam stos -> w chwili wystąpienia...
Witam Na tej stronie [url=http://www.st.com/web/en/catalog/to... jest paczka zip z wieloma przykładami. Jest też demo obsługujące w/w układy (program automatycznie wykrywa, który układ jest zamontowany). Program sprawdzałem i u mnie działa (płytka STM32F4-DISCOVERY z wersją akcelerometru LIS3DSH) PS. Jak skonfigurować by po włączeniu...
witam mam problem z płytką [url=http://propix.com.pl/pl/p/Modul-STM... a mianowice, potrzebuję równolegle wykonywać operację pomiaru temperatury i generowania fali prostokątnej dla wentylatora, wszystko fajnie jak jest osobno bo działa, ale jak chce to połączyć przy pomocy uC-os to nie działa albo chodzi jedno zadanie albo drugie....
Chodzi o częstotliwość wykonywania pomiarów a nie częstotliwość taktowania bloku ADC. Ale tą częstotliwość już podałeś: 50Hz. Jest to bardzo mało. Możesz użyć największego możliwego do ustawienia czasu próbkowania i nie wpłynie to na spowolnienie pomiarów. A znacznie zminimalizujesz problemy związane z ładowaniem kondensatora S/H.
Czyli nie jestem osamotniony w tym temacie :). Tak jak pisałem wcześniej zmieniłem procesor na LPC i mam uruchomionych większość jego peryferiów i GPS działa normalnie. Co do STM32 to dowiedziałem się, że to wina pamięci flash. Według firmy ST gdyby wykonywać program z pamięci RAM to powinno działać ale nigdy tego nie sprawdziłem z braku czasu. Sugerowali...
-jeden procesor 1 mips i wykonuje wszystkie zadania w jednej operacji Zadania takie jak dodawanie, mnożenie, operacje logiczne na bitach, skoki warunkowe, czyli wykonywanie określonego programu, a nie przełaczanie jakiegoś pinu! Wracając do Core i7 - wiesz w takim razie jak szybko taki Core i7 przełącza pin???
Mam przed sobą Cortex™-M3 Revision r2p1 Technical Reference Manual i tam napisane jest iż MLA trwa dwa cykle a np ADD, MUL jeden czyli ja zysku nie widzę przy wykorzystaniu tego rozkazu (Czasowego bo to tylko chyba objętościowy zysk). Staram się w sposób świadomy pisać w C tak aby kod wykonywał się jak najszbiciej. ale jeśli nie ma różnicy w czasie...
Ostatnio trafiła mi się robota przepisania softu na pewien sprzęt... Poprzedni soft w oparciu o SPL zakatował biednego STM32F105 tak, że nie wyrabiał się z powierzonymi mu zadaniami: przepełniały mu sie kolejki, były zwiechy, częste restarty... Procek popędzony na 36MHz (czyli max dla HSI) pożerał baterię jak tylko mógł, żeby choć trochę postarać się...
Freddie czy jesteś pewien że Cortex-M0 to jest architektura Harwardzka (zmodyfikowana architektura Harwardzka)? Co do Cortex-M3 nie mam najmniejszych wątpliwości że masz racje bo to pisze choćby tutaj [url=http://www.btc.pl/pdf/stm32wp_rozdz... i jest świetnie uzasadnione ale także tutaj http://www.arm.com/products/processors/c...
Odnośnie inicjowania liczników, pole struktury TIM_Period w jakim związku pozostaje z okresem wykonywania przerwania powstającego od kanałów licznika. Zauważyłem że wartośc tego pola nie zawsze ma wpływ na okres wyzwalania przerwań. Chyba że coś pochrzaniłem.
Może wtedy, gdy wykonujesz sscanf, do RxBufferRMC zaczynają już się wpisywać nowe dane? Czy tam się wykonuje wiele zadań współbieżnie, czy jest wyraźny podział, co kiedy ma się wykonywać? Techniką, jakiej można użyć przy debugowaniu takiego programu, jest kopiowanie danych przed ich użyciem tak, by w razie błędu mieć kopię danych, dla których ten błąd...
No ale dzięki temu wiem co po kolei się wykonuje w przerwaniu...
Witam, Nie bardzo wiem co robię źle w związku z czym zwracam się z prośbą o pomoc do szanownych Kolegów. Mianowicie mam taki oto prosty kod: [syntax=c] static int16_t count = 0; float dd = count * 1.0f; ... [/syntax] W chwili rzutowania procesor się zwiesza, tzn. nie przechodzi do wykonywania dalszego kodu. Oczywiście próbowałem również...
Witam, Czy jest jakaś różnica w objętości lub prędkości wykonywania kodu gdy mam możliwość uruchomienia uC w trybie Debugra czy nie? Na niektórych maszynach jest np tryb realase oraz debug, kompilacja w tym pierwszym powoduje krótszy kod wynikowy (oraz szybsze wykonywanie się kodu?). Czy jeśli pisze jakiś programik, a zależy mi na szybkości wykonywania...
Testuję urządzenie składające się m.in z płytki STM32 Discovery oraz modułu ethernet na ENC28j60. Problem jest taki, że gdy włączę np. lampkę biurkową ( z transformatorem do halogenu 20W) która znajduje się w odległości ok. 40 cm bądź ją wyłączę, resetuje się kontroler ethernet. STM32 dalej wykonuje program. Dolutowałem już kondensator (47uF) między...
Tak, peryferia uC 32-bitowych są strasznie skomplikowane, tak strasznie, że nie da się ani przeczytać ich opisu, ani napisać kodu je obsługującego inaczej, niż biorąc gotowy przykład z HAL i modyfikując parametry. W takim prostym AVR do uruchomienia SPI potrzeba tylko trzech zapisów rejestrów, a w STM32 - aż trzech. To samo z UART, czyli tragedia po...
No tu akurat racji nie masz, bo bez wymuszenia int16_t będziesz miał 32-bitową wartość bez znaku, a z int16_t nastąpi prawidłowe rozszerzenie znakiem do 32 bitów podczas wykonywania obliczeń. Tyle że autor ma wartości bajtów "31" i "0", więc - tak jak pisałem - zmiana którą zaproponowałeś nic tu nie zmienia, bo to akurat jest wartość dodatnia. Problem...
Zegar peryferiów włączony?
Witam Zadecydowało, pozytywne doświadczenia z mikrokontrolerem STM32F1 oraz własnie rozeznanie na rynku. Wykonywałem wcześniej sterowanie u/f plus prosty estymator strumienia i różne transformacje układów współrzędnych (aB->dq) na stałoprzecinkowym procesorze (STM32F1), ale do mojego zadania potrzebna była szybka zmiennoprzecinkowa jednostka. Znacznie...
Masy nie będą połączone ze względu że wydawało mi się to poprawne aby nie uszkodzić stma, a dodatkowo nie mam takiego przymusu ponieważ STM ma tylko służyć za pomiar napięcia na boczniku , który jest elementem całej maszyny i płynie przez niego do 300amp. I miałem nadzieję że osobna masa spowoduje że to, że do adc podłącze 12V bez wspólnej masy i będę...
Korzystałem z tych bibliotek i muszę przyznać, że przyjemnie sie ich używa. Osobną kwestią jest jej wydajność ale Panowie przecież mamy do czynienia z procesorem 32-bitowym z instrukcjami Thumb2. Czy to będzie kilka kb kodu wiecej czy mniej nie jest czasem tak ważne jak czytelnosc kodu oraz jego modułowość. Naprawdę wiecej zależy teraz od linkera i...
Ale chyba za dużo gdybasz - napisz jakieś fragmenty kodu i porównaj czasy wykonywania - czy spełniają twoje założenia. A czy masz już napisaną oddzielnię obsługę jakiegoś z tych zadań? w sensie sterowanie silnikiem/odczyty i obróbka ramek? W końcu pewnie twój HAL i tak się skupi na ustawieniu DMA raz na jakiś okres czasu - więc całą resztę masz na obliczenia,...
Jeżeli szukacie informacji na temat sposobów zabezpieczania programów i produktów, to dostępny jest cykl szkoleń z tego zakresu na youtube. Znajdziecie tam ogólne informacje na temat metod zabezpieczania programów, szyfrowania danych, podziału programu na jednostki chronione i niechronione, rozwiązań sprzętowych wspomagających proces oraz rozwiązań...
albertb: Idąc tym tropem, każdy kompilator powinien z instrukcji a = 5 generować dwa takie same podstawienia, bo jakiś procesor może się pomylić i zignorować instrukcję. Jeśli specyfikacja architekury i ABI mówi, że stos ma być wyrównany, to ma być. Po to jest specyfikacja. Architektura ARM dopuszcza np. knwencję little-endian i big-endian, ale kompilatory...
Freddie, w tym wątku mowa jest nie o Twoim Genialnym DestroyRTOS, a o stosie USB od ST w typowej konfiguracji, gdzie obsługa USB jest nie w zadaniu RTOS, a w przerwaniu USB. Tak się składa, że sam peryferial USB w ST ma parę rejestrów, w których poszczególne bity są związane z różnymi endpointami. Co dalej - zapewne sam wiesz - kiedy dwa kawałki kodu...
STM32 w ogóle nie działa? Nie wykonuje programu?
Witam Mam takie pytanie czy istnieje możliwość wykonania pewnej procedury np podczas programowania STM32 albo przy pierwszym uruchomieniu? Chodzi mi dokładnie o wykonanie procedury np zapisującej coś do pamięci, ale tylko przy pierwszym uruchomieniu po zaprogramowaniu lub podczas programowania a przy kolejnych uruchomieniach już się nie wykonywała....
Witam, od jakiegoś czasu zastanawiała mnie jedna sytuacja. Dzieje się to przy odpaleniu debuggera w środowisku System Workbench for stm32 (konfiguracja generowana przez CubeMX). Program otwiera nowe pliki z niepokojącą informacją, że coś nie jest dostępne. W ogóle nie przeszkadza to w wykonywaniu kodu i pewnie Eclipse z nakładką na STM-y tak ma, ale...
Eee, czepiasz się. A te STM32 to nie mają czasem takiej przypadłości, że może szybkie na papierze to są, ale flash mają za wolny, żeby z niego się na pełnej prędkości wykonywać? Coś takiego kiedyś gdzieś (tzn. wiem gdzie i od kogo, ale nie powiem) słyszałem. Co do Xmeg, to obawiam się, że umoczyli nie zachowując starej metody programowania. Zamiast...
Witam problem jest następujący, inicjalizacja SPI przechodzi (wydaje mi się że poprawnie). Niżej podam wartości rejestrów SPI3. Problem polega na tym że nie mogę nic wpisać do DR w interfejsie SPI, nie mam jeszcze nic podpiętego do SPI ale mam zamiar przetestować całość na modułach MMcc1100 i płytce ewaluacyjnej z STM32 na pokładzie (stm32-p107 z OLIMEXu)....
Streszczając teraz większość informacji: 1. Posiadam STM32 z jednym ADC 12-bitowym, z 16 kanałami (https://www.st.com/resource/en/datashee... 2. Częstotliwość próbkowania ok. 20 kHz na zewnętrznym ADC. 3. Komunikacja SPI DMA, po przerwaniu z Timera. ad. 1) Czy koncepcja użycia zewnętrznych ADC w celu uniknięcia przesunięcia fazy napięcia...
Proponuje dodać do ulubionych stron: [url=https://www.st.com/en/microcontroll... A tutaj więcej szczegółów. [url=https://www.st.com/content/st_com/e... [url=https://www.st.com/en/microcontroll...
wykonywania połączeń wykonywania płytek wykonywania remontu
filmy darmowe oznaczenie zmywarka siemens listwa grzejna
zmywarka amica pompa myjąca diora bluetooth
Różnice między wzmacniaczami OP07 a OP07CDR Najlepsze taczki akumulatorowe: Makita, PowerPac, Scheppach, Greenworks