Na początek: // TIM1 -> GPIOD14/D11, do obliczen brac 168MHz, 500Hz, 2ms mam 427Hz, 2.34ms ! TIM1 -> PSC |= 5; TIM1 -> ARR |= 55999; Co tu robi suma logiczna? Czyżbyś chciał ustawić niektóre bity rejestru preskalera i okresu, nie ruszając pozostałych? Co taki zapis ma na celu? Dalej to samo przy zapisach rejestrów sterujących. Po co? Ustaw bit ARPE...
W swoich programach na stm32f407 po zapisaniu preskalera w timerze wpisuję 1 do EGR, żeby wywołać Update generation. PSC contains the value to be loaded in the active prescaler register at each update event.
No tak ma być, przy prawidłowej inicjalizacji systemu nie powrotu z tej funkcji. vTaskStartScheduler() will only return if there is insufficient RTOS heap available to create the idle or timer daemon tasks.
Trochę dziwna podziałka 400. Tak z ciekawości do czego. Chciałem przetestować tryb encoder mode w timerze mikrokontrolera STM32F407 :D Jakby kogoś interesowała płytka z STM32F407VET oczywiście bez programatora. https://www.aliexpress.com/store/product...
Tak o ile AHB_presc = 1.
Całkiem źle programujesz timer. Kolejność: PSC, ARR, SMCR CCMRx CCER DIER CR1 Główny błąd - to zaczynanie od CR1 - włączasz timer przed zaprogramowaniem go. Jeszcze taki drobiazg: TIM1->SR = (uint16_t) ~TIM_SR_UIF; - wyrzuć (uint16_t)
Nie ma najmniejszego problemu, żebyś nie ruszała niczego w ogólnej strukturze projektu, tylko po prostu w main() zmieniła inicjalizację i obsługę tego właśnie timera na własny kod. Jak masz debugger to zobacz co dokładnie jest we wszystkich rejestrach tego timera.
Zewnętrzne przerwania nadają się - przykładowo - do obsługi pinów sygnalizacyjnych z innych układów scalonych, a nie do zabaw z przyciskami. To po prostu nigdy nie zadziała... Zrób sobie przysługę i odczytuj po prostu wszystkie piny w okresowym przerwaniu od timera (co 20-50ms, albo i rzadziej) i będzie wtedy działało perfekcyjnie.
Bardziej chodzi o to, ze timer może zostać ustawiony jako trigger transferów dma (nie chodzi tu o przerwania.). Samo GPIO nie potrafi "poprosic" DMA o transfer.
Tak przy okazji . Gdybym miał projekt gdzie uC maiłby bardzo dużo do liczenia, i miałby do obsługi sporo przycisków to z punktu widzenia wykorzystania zasobów która metoda jest lepsza: przerwanie tak jak w tym przypadku czy za pomocą timera? Oczywiście że timer.
Jak się bawisz Keilem, to prześledź sobie działanie programu w symulatorze jak nie masz debuggera. Zobacz też czy masz zdefiniowane przerwanie od systick i co ono robi, jak nie grzebałeś nic w pliku konfiguracyjnym, to z automatu on jest włączany na wartości domyślne.
sprawdź w dokumentacji czy aby po zresetowaniu flagi przerwania timera nie trzeba odczekać kilka instrukcji (2-3 NOP'y). Jeżeli tak jest, to w przeciwnym wypadku zaraz po wyjściu przerwanie otworzy się drugi raz i w tej sposób dioda mrugnie tak że tego nie zauważysz. Możesz to sprawdzić tak że diodę ustawisz na zapłoną (a nie stan przeciwny), to po...
Dzięki za rady :) Póki co sobie tylko sprawdzałem czy mi jakiekolwiek przerwanie zewnętrzne zadziała ;p jutro mam cały dzień wolny to zajmę się timerami ;p
GPIOC skonfigurowane i sprawdzone, timer również generuje pwm.
Twoje problemy rozwiązałby jakiś TMS320 z serii C2000. Ale to tylko moje dywagacje. Jeśli chodzi o STM32F4 to musisz przemyśleć czy rzeczywiście 4 MHz jest niezbędne dla ADC. Kiedyś bawiłem się timerami w Keil'u więc kod wstępny na pewno Ci się przyda (kanały timera3 działają na GPIO->C6-C9): odznacz NVIC_EnableIRQ !!! ): [syntax=c]void TIM3_IRQHandler(void)...
Ja bym zrobił po prostu [syntax=c]zmienna32bit = TIM6 -> CNT; [/syntax] Bez wołania jakiś skomplikowanych funkcji. Wołanie funkcji HAL-a w takiej sytuacji chyba nie ma sensu. Jezeli chcesz juz HAL-em koniecznie to bym użył niskopoziomowego [syntax=c]__HAL_TIM_GetCounter(...)[/syn... który poprzez 5 tysiecy zagnieżdżonych definicji sprowadza się do...
Wasz kod nie działa głównie z tego powodu, że rejestry timera są 16-bitowe, więc liczba 83999 raczej się w nich nie zmieści No ale kto by czytał te BEZSENSOWNE i ZŁOŚLIWIE ostrzeżenia kompilatora... 4\/3!!
Zdefiniowane w krzemie. To jest watchdog nie timer. Robi dokładnie to do czego jest przeznaczony. Jedyne co możesz zrobić to zweryfikować źródło resetu.
Poczytaj książkę z napędu elektrycznego - najlepiej zacząć od czegoś takiego. Rozrysuje sobie 6 tranzystorów (falowinik) i każdy możliwy stan zasialnia uzwojeń (3 uzwojenia skojarzone w gwiazdę). Zobacz jakie napięcia się odkładają na każdej fazie i wtedy będzie lepszy obraz tego co chcesz zrobić.. samemu też długo do tego dochodziłem. no tak.. i rozrysuj...
Cześć, Mam urządzenie na STM32F407VGT6, zewnętrzny kwarc. Ostatnio wpadły mi w ręce uc z Chin, z Aliexpress (tylko tam były). Wyglądały na normalne. Po wlutowaniu kliku okazało się, że są one zablokowane, trzeba było wykasować żeby móc zaprogramować. Programowanie ok, odczyt sygnatur również. Co się okazało - niektóre urządzenia zrywało CANa, ale nie...
Powiem szczerze metoda sprawdzania niesamowita. Czytać rejestr w kólko nawet jak tam się nic zrobiło. Ustaw przerwanie ADC i tam breakpoint - to będziesz wiedział czy jakaś konwersja przeszła Do tego wiele dziwnych rzeczy i błedów. proponuję zegar ustawić przy odpalaniu HAL-em unikniesz głupich błedów. Później możesz sobie zrobić na rejestrach wiedząc,...
(at)Freddie Chopin podał mi bibliotekę stm32f407xx.h, ale u mnie w projekcie wszystkie są opisane w taki sposób: stm32f4xx.h. (brak 07). Nagłówek stm32f4xx.h "pod maską" tak naprawdę dołącza odpowiedni dla danego układu nagłówek - np. stm32f407xx.h, zależnie od tego co jest zdefiniowane globalnie w projekcie: #if defined(STM32F405xx) #include...
Po pierwsze wstaw kod tak jak jest napisane w istrukcji do forum. po drugie - tam nie ma (albo ja nie znalazłem) : 1. Właczenia zegara UARTa ani timera 2. Ustawienia AF pinów ( o ile te piny są do użycią przez UART. Jezeli nie to brak wogóle ich ustaiwnia).
No więc jeśli popatrzysz na specyfikację to ja z PWM generuje: CL1 - synchronizacja linii w poziomie CL2 - data shift M - zmienia sygnał sterownika lcd na ac Pozostałe sygnały inaczaj. Np. do FLM używam timera i interruptu. W ten sposób wszystkie sygnały są odopwiedniej częstotliwości jak sprawdziłem na oscyloskopie. Niestety jedyne co widzę na wyświetlaczu...
Wymyśliłem sobie, że użyję ADC1 do wyzwolenia DMA. ADC nie będzie nic mierzyć, jednak wyzwoli DMA2, natomiast ADC mogę wyzwalać innym timmerem. Przesiedziałem z tym cały dzień i coś pomijam bo nie działa wyzwalanie ADC z timmera. Jeśli uruchomię ADC z własnym zegarem, transfer DMA działa po każdej konwersji. Jeśli uruchomię ADC wyzwalane z timmera,...
Kodu więcej - ale co się bardziej opłaca ;] Zmarnować kilkadziesiąt cykli co kilkadziesiąt ms, czy kilkanaście cykli co 100us (dla 115200)? Kazde wejscie w ISRa to 12 cykli. Jesli 2 UARTy ładują znak co 100us, to srednio co 50us masz przerwanie. W kazdej sekundzie na samo wejscie do ISRów idzie 240k cykli... + (szacuję) 10 cykli kodu /co znak/ *20k...
Witam, Próbuje zaimplementować hosta na stm32f407, który będzie obsługiwał klawiatury. Bazuje na przykładzie ze strony: [url=http://stm32f4-discovery.com/2014/0... Przykład jest oparty na: STM32_USB-Host-Device_Lib_V2.1 Mam dwa problemy: 1. Nie działa wysyłanie raportów z hosta do klawiatury...
Witam, Trochę potentegowałem w głowie i schematy okazały się banalnie proste. Interfejs do OSD z 8-ma kolorami + transparent z możliwością załączania własnej synchronizacji zaprojektowany (PCB też). Temat uważam za zamknięty. Z ostatniej chwili ! OSD prawie działa ! Będzie jeszcze kilka drobnych poprawek w interfejsie oraz dostosowanie bibliotek graficznych...
Wracając do tematu, czyli STM32F4DISCOVERY rozpoczęcie programowania. Chciałem sprawdzić działanie FPU wykonując proste dodawanie, mnożenie itd. float'ów w przerwaniu od timera. Ku mojemu zdziwieniu przy każdym wykonaniu instrukcji na float'ach wywala mi HardFault. Gdy wyłączyłem w opcjach korzystanie z FPU wszystko hula. Używam Keil'a w wersji dla...
Nie rozumiem o czym piszesz. Coś całkowicie mieszasz i nie rozumiesz i próbujesz na chybił trafił coś sklecić (tak jak to w Arduino jest przyjęte). Dlatego nie lubię arduino a nie ze względu na sprzęt czy IDE. To pomógłbyś coś skleić do testów? Discovery mam od 2dni. Wgrany program z linku powyżej powoduje to że wyświetlane są te pełne prostokaty w...
Tak, biblioteka jest mojego autorstwa. Parametry: Obsługa DPV0 Obsługa DPV1 Prędkość transmisji 9600-1,5M Zasoby procesora: 1 timer, 1 uart Sposób wywołania: funkcja inicjująca (inicjacja pamięci, inicjacja protokołu) -> zwraca - adresy obszaru pamięci do wymiany danych z PLC. 1. Wejścia 2. Wyjścia 3. Diagnostyka Cała obsługa protokołu jest niedostępna...
Witam, zastanawia mnie taka sprawa, która postaram się przedstawić w formie przykładu. Otóż korzystam, z płytki STM32F4DISCOVERY, na której zaczynam testować rożne peryferia, które przydadzą mi się do budowy falownika. Pierwsze testy zacząłem przeprowadzać na TIM1. Właściwie całą konfigurację skopiowałem z podobnego projektu na STM32F103RB. Jako wyjścia...
Witam, Na STM32F407VG Discovery zaimplementowałem sobie system freeRTOS. Do projektu systemu dołączyłem pliki z ARM_CM4F... Mam nadzieje że dobrze .... Stworzyłem jakiś proste zadania i teraz chce dojść co i jak z tymi czasami i częstotliwościami. Skoro mój STM może mieć max 168MHz to poprostu w pliku freeRTOSConfig.h wpisać tak: [syntax=c] extern uint32_t...
Witam wszystkich po raz kolejny. Potrzebuję rady doświadczonych kolegów na temat wydajności kodu. Otóż pracuję nad kodem w którym będą istnieć nawzajem różne procesy - adc, uart itd. Aktualnie piszę kod do obsługi SPI, w celu komunikacji z urządzeniem. Potrzebuję wysłać przynajmniej 7 bajtów do urządzenia a potem odczytać odpowiedź. Wszystko gra i komunikacja...
Poczytaj o PWM i DMA burst mode w advanced timers. Wtedy mozesz sobie poszaleć -przynamniej tak mi się wydaje
Witam, Piszę program sterujący pracą zgrzewarki oporowej. Za pomocą PWM załączam tranzystory dużej mocy na określony czas z określonym wypełnieniem. Istotą mojego problemu jest pojawianie się napięcia na pinach, na których mam PWM (PE9, PE11, PC8, PC9) podczas resetu mikrokontrolera oraz podczas włączania/wyłączania mikrokontrolera. Nie mogę oczywiście...
Nie wiem jak z ta zakrecona biblioteka od ST :) moj dzialajacy kod na STM32F407 z jednego projektu (z tym ze wyzwalanie ADC jest z Timera). Przerwanie DMA wyzwalane po zebraniu 8 probek... Twojego kodu nie analizuje bo ta biblioteka dziala czasami jak chce, z tego co pamietam na F4 chyba tez z nia mialem problem przy ADC i DMA... [syntax=cpp] volatile...
Dzień dobry! Poniżej kawałek kodu, trochę nie ociosany, co prawda, ale może rzuci jakieś światło na problem. [syntax=c] #include <stdio.h> #include <string.h> #include "stm32f4xx.h" #include "FreeRTOS.h" #include "task.h" #include "timers.h" #include "semphr.h" #include "misc.h" /* moje */ #include "sine.h" #include "timer.h" #include "leds.h"...
No i tak działa - sam RTOS Dodano po 35 następnie dodałem w mainie wywołanie: ETH_BSP_Config(); System działa - wykonuje się zadanie Task_Main, potem dodaje wywołanie: LwIP_Init(); i powtórka zadanie Task_Main nie wykonuje się. Z programem ląduję w : void HardFault_Handler(void) { /* Go to infinite loop when Hard Fault exception occurs */ while (1)...
Chciałbym podzielić się swoim tworem DS18B20 + STM32F4 Discovery po niecałych 2 miesiącach obcowania z poradnikiem. Zaczynając od zera jeśli chodzi o znajomość mikrokontrolerów z podstawową znajomością C. [syntax=c]#include "stm32f407xx.h" void delay(uint16_t time) { TIM2->CNT = 1; while (TIM2->CNT<= time); } static void reset (void) { GPIOB->MODER...
Hej, chciałem was poprosić o pomoc w postawieniu FreeRTOS na STM32F407 VG discovery Board. Przeczytałem kilkakrotnie tutorial na stronie http://imagizer.imageshack.us/v2/320x240... Następnie dodaje pliki RTOS'a zgodnie z instrukcją http://imagizer.imageshack.us/v2/320x240... W kolejnym kroku dodaje FreeRTOSConfig.h do katalogu...
3 us to 63 cykle - niby to wcale nie mało dla rdzenia Cortex. Wygeneruj impuls startu konwersji na timerze, w przerwaniu timera na koniec impulsu odpal transmisję, po zakończeniu transmisji z ADC wyzwól ponownie timer. Nie jestem pewny czy zwalnianie uC do 21 MHz to dobry pomysł. Sama transmisja też zajmie trochę czasu, potem obróbka odebranych danych...
Witam mam taki problem, otóż mój STM32F4 bardzo dziwnie się zachowuje. Mój program ma odczytywać z 3 różnych czujników przez I2C dane i przeliczać je. I2C zrealizowane jest na przerwaniach (z najwyższym priorytetem), dodatkowo używam timera 2, by odmierzał czas. Oto kod: [syntax=c]#include "stm32f4xx.h" #include "stm32f4xx_conf.h" #include <stdio.h>...
Potrzebuję zrobić bardzo dokładny programowalny generator częstotliwości w zakresie 1 Hz-1 MHz (ewentualnie do 3 MHz). Jaki kształt ma mieć przebieg? Co ma być na wyjściu takiego generatora? Przetwornik akustyczny? Antena? Laser? Przebieg ma być prostokątny. Na końcu będzie lampa ale oczywiście nie podpięta bezpośrednio. Na tym etapie potrzebuję samego...
(at)sulfur Dopiero teraz znalazłem czas żeby dalej zająć się CANem. Ustawiłem tak jak mówiłeś i dalej nic. Nie mam pomysłu co sprawdzić . Tak jak wcześniej wspomniałem mam przejściówkę USB/CAN za pomocą której próbuję przetestować CANa. Program do obsługi tej przejściówki w ustawieniach transmisji wygląda następująco : http://obrazki.elektroda.pl/8802608800_1...
Teoretycznie można chyba użyć DMA do przerzucania danych z GPIO do pamięci lub odwrotnie, ale trzeba raczej użyć timera do "taktowania" DMA. 4\/3!!
Witam, Próbuje uruchomić wyświetlacz oparty o ILI9341 z wykorzystaniem SPI. Wyświetlacz sprawdzałem pod Arduino i działa, jest sprawny. Próbuję podpiąć go do STM32F407ZET6. SPI działa, widać że są przesyłane dane na oscyloskopie. Zaczerpnąłem procedurę inicjalizacji wyświetlacza z Adafruit dla Arduino ale wyświetlacz jak był biały tak jest po wgraniu...
Witam, próbuje zaprogramować obsługę karty sd niestety program coocox "wisi" na funkcji wait_ready, a głebiej na rcvr_spi, gdzie szukać problemu w podłaczeniu ? [syntax=c] /*--------------------------------------... /* Wait for card ready */ /*--------------------------------------... static...
Witam. Przykładowo próbuje uzyskać częstotliwość PWM 42kHz, kod: [syntax=c] #include "stm32f4xx.h" int main(void) { RCC->AHB1ENR |= RCC_AHB1ENR_GPIOBEN; RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; //podpiecie zegara dla Timer2 //PIN10 CH3 GPIOB->MODER |= 1<<21; GPIOB->AFR[1] |= 1<<8; TIM2->PSC= 101; //prescaler TIM2->ARR= 101;...
Witam, Używam procka STM32F407 (zestaw Discovery). Skonfigurowałem wyjścia Timera1 w trybie PWM zwykłe oraz komplementarne (OCx, OCxN) tak aby na tych sześciu wyjściach otrzymać ten sam przebieg PWM (Polaryzacje komplementarnych wyjść odwróciłem (bity-OCxNP) aby nie były one zanegowane) https://obrazki.elektroda.pl/2279189900_... https://obrazki.elektroda.pl/9326014900_...
Wkleiłem projekt do Eclipse.... kompilacja Make.... 50sekund, tup... 22sekundy (i7 2,9GHz) Jak włączysz w opcjach projektu kompilację wielowątkową, to w make skompiluje się z podobną prędkością jak w tup. Prędkość tup można w Eclipse nieco poprawić - przynajmniej u mnie różnica była znaczna - https://groups.google.com/d/msg/tup-user...
Sprawdzona konfiguracja na STM32F407VGT [syntax=c]void adc_init(void) { RCC->APB2ENR |= RCC_APB2ENR_ADC1EN; RCC->AHB1ENR |= RCC_AHB1ENR_DMA2EN; //konfiguracja ADC ADC1->CR2 = ADC_CR2_ADON | //włącz ADC ADC_CR2_EXTEN_0 | /*ADC_CR2_EXTEN_1 |*///wyzwalanie przetwornika zboczem opadającym i narastającym ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_0 |//wyzwalanie...
Witam, Męczę się z obsługą wyświetlacza LCD 7 cali z sterownikiem SSD1963 za pomocą STM32F407. Z tego co zmierzyłem to np po wysłaniu danych funkcją clrScr zgadza się wysłana wartość na pinach wyświetlacza. jeśli np. 0xffff to na całej magistrali mam jedynki itp... Jednak na wyświetlaczu nic się nie wyświetla ... Na pinach są napięcia ok 2.9, chyba...
Dzień dobry, przychodzę z następującym problemem. Mam podłączony do STM32F407 wyświetlacz o rozdzielczości 320x240 po dwóch liniach SPI. Linia SPI1 odpowiada za wyświetlanie na ekranie grafiki, łączy się ona z kontrolerem ILI9341. Tutaj wszystko działa bardzo dobrze. Natomiast na linii SPI3, która odpowiedzialna jest za komunikację z sterownikiem dotyku...
Włączyć timer możesz zapisując wszystkie potrzebne bity do CR1 jedną instrukcją - na końcu sekwencji inicjującej timer.
Próbuje uruchomić przerwania: vector.c wygląda tak [syntax=c]static void __Default_Handler(void) __attribute__ ((interrupt)); static void __Default_Handler(void) { while (1); } /* +=======================================... | assign all unhandled interrupts to the default handler +=======================================...
Timer1 w porównaniu do Timera3 ma dodatkowy rejestr TIM1_BDTR, a w nim jest bit MOE, który należy ustawić aby wyjścia zaczęły działać. Nie wiem jak to się robi w bibliotece STM, bo jej nie używam.
Witam, Temat już przeze mnie poruszany, ale utknął w martwym punkcie. Moje pytanie jest: jak uzyskać na Cortex-M4 (np. STM32F405) częstotliwość PWM wyższą niż 20kHz przy rozdzielczości timera 12 bit? Chcę go użyć jako DAC.
Witam, Próbuje uruchomić obsługę karty SD pod STM32f103ZET6. Wykorzystuje do tego bibliotekę, używaną wcześniej pod STM32f407. Zmodyfikowałem tylko inicjalizacje SPI i dorzuciłem testową funkcję zapisu do karty. Mimo to karta nie chce ruszyć. Przy próbie otwarcia jakiegokolwiek pliku dostaje: FR_NOT_READY. Próbowałem już na dwóch kartach SD, formatowałem...
Mnie właśnie przydałby się sam scheduler, bo koncepcja działania peryferiów często bardzo zależy od użytego układu i samego projektu. Może powinieneś rozdzielić ten projekt na dwa, jeden to czysty scheduler i drugi projekt to cały system który z kolei jest oparty o ten pierwszy projekt. Zauważ, że im bardziej rozbudowany będzie ten projekt, tym trudniej...
Próbuje skonfigurować timer TIM1 jako generator pwm. W celach edukacyjnych puściłem go w zwolnionym tempie aby zobaczyć jak działa. Nie rozumiem dlaczego po ustawieniu opcji [Center-aligned mode] timer zaczyna pracę od zliczania w dół zamiast rozpocząć od 0 w górę. Przeglądam dokumentację i nic nie przychodzi mi do głowy, może ktoś zna odpowiedź bo...
Witam, walczę z ustaieniami timera 2 dla procesora stm32f107. Wg. moich obliczeń timer powinien przepełniać się co 1s, jednak w rzeczywistości przerywanie wykonuje sie co 10s. Zamieszczam ponieżej moje obliczenia: Układ taktowany jest z PLL 72 MHz-ami Preskaler ustawiony na 7200. [syntax=c]TIM2->PSC = 7199;[/syntax] 72 MHz / 7200 = 10 kHz 1/10kHz =...
W timerze konfigurujesz jedno przerwanie, a w NVICu aktywujesz inne... Handlery przerwań nie muszą mieć atrybutu interrupt, pisze się je jako zwykłe funkcje więc atrybut jest ignorowany.
Keil startując CPU odpala funkcję SystemInit() która to jest zdefiniowana w pliku system_stm32f4xx.c . Plik ten możesz napisać sobie sam, lub możesz skorzystać z gotowca. Gotowce masz w przykładach od STM lub możesz wygenerować go za pomocą Excela jak wspominał kolega imarszi . Tutaj masz opis jak się tym narzędziem poslugiwać i skąd je wziąć : Clock...
uC to stm32f207. Timer napędza pwm jedno z wyjść (zmienne pwm z preloadingiem co jakiś okres). Wszystko działa ładnie na zmapowanym pinie dla wyjścia OC tego timera (tim 10). Jednak czasem potrzebuję wygenerować identyczny przebieg na pinie tego timera oraz na innym pinie GPIO, akurat tego z tim1. Jednym z rozwiązań jest załadowanie danymi w tym samym...
Dzięki za obszerne wyjaśnienie, muszę to teraz przetrawić. A do czego jest mi to potrzebne? Ano właśnie do zbudowania generatora funkcyjnego dla audio, ale nie tylko. Chcę zbudować także syntezator cyfrowy. Mam już nawet do tego płytki na STM32F405 i 429, więc moc obliczeniowa jest.Bez trudu można znaleźć inny mój wątek o obsłudze klawiatury. Mam jeszcze...
Witam, Zabrałem się za mój pierwszy układ na Cortexie M-3. Zadaniem układu jest (na początek). 1. Generowanie sygnału z DAC. 2. DAC jest triggerowany przez timer (chwilowo T2). 3. DAC wykorzystuje DMA (DMA2_Channel3). I dotąd jakoś wszystko działało (DMA w trybie Circular). Generowany przebieg był ok. Docelowo potrzebuje podmieniać (przełączać się)...
Witam, zwracam się z gorącą prośbą do osób, którym udało się uruchomić FreeRTOS: zróbcie w końcu polski tutorial jak stworzyć zupełnie od zera najprostszy projekt z wykorzystaniem FreeRTOS. Darujcie komentarze, że w sieci są setki artykułów na ten temat, bo owszem są. Prawią o tym czym jest FreeRTOS, jak go używać, do czego służą poszczególne elementy,...
Witam, Uruchomiłem watchodoga w ten sposób: [syntax=c]RCC_APB1ENR.B11 = 1; // Enable clock gating for Watchdog Timer 0 module WWDG_CFR = 1; // Write window value to be compared to the downcounter WWDG_CR = 0b10000000; // Enable the watchdog while (1) // Endless loop, WatchDog_Timer will reset ARM[/syntax] Procesor pieknie sie resetuje, co widzę po tym,...
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 w procku którym mam komunikacje po -SPI (DMA),(z W5500 Enet uzyskałem 6 MegaBitów ) -OneWire (rs232 DMA), -CAN, i drugi Rs232 DMA (ten o którym się pytam) do KNX Dodatkowo ma inerpreter Pawn, którym możesz sobie np dodać 3 Taski na Online których średniej wielkości program wykonuje się 300us na task... Treaz potraktuj go 200 tysiącami przerwań...
AT90PWMx - Produkt w fazie zakończenia produkcji. Nie ma sensu w to inwestować. ATTiny26 - zupełnie bez sensu jeśli idzie o falowniki. Praktycznie żadnego zysku względem mega88. ATXMEGAxx - od biedy może być do nauki. Ale pamiętaj o upierdliwości ADC w trybie single ended (offset), braku synchronizacji pracy liczników z jedną podstawą czasu, pomiar...
Wydaje mi się że nie wystarczy jedynie po prostu wywołać podanej przez Ciebie funkcji. Po pierwsze należy odpalić funkcję dns_init(), a jako jej parametr najlepiej przekazać pierwszy z adresów DNS uzyskanych po zakończeniu algorytmu DHCP (o ile się go używa), ponieważ to zapewni niezależność od podłączenia urządzenia. DHCP zapewni uzyskanie adresu DNS...
Mam prosty program testujący podstawowe funkcje stm32f405. Za pomocą przerwania od timera chcę migać diodą. (Korzystam z bibliotek stm): Program w pliku main.c: [syntax=c] #include "STM32F4xx.h" void Config_GPIO() { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GP... ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode...
Od kilku dni bawię się biblioteką Helixa a dokładniej wersją z projektu: [url=http://www.stm32circle.com/projects... Niestety to co dostaje na wyjściu tylko przypomina to co powinno tam być ;) W załączniku dołączam nagraną próbkę (trzeba słuchać na fulla żeby coś usłyszeć) a tu link do oryginału: [url=http://www.youtube.com/watch?v=KQ6z...
Witam, Mam podpięte ZL26ARM z STM32F107 do OpenOCD i Eclipse Dodałem now procesor i platformę do Contiki. Chcę odpalić ethernet. Sprzęt zainicjalizował się dobrze bo w buforze mam ramki ARP od komputera. Problem jest natomiast taki że po kilku sekundach od puszczenia kodu, program ląduje mi z HardFault Handler. Nie bardzo wiem jak podejrzeć skąd on...
Witam, mam taki problem z stm32f407, otóż odbieram dane z różnych czujników przez magistralę I2C i wszystko działało bez problemu, ale potrzebuję również odmierzać czas w programie dlatego włączyłem timer i wygląda na to, że jak przychodzi przerwanie od timera w trakcie wysyłania danych po I2C. Samo przerwanie jest bardzo krótkie, także wydawało mi...
Witam, Mam problem z timerem pracującym w trybie input pwm. Chcę zmierzyć współczynnik wypełnienia przebiegu prostokątnego. Ten tryb umożliwia pomiar zarówno częstotliwości jak i współczynnika wypełnienia. Jednak gdy uruchamiam układ współczynnik wypełniania równa się okresowi przebiegu. W rejestrach CCR1 i CCR2 są te same wartości. Mikrokontroler na...
Cały kod dzieli się na dwie części bootloader + główna aplikacja. MAC zainicjowany w bootloaderze działa poprawnie, pingi latają, dhcp działa, zaprogramować flash się przez niego da. Dokładnie ten sam kod w głównej aplikacji nie działa. Tj - nie ma przerwań i nie działa DMA. Wysłanie pakietu po inicjalizacji działa, tak jakby, wireshark pokazuje że...
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...
Witam, mam problem z komunikacją po 1-Wire, termometr DS18S20 odpowiada mi na sygnał reset jednak nie wysyła danych, odczytuje cały czas z magistrali 0xFF. - Termometr działa na 100% - mam inną płytkę z ATmegą 32 w której go sprawdzam - i tam działa wszystko bez problemowo, Oto kluczowe fragmenty mojego kodu: [syntax=cpp] #define SYS_CLK 8000000 //...
Witam, Próbuje zrobić urządzenie, które w tym samym czasie będzie wstanie komunikować się z komputerem (USB HID DEVICE), jak i przyjmować komendy z klawiatury, bezpośrednio podpiętej do niego (USB HOST). STM32F407VG ma dwa kontrolery USB: - OTG_FS - wykorzystany do komunikacji z komputerem (tryb HID DEVICE) - OTG_HS - wykorzystany do obsługi klawiatury...
Witam, Problem polega na tym, że po dodaniu do projektu bibliotek FreeRTOS'a i "poprawnym" jego skonfigurowaniu mam problem z SysTickiem i jego przerwaniem. Samo w sobie przerwanie działa poprawnie. Są zgłaszane przerwania co określony czas jednak taski nie są w stanie się przełączać. Planista ciągle siedzi w ostanio utworzonym tasku. Początkowo myślałem,...
Witam. Zamierzam nauczyć się programowania mikrokontrolerów ARM - z rdzeniem ARM Cortex - M3 w języku wysokiego poziomu C. Nie ma dużego wyboru jeżeli chodzi o książki, zdecydowałem się na: "STM32. Aplikacje i ćwiczenia w języku C" M. Galewskiego (http://www.kamami.pl/index.php?ukey=pro... Zastanawiam się nad tym, jaki zestaw startowy...
Witam! Mam wielki problem ze skonfigurowaniem ADC, które jest wyzwalane timerem. Ogólnie chodzi mi o samplowanie wejść w co ten sam okres czasu. [syntax=c] static const u32_t effectiveSamplingFrequency = 160; static const u32_t channelsCount = 8; static const u8_t adcChannels[] = { ADC_Channel_6, //ADC3_IN6, PF8 ADC_Channel_4, //ADC3_IN4, PF6 ADC_Channel_7,...
Before setting EN bit to '1' to start a new transfer, the event flags corresponding to the stream in DMA_LISR or DMA_HISR register must be cleared. Wystarczyło dodać w reinicjalizacji czyszczenie rejestru LISR dla danego strumienia DMA: [syntax=c]DMA2->LIFCR |= DMA_LIFCR_CTCIF0 | DMA_LIFCR_CHTIF0 | DMA_LIFCR_CTEIF0 | DMA_LIFCR_CDMEIF0 | DMA_LIFCR_CFEIF0;[/syntax]
Witam, mam problem, chyba niestety teoretyczny, ale zainteresowałem się czy to jest wogóle możliwe. Taka ciekawostka:) Problem jest następujący: Budujemy sterownik oparty o STM32F103. Chcemy mieć do tego (opcjonalnie) ethernet, ale nie chcemy brać STM32F107, bo nie ma wersji z pamięcią flash większą niż 256KB. W związku z powyższym potrzebujemy zegara...
Witam, planuję wykonanie prostego generatora dds podstawowych przebiegów funkcyjnych na mikrokontrolerze STM32F107. Mam wycisnąć jak największe częstotliwości przebiegów. Procesor może być taktowany z maksymalną częstotliwością 72MHz, ale domyślam się że wąskim gardłem systemu będzie szybkość przetwarzania wbudowanego przetwornika. W dokumentacji znalazłem,...
stm32f407 stlink stm32f407 usart timer wieża
revox tuner excel szablon schemat monitora flatron
hewalex sterownik hewalex sterownik
Termostat do grzejnika olejowego - gdzie kupić? Zacięty regulator przepływu wody - przyczyny i rozwiązania