Jaki duży masz stos i gdzie umieszczony? Czy tą tablicę modyfikujesz w innej części programu? Czy to zmienna globalna, czy automatyczna? Albert
Czy działa Systick to łatwo sprawdzić w debuggerze. Zresztą wiele spraw można sprawdzić. Ja bym zaczął od tego czy właściwe rejestry podlegają zmianom. To nie jest nic trudnego, w krokowym trybie Też jaka wartość jest SystemCoreClock, to zmienna globalna. Może ląduje gdzieś w HardFault, zaraz po uruchomieniu. EDIT. Często problemem przy kopiowaniu plików,...
Czy zmienna kierunek jest globalna i volatile? Już po pierwszym przerwaniu powinna przyjąć wartość 1 lub 2, a nie być cały czas 0. Czy zaobserwowałeś zwiększanie wartości zmiennej enkoderA ?
Po co ci ta sekcja krytyczna w EXTI9_5_IRQHandler ? Czy jeszcze jakies przerwanie korzysta ze zmiennych ktore chcesz chronic ? Jesli jest faktycznie potrzebna )w co watpie) to obliczaj pierwiastek poza nia, skopiuj wynik do zmiennej lokalnej i dopiero w sekcji krytycznej przekopiuj zmienna lokalna do globalnej. Nieliniowe funkcje biblioteczne potrafia...
Witam, Mam pewne pytanie dotyczące zmiennej globalnej wyspecyfikowanej jako const. Taka zmienna nie może zostać zoptymalizowana i jest trzymana w sekcji nazywanej .rodata, która to znajduje się w pamięci FLASH. (W mikrokontrolerach stm32) W takim razie jeżeli zadeklaruje np. tabelicę: [syntax=c]const uint8_t tablica[1000]; [/syntax] to oznacza, że taka...
Witam Kolegów Przy okazji problemu z jakim borykam się [url=http://www.elektroda.pl/rtvforum/vi... udało mi się poprawnie uruchomić na procesorze STM32F107 system freeRTOS. Jestem mega pozytywnie zaskoczony tym, że całość systemu udało mi się poprawnie odpalić w Eclipse w zaledwie 4 godziny. Do tej pory uważałem, że...
Witam, próbuję funkcją malloc() za alokować około 2kB danych, jednak procesor zamiast za alokować wybrany obszar pamięci, wpada w przerwanie Hard Fault, występuje jakiś problem. Pamięci mam wolnej tyle ile potrzeba gdyż program jeszcze nie jest bardzo rozbudowany oraz mogę statycznie za alokować 2kB danych albo więcej tzn. np. stworzyć zmienna globalna...
Dodam tylko że użycie metody którą opisałem nie wymaga zmieniania tablicy w locie jak to zrobił Marek_Skalski . U mnie kod z przerwania wygląda tak: [syntax=c] Angle2 += Angle2_Step; Angle2_2 = Angle2 >> 6; U = (sinus_3har[(Angle2_2 + 0) & 0x03FF] * Vm * 2816) >> 20; V = (sinus_3har[(Angle2_2 + 341) & 0x03FF] * Vm * 2816) >>...
Biblioteki to jeden ze sposobów na pisanie kodu. Z tego co widziałem na forum to właśnie jest to sposób na szybki start, a krytyka jest związana raczej z nieumiejętnym korzystaniem z biblioteki w tym również w przykładach. Za przykład podam tutaj przykład GPIO - IO Toggle (stm32f4_dsp_stdperiph_lib). Definicja zmiennej GPIO_InitTypeDef GPIO_InitStructure;...
Witam, problem polega na tym że utworzyłem trzy zmienne globalne typu const uint8_t i kompilator przypisuje dwóm pierwszym ten sam adres 0x80030D4 . Trzecia zmienna już miała inny adres. Utworzyłem więc dwie kolejne zmienne do testów aby sprawdzić jaki otrzymają adres: const uint8_t ZMIENNA_TEST1=3; uint8_t zmiennaTest2=10; lecz niestety debugger ich...
Poniedziałkowe dziędobry. Teraz ADC + DMA. Może się komuś przyda. Na razie bez przerwań ale działa (dzięki komu to chyba wiadomo, a gdyby nie, to dzięki Freddie Chopin i BlueDraco, kolejność przypadkowa (kłopot z odmianą w Języku Polskim) ). [syntax=c] /***************************************... * Funkcja inicjalizacji ADC tak, ze...
1. Wartość SystemCoreClock jest nieokreślona, jeśli nie zawołałeś SystemCoreClockUpdate. Zmienna globalna raczej nie może być nieokreślona. I spojrzyj przykładowo: https://www.keil.com/pack/doc/CMSIS/Core... https://www.keil.com/pack/doc/CMSIS/Core... Albert
Czyli nie dość, że na stosie masz 1 kB tablicę, to jeszcze używasz funkcji która jest znana z tego, że używa naprawdę DUŻO stosu. Zacznij od zmniejszenia tej tablicy albo przeniesienia jej do zmiennych globalnych, a następnie - jeśli nie pomoże - znajdź jak w Keilu zwiększyć rozmiar stosu. Wielkie dzięki, pomogło. Przeniosłem do globalnych Do sekcji...
nie trzeba robić sztuk ze zmiennymi globalnymi ? Jakich to sztuczek? Normalna zmienna globalna, bo i funkcja wykorzystywana przez większość innych. A kod jak kod, można tak i na 100 innych sposobów:) Ale sposób ciekawy. Rozdzielczość staram się mieć dużą nie dla akurat takiej sytuacji z błędem +-1 (to niejako przy okazji, jeżeli kod podobny jak powyżej),...
Rzeczywiście. Rozmiar stosu mam 1024 więc się przepełnia. Dzięki. Skoro stos ma rozmiar 1024B to pozostałymi 111kB SRAMu są nie używane? Co stoi na przeszkodzie na rozszerzeniu stosu na cały zakres pamięci? Nie ma innego sposobu niż globalna zmienna? Czasami potrzebuję zapisać dużo danych tylko w obrębie jednej funkcji. Natomiast Malloc wydaje mi się...
int TDelay wyciągnij jako zmienną globalną. Za każdym razem, gdy SysTick wejdzie do przerwania ją tworzy, a to bez sensu, co? :) w końcu nigdy nie doliczysz do 500, skoro będziesz cxo chwile tworzył tą zmienną. właśnie tak myślałem że z tym jest coś nie tak, niestety z C też nie jestem mistrzem i przez to ta gafa, dzięki Porównaj: SysTickHandler SysTick_Handler...
Witam serdecznie, jakiś czas temu zacząłem moją zabawę z stm32. Po kilku tygodniach walki z darmowym oprogramowaniem (Eclipse + GCC, ograniczony Keil itd), zdecydowałem się na TrueStudio w wersji light. Mam jednak problem z tym oprogramowaniem podczas debugowania. Jaki to projekt? - projekt ma za zadanie odczytać dane z modułu RFID, następnie ma rozpoznać...
1. Jaka jest różnica między tymi dwoma zapisami, czy dobrze to rozumiem? TIM3->SR &=~TIM_SR_UIF; (tu zerujemy?) Powinno być: TIM3->SR =~TIM_SR_UIF; (tu rozumiem,że zmienia stan na przeciwny?) efekt powinien być w tym wypadku ten sam. Różnica opisana jest w RM, w którym opisana jest sekwencja zerowania bitów rejstru SR timerów. Zapisanie zera kasuje...
Program jest następujący: Mam strukture dla czujników a w niej tablice dla której zapisuje odczytane dane z danego czujnika: [syntax=c] typedef struct { // jakies inne zmienne volatile uint8_t dataToCalculate[6]; // do zapisu danych } czujnik; [/syntax] Tworzę 3 globalne zmienne 'czujnik' (używam 3 czujników): [syntax=c] czujnik Zyroskop = { ...}; czujnik...
Hejka, robię właśnie przesiadkę projektu z kompilatora IAR'a do GCC'a i mam problem z przeniesieniem niektórych ustawień, konkretniej chodzi o nie wycinanie przez linker konkretnych, nieużywanych zmiennych globalnych wygenerowanych przez zewnętrzne narzędzie, zawierających informacje np. o dacie buildu, checksumie itp. które są potem w przypadku reklamacji...
Ja w takich przypadkach stosuję metodę którą na swoje potrzeby nazwałem "split objects". Obiekt u mnie składa się po prostu z dwóch części - stałej i zmiennej. Zwykle "główny" obiekt jest stały, a ten "zmienny" fragment jest podrzędny, jednak są sytuacje w których robię to odwrotnie, głównie wynikające z polimorfizmu lub dlatego że łatwiej/lepiej jest...
Postanowilem podzielic sie z wami moimi doswiadczeniami wykorzystania interfejsu USB we wlasnych projektach. Jak wiadomo interfejs USB jest juz powszechnie dolaczanym interfejsem do mikrokontrolerow wiekszosci producentow na rynku. Sama obsluga USB zarowno po stronie mikrokontrolera jak i pc (a wlasciwie Windows) jest mniej przyjazna niz w wiekszosci...
Witam U mnie akurat to pomogło... ale cóż co projekt to inne problemy. Ja osobiście nie zrobił bym nigdy tak jak Ty czyli odbierać dane w przerwaniu i zapisywać je do globalnej zmiennej. Jak już muszę używać jakiś globalnych zmiennych to używam to zapisu i odczytu tych zmiennych funkcji. np readCos, i writeCos. Wiem że tylko ta funkcja może mi coś zmienić....
A jak ten kod działa, kiedy przycisk pozostaje wciśnięty? Faktycznie, po upływie zadanego czasu program odczytuje długie wciśnięcie jako kolejne. , i w czym jest on lepszy od moich dwóch linii kodu, które dają poprawną reakcję na naciśnięcie przycisku? O których liniach kodu mowa? Jeśli chodzi o SysTick (przykład 2), to niestety, ale jeszcze tego nie...
Witam, Od pewnego czasu przestawiłem się z AVR na STM32, zbudowałem sobie proste ramię robota na 5 serv + sterownik Maestro od pololu, wszystko ładnie śmiga. Tydzień temu kupiłem sobie takie Gamepad: http://botland.com.pl/joystick/2560-game... . Chciałem za pomocą tego pada sterować ramieniem. I już na 1 kroku...
globalna zmienna zmienna globalna stm32 zmienna
centralny zamek sygnalizacja silniczek siłownika zamka aparat trust
Podłączenie multiroom Cyfrowy Polsat przez Wi-Fi Ocynkowane samochody po 2010 roku: marki i modele