A jeśli chodzi o typ, to w tym przypadku powinienem użyć IRQ? Nie powinieneś używać żadnego. Jeśli używasz STM32F1 (technicznie rzecz ujmując - jeśli używasz rdzenia ARM Cortex-M3 w rewizji r1r1), to po prostu na początku main() (albo w startupie, albo gdzieś "bardzo wcześnie" - byle przed pierwszym przerwaniem) dodaj taką oto magiczną inwokację: SCB->CCR...
Zmieniłem TRISE na 6 i dalej bez zmian. Podciągnięcia mam na 2,2k ze wspólnym napięciem 3,3V. Czy porty w STM32f103C8T6: PA11 i PA12 mają jakieś ograniczenia ? Mam je podłączone do USB z podciągnięciem dla USBDP rezystorem 10k, ale nie mogę je ustawić jako wyjście. Są to jedyne piny którymi nie mogę "pomigać diodą".
W poradniku Szczywronka opis konfiguracji zegara był dokładnie opisany dla STM32F103. Przepisanie kodu stamtąd powinno dać Ci poprawny wynik konfiguracji. Teraz piszę z pomocą CMSIS". Pracę z STM zaczynam zawsze od przygotowania funkcji SystemClockConfig() jak to opisano w poradniku, posiłkuję się zarazem schematem z zegarów z CubeMX . Całość odbywa...
Witam wszystkich serdecznie! Potrzebuję pomocy z pewnym zadaniem z systemów wbudowanych, 4 rok studiów. Programuję w języku C środowisku CooCox CoIDE procesor STM32F103ZET6 użyty w module HY-RedBull_V3 posiadający 3,5-calowy ekran dotykowy TFT LCD HY35A (kontroler LCD SSD1963, kontroler ekranu dotykowego ADS7843 lub XPT2046), który ma wykonać poniższe...
może popatrz na to: https://stm32.eu/2012/04/11/timer-systic... Nie mam doświadczenia z STM32. Moja odpowiedź raczej dotyczyła licznika 4-bitowego.
Jeśli podejrzewasz OpenOCD albo narzędzia, to po prostu wstaw miganie diodą do przerwania od systicka, zaprogramuj układ, odłącz wszystko a następnie podłącz tylko zasilanie.
Zgadza się. Na większości płytek jest 4k7 do +5, który dość skutecznie zastępuje 1k5 do +3.3. z grubsza chodzi o to, żeby przy podłączeniu na linii D+ pojawiło się napięcie nieco ponad 3V przy ściągnięciu w dół prądem ok 200uA. Stos USB z CubeMX nie wykrywa odłączenia, a funkcja Deinit() jest wołana tuż przed Init(). Są sposoby na wykrycie odłączenia,...
A kto definiuje funkcje wewnatrz main? Tzw "nested functions" to jest rozszerzenie gcc, tak zadeklarowana funkcja jest lokalnie widoczna w scope funkcji, w której jest zadeklarowana. Tak ze wywołujesz te "weak" przenieś ja poza funkcje main. W main.c czarów nie ma Czyli jednak są. Wywal te miliony komentarzy i pustych linii z funkcji. Przez to zaciemniasz...
Witam, Chciałbym zapytać jaka jest zależność RTC i Systicka. O ile tak owa jest? - Kwarc 12Mhz (HSE_VALUE=12000000 , #define SYSCLK_FREQ_HSE HSE_VALUE) - Kody źródłowe poniżej - Keil - RTC zasilam z HSE (LSE nie trybi z przyczyn fizycznych) - STM32F103RBT6 - STMF4_Discovery jako debugger po SWD Problem: 1) A więc problem jest taki iż po wgraniu programu...
Bardzo dobra myśl. Sprawdziłem za pomocą SysTick [syntax=c] void SysTickConfig(void) { SysTick->CTRL &= ~SysTick_CTRL_CLKSOURCE;// AHB / 8 = 9Mhz SysTick->LOAD = 8999999; //1 sek SysTick->CTRL |= SysTick_CTRL_ENABLE; } [/syntax] W main() mam fragment [syntax=c] GPIOC->BSRR |= GPIO_BSRR_BS6; while(!(SysTick->CTRL & SysTick_CTRL_COUNTFLAG)); GPIOC->BRR...
Najlepiej skorzystaj z jakiegoś przykładu na Twojego procka. Tak ogólnie to: - dodajesz katalogi include oraz portable/GCC/ARM_CM3 do include path - kompilujesz plik port.c z katalogu portable/GCC/ARM_CM3 - kompilujesz jeden plik z katalogu portable/MemMang (np heap_2.c) - kompilujesz wszystkie pliki zawarte w głównym katalogu FreeRTOSa W projekcie...
przerwanie SysTick jest generowane co 10 us To dalej absurd.
(at)pioter996 Przerwanie nie ma być kolejną pętlą główną.Żadnych opóźnień. Uproszczony algorytm: 1. Sprawdzasz pin - jezeli jest zmiana ustawiasz flagę ze jesteś w trakcie debouncingu - wychodzisz z przerwania 2. w n-ty m kolejnym przerwaniu (czas jaki zakładasz na debouncing) sprawdzasz czy stan się nie zmienił. Jeżeli nie to uznajesz za zdebouncowane...
Do NVIC wchodzą przerwania peryferiów. Pierwszych 16 wyjątków (w tym przerwania SysTick i PendSV) jest generowanych przez rdzeń, i one nie przechodzą przez NVIC, a w każdym razie nie tak, jak pozostałe. Na początek priorytetów nie ustawiaj wcale - domyślnie wszystkie są ustawione na 0. Nie ruszaj priorytetów, jeśli nie wiesz dokładnie, co robisz - to...
Pomocy :) Jak to się odpala. Nigdzie nie mogę znaleźć jakiegoś przykładu. Jest tylko info, ze do przełączania tasków w RTOS można użyć SysTick lub PendSV, ale zawsze dają przykłąd na SysTick :) Potrzebuję tego, żeby mi obsłużył kod po przerwaniu od usarta, a jednocześnie nie blokował innych przerwań.
Ja rozumiem ze mozna szarpać się z darmowymi toolchainami, ale zeby z keilem?... Postawienie darmowego toolchaina trwa minute :)
jest jeszcze "systick", tylko nie wiem czy w Arduino da się pod niego podłączyć. nie bardzo, jest uzywany do zadań bojowych w frameworku, lepiej nie ruszać
Witam, znalazlem kawalek funkcji na ustawienie procesora na 72MHz i wydaje mi sie, ze działa bo uzywam system tick do togglowania pinu, ale chce uzyc poprostu funkcji dostarczonych od stm. Na screenie widze ze jest gdzies definicja o ustawieniu procesora typu "STM32F10X_LD_VL" przez co program chodzi na 24MHz. Gdzie ona jest? http://obrazki.elektroda.pl/5784698000_1...
Witam, Bawię się STM32 już od jakiegoś czasu ale właściwie nigdy nie potrzebowałem jakiś super prędkości. Teraz chciałem napisać prostą funkcję do sterowania WS2812b i natknąłem się na dziwny, moim zdaniem, problem. Pomimo, że Timery działają szybko to zwykłe przełączanie pinu (funkcja HAL_GPIO_WritePin) działa niemiłosiernie długo. Najprostszy program:...
Ok. Przeszukaj pliki w swoim projekcie po nazwie "SysTick_Handler". Znajdziesz tą nazwę w pliku asemblerowym (lub w pliku *.c) w tablicy wektorów przerwań. Ta tablica zawiera między innymi adres funkcji o nazwie SysTick_Handler. Linker umieszcza tablicę pod odpowiednim adresie w pamięci (zgodnie z datasheet procesora).
Ech, mam dzisiaj dzień dobroci... [syntax=c]#include "stm32f10x.h" #define SYSCLK_FREQ72000000 // jesli srodowisko magicznie nie skonfigurowalo zegara -> zmienic na 8000000 #define SYSTICK_FREQ100 #define LED_BIT13// PC13, active low //======================================... int main(void) { // enable peripherals...
jest mały problem uruchomiłem wszystko jednak system się zawiesza dioda się zapala uruchamia się wyświetlacz i usart wszystko zawiesza :/ main.c [syntax=c]/*****************************... (c)*************************************... ** ** http://www.powermcu.com ** **--------------File Info------------------------------------...
Witam Zmagam się z akcelerometrem ADXL345 + STM32F103. Połączenie po SPI. Otrzymuję na wyjściu wartość przyśpieszenia w kodzie U2. Zapisana jest na 13 bitach, w dwóch rejestrach 8 bitowych. Po odebraniu najbardziej znaczące przesuwam << 8 i łączę z mniej znaczącymi. Problem polega na tym, że wciąż otrzymuję wartość dodatnią, mimo że na najbardziej...
Niestety nie pomogło EDIT: Spróbowałem wygenerować za pomocą STM32CubeMX i napisać w HAL'u kod który by wysyłał cyklicznie dowolną ramkę CAN. Oto mój kod napisany w AC6 System Workbench: http://obrazki.elektroda.pl/9453638400_1... Przy okazji: 1. Jak wgrać program przez JTAG'a w AC6? 2. Da się dodać bibliotekę HAL do COIDE CooCox'a?...
zujnik jest podłączony bez rezystorów wzmacniających, ponieważ odczytałem ze schematu, że nie są potrzebne(próbowałem także z rezystorami 4k7). Przy sprawdzeniu bufora z danymi w programie Stm Studio, nic się nie zmienia a flaga busy jest ustawiona jedynie przy odłączeniu kabla SDA od czujnika. Proszę o pomoc w znalezieniu przyczyny braku odczytu i...
Witam, Na początku chciałem zaznaczyć ze jestem początkujący jeśli chodzi o procesory typu ARM, a tym bardziej o obsługę FreeRTOS. Mam problem z obsługą magistrali CAN pod tym system. Wykorzystuje biblioteki pobrane ze strony www.freertos.org . Niby wszystko ładnie się kompiluje ale na magistrali nic się nie pojawia . Odpaliłem proste zadania typu miganie...
Funkcja _delay_ms() [syntax=c] volatile uint32_t usTick; volatile void _delay_us(uint32_t us){ usTick = us; while(usTick); } volatile void _delay_ms(uint16_t ms){ _delay_us(ms*1000); } void SysTick_Handler(void){ if(usTick != 0)usTick--; } [/syntax] I w funkcji main() jeszcze to: SysTick_Config(72000000/1000000);
Witam, staram sie wykorzystac karte SD do przechowywania danych uzywanych przez wyswietlacz (bitmapy etc). Korzystam z biblioteki FATfs i komunikacja SPI. Aby moc tego dokonac modul FATfs korzysta z sygnalu zegarowego, ktory co 10ms bedzie wywolywal funkcje [syntax=c]disk_timerproc()[/syntax] Do cyklicznego wywolania tej powyzszej funkcji staram sie...
Co do timerów - kiedy konfigurowałem tim1 do pracy w roli timera opóźniającego, również testowałem opóźnienia na diodzie. Używając stopera wydawało się, że jest ok. Jednak ds18b20 nie działał. SysTick uratował sytuację. Dlaczego? Nie wiem... Musiałbym mieć oscyloskop, żeby sprawdzić dokładnie te opóźnienia. Niemniej jednak ds18b20 działa, więc zamykam...
delay.h [syntax=c]void Delay_ms(__IO uint32_t nTime); void SysTick_Konfiguracja();[/syntax] delay.c [syntax=c]static __IO uint32_t TimingDelay; void SysTick_Konfiguracja() { RCC_ClocksTypeDef RCC_Clocks; RCC_GetClocksFreq(&RCC_Clocks); SysTick_Config(RCC_Clocks.HCLK_Frequency... } void SysTick_Handler(void) { if(TimingDelay)TimingDelay--; } void...
Firmowy bootloader mi nie wystarczy. Potrzebuje SPI i prawdopodobnie USB. Ustawiłem w pierwszym programie na: NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x00003000); i w drugim na: NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x00000000); Więc tablica wektorów powinna się przełączać, ale dalej miga tylko czerwona dioda. Uruchomiłem dodatkowo TIM4 i przeniosł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...
Trzeba to zrobić za pomocą timera, chociażby najprostszego SysTicka
Szanowni Forumowicze, Mam problem z Virtual Port COM. Używam procesora STM32F103VBT6. Na nim chcę zrobić taki sterownik uniwersalny kilka wejść wyjść oraz USB do wysyłania komend i odczytu stanu wejść i wyjść. Chcę zrobić to tak że np mam wyjście powiedzmy PA0 i jest tam podłączona dioda i po wysłaniu komendy "LEDON" włączy się. Niestety mając do dyspozycji...
Witam, wystarczyło wyrzuć wszystkie pliki z tego od lpc i wrzucić te od stm32f103. Teraz już nie mam błędów :). Muszę dokładnie przeanalizować różnice. Dzięki wielkie koledzy. Przy okazji mam jeszcze jedno pytanie dostaje takie oto warningi: DescriptionResourcePathLocationType Unused declaration of function 'PendSV_Handler'port.c/stm32f103/RTOSlin...
Na stronie 114 poradnika z tego tematu https://www.elektroda.pl/rtvforum/topic3... masz gotowca, wystarczy podłączyć przez transoptor twoje wejście do portu zliczającego, zamiast diody przez tranzystor i przekaźnik otwieranie dźwi, a do systick (który generuje impulsy) dać reset stanu licznika (i zmienić częstotliwość). Zakładam, że nie ma drgań...
Zawsze jest systick, albo prawie zawsze. Jak Ci systick chodzi to inne tez powinny. Masz debugger? - masz wyprowadzone pewnie piny SWD. W przerwaniach zewnętrznych i tak musisz miec jakaś podstawę czasu aby zrobić debouncing. No chyba że szef zrobił to "na pałę" z delayem w przerwaniu (chodzą takie przykłady w internecie) - co zresztą podejrzewam.
Witam, Mam problem z odbiorem danych na magistrali CAN. Program wysyła dane na CAN co 500ms i to działa, natomiast kiedy pojawi się ramka na RX, program przestaje już wysyłać dane i wygląda jakby zawisł. Poniżej kod. Może ktoś sprawdzić i podać przyczynę problemu? [syntax=c]#include "stm32f10x.h" #include "stm32f10x_can.h" #include "hdr_rcc.h" #include...
Na TIM1 mam zrobiony timer do odliczania opóźnień... Od tego jest SysTick, albo TIM6 lub TIM7. Co JTAGa, to RM0008 rev.14, str. 172: Tabela 37. Debug port mapping
Chciałem stworzyć bootloader w oparciu o projekt EP. Przeniosłem wszystkie pliki do CooCox'a i podczas budowania otrzumuję poniższe błędy: [syntax=c] [cc] ..\obj\crt0_STM32F10x.o: In function `main_force': [cc] E:\Studia\Boot\src/crt0_STM32F10x.S:142: undefined reference to `_bss' [cc] ..\obj\crt0_STM32F10x.o:(.isr_vector+0x8... undefined reference to...
Temat jakoś umiera śmiercią naturalną. Pozwolę sobie nieco odświeżyć. Hardware: - HY-mini (Cortex M3) - LCD ze sterownikiem ssd1289 (FSMC) - karta sdhc (SDIO) Software: - fatfs R0.10 („testowałem” też wcześniejsze wersje) - „HAL” dla fatfs – silnie wzorowany na przykładach dołączonych do HY-mini i przykładach sugerowanych...
Jakaś różnica musi być skoro na oryginale działa a na tym nie. Gruntownie rok temu na nim działałem i wszystko grało wiec pewnie coś z wgrywanym programem ale skoro daje sie programować na oryginalnym STlinku to nie będę sobie robić problemów z tym chińskim. Pod spodem podaje kod wygenerowany przez Stm32CubeIde z dopisanymi 4 liniami moimi czy miganie...
Mam takę niepewność: Wiem, że podczas samego zapisu program przestaje być obsługiwany. Co by się stało gdyby w funkcji obsługującej zapis do flash pojawiło się przerwanie np. od Systicka, USARTu, itp ?
Ja próbowałem wyłączać zegar, resetować rejestry i nic się nie udało standardowymi metodami. Więc napisałem protezę WG: - SysTick z najniższym priorytetem, - funkcja typu: void COMMON_softwareWatchdogReload()&... g_watchdogCount = 0; } - w przerwaniu od SysTick jest coś takiego: if(g_watchdogCount>WATCHDOG_RELOA...
Może mi podpowiecie Ten sam uC STM32f103 ale odpaliłem Keila ARM. Czy w tym środowisku pisząc jakąś obsługę przerwania muszę na początku funkcji dodać prefiks __irq? Coś takiego kiedyś było, tylko nie mogę sobie przypomnieć? np coś takiego [syntax=c]__irq void SysTick_Handler(void) { } czy takiego ma być void SysTick_Handler(void) { }[/syntax] z tym...
Cześć, Od jakiegoś czasu borykam się z takim problemem: chciałbym odbierać po CANie ramki, wpisywać je w gotowy szablon i dalej wysyłać po USARCie na kompa w kodzie ASCII. Czegoś mi brakuje w tym kodzie i za każdą wskazówkę będę wdzięczny. Z góry dzięki:) To mój main: [syntax=c] unsigned char tx_uart[]=" ID: DL: F: T: DATA: ";//54 char ramka[55]; unsigned...
Witam Mam zdaje się banalny problem - mianowicie chcę zamigać diodą - procesor STM32F103RBT6 :P O ile na STM32F4 nie miałem z tym problemów to tutaj nie mogę sobie z tym poradzić od kilku godzin. [syntax=c]void RCC_Config(void) { RCC->CR |= RCC_CR_HSEON; FLASH->ACR |= FLASH_ACR_PRFTBE | (1<<2); //konfiguracja flasha (latency = 2 takty) RCC->CFGR...
Święte słowa. Ja właśnie metodą kopypejstu wyprodukowałem pierwszy swój program na STM32 migający ledami z systickiem jako delay. Weflaszowałem go przez bootloader i odpalił za 1szym razem. Ho ho - powiedziałem sobie. Wszystko ładnie zatrybiło. Zegary się poustawiały, przerwania, wektory. Wszystko. Właśnie dzięki temu że budowałem już z kawałków sprawdzonego...
Witam serdecznie Kolegów! Aktualnie jestem w trakcie pisania gry typu labirynt z kulką na procesor ARM STM32F103VCT6. Wszystko mam pięknie i ładnie obsłużone (symulacja odbić od powierzchni płaskich, detekcja kontaktu z otworami) no ale zostało jeszcze najważniejsze - symulacja odbić kulki od kantów prostokąta. I tu niestety zaczynają się schody. Z...
W najbliższych dniach, na stronie http://mikrokontrolery.blogspot.nl/p/spi... powinien się pojawić szablon projektu dla STM32F4xx pod CooCox, w którym nie trzeba już zmieniać tysiąca ustawień, który nie korzysta z SPL, jest oparty na przerwaniach od SysTick, a pętla główna tylko usypia rdzeń. Potwierdzam - będzie jutro.
Witam Niedawno zacząłem "zabawę" z zestawem Kamami ZL27ARM z procesorem STM32F103VB. Mam problem z przerwaniem od timera SysTick. Jest ono generowane 4 razy za często - miało być 1 raz na sekundę, a jest 4. Kwarc 8MHz, SYSCLK = 72MHz, SysTick_CLK= 72/8=9MHz czyli załądowanie do licznika wartości 9'000'000 powinno dać zgłoszenie przerwania co 1s, więc...
Mam problem z komunikacją po magistrali CAN. Próbuję uruchomić prosty program do odbioru danych po CANie i niestety nie działa. Uruchomiłem parę przykładów znalezionych w internecie i nic. Program generuję za pomocą SMT32CubeMx i korzystam z biblioteki HAL - bo tak chyba najprościej. Korzystam z gotowej płytki STM32F103C8T6 do której podłączyłem MCP2151...
Dopiero jak "z palca" zrobię NO DEBUG to wtedy - no ale wtedy jest to zrobione świadomie bo sam tak wybrałem. Ale jaką wartość widzisz tam bez ruszania czegokolwiek? Dla jasności daję całą funkcję bo coś pisałeś że w user code. Sytuacja bez żadnej ingerencji w ustawienia (Nucleo-f103): [syntax=c]void HAL_MspInit(void) { /* USER CODE BEGIN MspInit 0...
Dzień dobry, Napisałem sobie program (korzystam z: STM32CubeMX oraz Atolli TrueStudio, mam BluePill STM32F103C8, port szeregowy podłączony za pomocą UART2 oraz konwertera FT232RL (ustawionego na 3,3V - bo w dokumentacji wyczytałem że te wejścia nie tolerują 5V) do portu USB, gdzie łączę się za pomocą BrayTerminal). Na BluePill mam wbudowaną jedną diodę,...
AVE... LChucki ma ten problem, że on zna się na tych swoich ARMach i jest zaślepiony swoją miłością do nich. Wsadzałby je wszędzie, nawet tam, gdzie byle ATTiny czy PIC10/12F da radę. Dzielnikami i buforami rozwiązuje problemy, których by nie miał używając ośmiobitowca. A co do pisania prostych funkcji, to pozwolę sobie posłużyć się przykładem programu,...
Witam Idea działania programu jest taka, że po starcie na wyświetlaczu pojawia się komunikat "napis testowy", a po naciśnięciu przycisku wyświetlany jest napis "STANDBY MODE" i układ przechodzi w tryb standby. Po naciśnięciu przycisku napis wyświetla się, ale mikrokontroler nie pracuje w trybie standby (podłączony miernik na pinie IDD). Niestety nie...
Witam, Mam urządzenie z którym chciałbym się skomunikować. Za pomocą Realterm wysyłam do urządzenia 3 znaki: /#1 i urządzenie odpowiada całą paczką danych. Przepięcie linii USB/RS232TTL do mikrokontrolera sprawiła mi jak zwykle kłopot. A mianowicie wysyłam do urządzenia te 3 znaki z STM32 natomiast urządzenie nie odpowiada.... Może mi ktoś powie jak...
Witam, modyfikuję bibliotekę pod klawiaturę matrycową 4x4. W funkcji "Keypad4x4_ChangeColomn" dla określonego warunku należy zmieniać ustawienia pinów z PushPull na Oped Drain. Wszystko funkcjonuje dobrze : dla pierwszego warunku "if(colNum_0_to_3==0)" bity w rejestrze zostają ustawione poprawnie, jednak dla kolejnych warunków pozostają one bez zmian,...
Popełniłem coś takiego, pomijając jedno niezbędne słowo kluczowe. A tu niespodzianka - działa zgodnie z planem pomimo ewidentnego błędu. Oczywiście daje się to rozsądnie wyjaśnić i uzasadnić - nieźle się przy tym ubawiłem. [syntax=c]#include "stm32f10x.h" #define SYSCLK_FREQ72000000 #define SYSTICK_FREQ100 #define LED_BIT13// PC13, active low int main(void)...
Bierzesz przykładowy projekt z mojej strony, wrzucasz do tego FreeRTOSa - czyli dodajesz katalogi FreeRTOSa do odpowiednich pól w Makefile: [syntax=bash]# additional directories with source files (absolute or relative paths to # folders with source files, current folder is always included) SRCS_DIRS = FreeRTOS FreeRTOS/portable/GCC/ARM_CM3 FreeRTOS/portable/MemMang...
Witam, Dopadłem taki Example Mass storage pobawiłem się nim troche, działa z debugiem i bez debugu co oznacza ze podłączam urządzonko do PC i otwiera się dysk bez względu czy jest podłączony debug czy nie. Połączyłem to z softem do FAT i rozwijałem pod debugiem i fajnie to działa. Przyszła pora odpalić bez dabugu i niestety po podłączeniu do PC dysk...
O tym, że test z machaniem pinu jest bez sensu już Koledzy pisali. Nie zamierzam nawet z tym polemizować, za to zrobiłem mały eksperyment, nazwijmy go "optymalizacja machania" :) STM32F051 pędzony 48 MHz i oto wyniki dla optymalizacji 01 oraz 03: https://obrazki.elektroda.pl/1055823600_... https://obrazki.elektroda.pl/6644752300_...
Witam, Bawię się zestawem ZL27ARM i robię ćwiczenia z książki "STM32. Aplikacje i ćwiczenia w języku C" Jestem przy ćwiczeniu 18 i mam problem z DMA (pierwszy raz mam styczność z DMA). Zgodnie z przykładem wypełnienie PWM powinno zmieniać się od 0 do 100%. U mnie jest cały czas 50%. Dane z tablicy bufor_PWM nie są przekazywane do TIM1->CCR1 http://obrazki.elektroda.pl/9548353800_1...
W końcu przysiadłem do tematu i freeRTOS śmiga.. Odnośnie przerwań to w pliku stm32f10x_it.c dodałem po prostu odnośniki do fukncji FreeRTOS'a: - SVC_Handler, - PendSV_Handler, - SysTick_Handler. Ale mam teraz problem bo nie mogę tu dojść ze stosem.. Często wchodzi mi w HardFault_Handler.. Ciężko to zdebugować ale chodzi zapewne o stos.. Jak coś zmienię...
Chyba nie jest inicjowany 2x bo jedna inicjacja tyczy sie portu B a druga portu C.... Dodano po 2 Wiem, że wielu ludzi nie lubi STM32Cube. Włączyłem generator na parę minut i wygenerowałm 'drivery' dla pinu przycisk i pinu led. Nastepnie skopiowałem "logike" autora postu poprawaijac nazwy pinow. Roboty mało a szybki efekt w tak prostym programie. Nie...
Może zbyt namieszałem. Zasadniczo chodzi po prostu o to jak stworzyć projekt w SW4STM, który nie zawierałby tych wszystkich śmieci z SPL i HAL i dało się pisać na rejestrach. Taki czysty podstawowy projekt pod rejestry z tylko niezbędnymi rzeczami jak w przypadku pisania na AVRy. Ja robię to tak: I. Potrzebne narzędzia: 1. System Workbench for STM32...
1 ms to nie przesada, zostało mi z góry narzucone ponieważ bardzo liczy sie precyzja ruchu oto zczytywanie danych z encoderow: SysTick dziala co 1 ms [syntax=c] void SysTick_Handler(void) { Encoders_Read(); } [/syntax] teraz funkcja Encoder_Read [syntax=c] void Encoders_Read(void){ // Odczytanie predkosci z enkoderow oldLeftEncoder = leftEncoder; leftEncoder...
Ok, dodałem funkcję LCD_SetWindow w lcd.c (a także na dole w lcd.h), przekopiowałem pliki lcd.c, lcd.h, char_font.c do projektu OV7225 (dostałem do kamery), wcześniej we wszystkich plikach pozamieniałem podłączenia GPIO na takie jak są na mojej płytce, dodałem te 3 pliki w projekcie OV7225 i spróbowałem odpalić. Niestety program nie chce przejść inicjalizacji...
No już zrobiłem , obeszło się bez pierwszego punktu, bo poszczególne piny jako wejście ustalam przy wpisywaniu do rejestru CRL/CRH i od razu jako wyjście resztę pinów. Na razie gra mi to na pętli for ale może zrobię to w tym timerze Systick. Dzięki wszystkim :) lecą + Jak jakieś uwagi ktoś by miał , to śmiało, każda rada mi się przyda :) Wstawiam kod:...
Właśnie próbuję uruchomić program z pamięci RAM. Usunąłem linijkę rom (rx) : org = 0x8000000 oraz zastąpiłem wszystkie "> rom AT > rom" na "> ram AT > ram" w pliku linkera. Program działa do momentu wywołania przerwania (w moim programie przerwania SysTick). Wtedy licznik rozkazów skacze z adresu 0x2.... pod adres 0x08000864.Czyli do pamięci flash i...
Witam temat w sam raz dla mnie(początkującego)- miałem w sumie podobne pytania, dużo mi się rozjaśniło. Przy okazji podepnę się pod temat, bo to chyba trochę zbliżone zagadnienia(Używam Eclipse, STM32F103RBT6, konfiguracja wg. strony FreddieChoppin(oprócz ustawienia ścieżek do plików-za chiny nie mogę tego zrobić i wszystko trzymam w glównym katalogu,...
1. Jaka jest różnica pomiędzy gdb( flash ) a gdb ( flash ) + load W drugim program ładujesz do flasha i go debugujesz. W pierwszym nie wgrywasz programu, tylko debugujesz :) Jeśli masz inny program w procku a inny debugujesz wówczas będziesz miał bzdury w debugu. 2. Czy jest tutaj coś różnica pomiędzy kodem wynikowym skompilowanym pod debugowanie a...
Coś już sobie kleje z Systickiem. Dzięki za odpowiedzi. PS ten komentarz z "0.5s przy 72MHz" zbił mnie z tropu. Myślałem, że już na tym etapie wymagają przeliczania takich wartości wartości
Zmagam się dalej, tym razem chciałbym wytransmitować dane przez USART z wykorzystaniem DMA: [syntax=cpp] DMA_InitTypeDef DMA_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1... ENABLE); DMA_DeInit(DMA1_Channel1); DMA_InitStructure.DMA_PeripheralBaseAddr =(uint32_t)&(USART1->DR); DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&TxBuf;...
Czy ja dobrze czytam, że w przerwaniu od timera robisz set/reset pinów i to Twój PWM? Nie, to jest lewitacja elektromagnetyczna i odwracam w ten sposób polaryzację cewki, kiedy PID wyliczy ujemną wartość (lewitujący obiekt przekroczy setpoint). Dodano po 6 Wrzucam jeszcze całego main'a. [syntax=c] /* USER CODE BEGIN Header */ /** ****************************************...
Przeglądnąłem trochę tematów odnośnie tych procesorów i wiele osób odradza stosowanie biblioteki Std_Periph... na rzecz bliższego zapoznania się z procesorem już od samego początku. Postanowiłem w ten sposób zacząć i udało mi się skonfigurować SysTick (przerwanie co 1ms). Teraz chciałem sygnałem PWM "zaświecić" diodę z odpowiednim wypełnieniem. 2 diody...
zegary itp włączone, bo jak mówiłem wszystko chodzi i odczytuje ładnie aż do pewnego momentu gdzie się wiesza. Funkcja odczytu znajduje się w przerwaniu od systicka, a przerwania od timerów maja niższy priorytet wiec nie powinny się wcinać w komunikacje. Jednak jak je wyłączę to chodzi bezbłędnie.
Masz rację, że szkoda całego tygodnia na taki problem:). Oto cały kod: Main: http://obrazki.elektroda.pl/2257364500_1... podłączenie do STM'a wygląda nastepująco: RxD do PA10, TxD do PA9. Więc nadal stoję w miejscu, ale nie poddaje się;).
Witam. Aktualnie walczę z kompilatorem GCC non-eabi. Chcę utwożyć projekt w C++ używając własnego skryptu linkera, jednak po długiej walce nie mam już pomysłu na rozwiązanie. W jaki sposób skonfigurować kompilator, linkera oraz skrypt linkera tak abym mógł własne tablice zdefiniowane w plikach .cpp wstawić w wybrane prze zemnie miejsce w pamięci? Wersja:...
Witam! Od rana borykam się z komunikacją STM32F103RBT6 z MPU9250 przez interfejs SPI. Próbowałem znaleźć w internecie jakieś rozwiązanie, nie udało mi się. Nie wiem gdzie popełniam błąd, poniżej wklejam kod: PA.5 - SCK PA.6 - MISO PA.7 - MOSI PB.8 - CS #include "stm32f10x.h" #include <mpu9250.h> #define READ_FLAG 0x80 int sleepTime =...
Witam, Mam problem z ustawieniem SysTick'a na przerwania co 1ms(mam co 3.14ms). Podejrzewam, że mikrokontroler nie chce wystartować na częstotliwości 72MHz, ale nie wiem dlaczego. Program ładnie działał bez żadnego problemu na STM32F103ZET6. W momencie przejścia na STM32F105VBT6 pojawia się wyżej wymieniony problem. Program był napisany w cpp(nadmieniam...
Witam. Dla ćwiczebności napisałem sobie funkcję zwracającą ilość cykli zegara w celu pomiaru długości wykonywania funkcji itp. Aby to osiągnąć odczytuję "PENDSTSET" oraz stan licznika SysTick. Jednak pomiędzy tymi dwoma odczytami upływa trochę czasu i wartość licznika jestem w stanie skorygować znając czas jaki upłynął miedzy tymi dwoma instrukcjami...
0. Używając SPL sam prosisz o problemy. 1. SPI_Cmd(SPI1, DISABLE); Jeżeli to ma włączyć SPI, to chyba powinno być ENABLE? 2. Dla SCK i MISO ustawiasz GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; Który układ generuje zegar? A dla MISO powinien być pull-up. 3. !CS nie może być na stałe do masy. Po pierwsze operacje są synchronizowane sygnałem...
teraz nie będzie wiadomo którą wybrać, bo nie wiem które LPC są teraz "na topie" (; Nie co patrzeć na to co jest na topie bo to nie ma większego znaczenia dla projektu. Do migającej diody (bo takie projekty dla tych płytek są na topie) każda płytka się nada. Im świeższy procesor tym lepiej. Teraz skupili się na LPC541xx i to jest ciekawy przypadek...
Pozwolę sobie odkopać temat... i się nie zgodzić ;) Jeśli dobrze rozumiem wypowiedzi kolegi michalko12 m.in.: Domniemam.... to domniemał On, że: - grupowanie priorytetów odnosi się tylko do przerwań przechodzących przez NVIC - porównując priorytety dwóch przerwań: "zewnętrznego" (priorytet w rejestrze IPR) oraz "systemowego" (priorytet w rejestrze SHP)...
Kod: [syntax=c] /************************* * stm32 uart main.c *************************/ #include "stm32f10x.h" #include "stm32f10x_flash.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" #include "stdint.h" #include "misc.h" #define CLK_FREQ 36000000 /* User defined function prototypes */ void GPIOA_Init(void);...
Witam!!! Już próbowałem zwiększyć rozmiary na 2048 (trochę po małpiemu). Program cały działa w przerwaniach, od systicka, timerów, usart. Najpierw nie pomogło, ale po zrobieniu clean projektu i nowej kompilacji program ruszył. Z grubsza, bo przy następnym poziome przerwań się wykrzaczył. Jeszcze zwiększyć? I który-main czy process?
Witam, Od dłuższego czasu używam Eclipse Indigo wraz z CodeSourcery i GDB od Atollica do tworzenia i debugowania programów pod STM32. Taki "zestaw" działa bardzo dobrze przy klasycznej, jednowątkowej aplikacji. Jednak przy próbie uruchomienia FreeRTOS na STM32F103 program wchodzi w HardFault_Handler z komunikatem Suspended: Signal 'SIGTRAP' received....
[url=http://stm32f4-discovery.com/2014/0... masz pokazaną zasadę działania 1wire z N DS18B20. Co prawda kod jest oparty na F4, jednak dużo różnic nie będzie w porównaniu z F1. Zawsze zamiast tworzenia swojego timera do delaya możesz skorzystać z SysTicka.
Dzień dobry, Mam problem z dogadaniem się z ADIS16201. https://www.analog.com/media/en/technica... Zacznę od tego, że korzystam z płytki : https://www.analog.com/en/design-center/... Wyjścia podłączyłem w sposób następujący: ADIS1620...
Witam. Od pewnego czasu walczę z chińską płytką (blue-pill) z STM32F103 na pokładzie i z tego co już się nauczyłem oraz co sobie w ReferenceManualu wyczytałem to wiem, że AVR'y odłożę na półkę:) Moja nauka jest w stylu 'bare-metal' wykorzystuję jedynie pliki nagłówkowe stm32f103xb.h i kilka od CMSIS które można wydobyć z STM'owych bibliotek, więc ich...
Witam, Przesiadam się z STM32F103 na F051, a raczej ćwiczę sobie na obu tych mikrokontrolerach. Napisałem program na F0, w celu poćwiczenia sobie z konfiguracją interfejsu SPI. Zadanie jest takie SPI1 posyła dane, a SPI2 odbiera je zgłaszając odbiór. Interfejsy podłączyłem ze sobą SPI1->MISO z SPI2->MISO SCLK - SCLK MOSI - MOSI Niestety komunikacja...
Jeżeli to przykład z książki to nie należy jej czytać. Exti + timer. Bardziej zakręcony sposób ciężko wymyślić. Robisz w hal to wystarczy w co 20 do 50 przerwaniu systicka sprawdzać, albo jak nie szkoda timera w takim regularnym przerwaniu innego timera bez żadnych exti Dodano po 6 Ps przy okazji jak się uczysz to używaj elementów języka a nie jakiś...
Witam temat podobny do http://www.elektroda.pl/rtvforum/topic23... Lecz sprawa wygląda troszkę inaczej. Z racji tego, że atollic udostępnił wersję litte postanowiłem przesiąść się z keila. Dotychczas korzystałem z example usb hid na keila. W Atollicu skonfigurowałem sobie nowy procesor, wrzuciłem kod z uvision i po małych przeróbkach (dostosowanie...
Plus dopasowanie standardu sygnałów, bo sam MCU ma raczej tylko logikę. Zewnętrzny układ zapewniający fizyczną warstwę łącza to raczej standard w wielu protokołach. Ale jest jeszcze kwestia zaprogramowania MCU - z Arduino urządzono tak, by było to łatwe, a z tym MCU może być znacznie trudniej. To może jakiś dość banalny przykład, który nadaje CAN-em...
Bardzo fajnie, że wreszcie coś na STM32 się pojawiło Na tych prockach sporo się dziej tylko zwykle jest mało czasu na sam projekt co dopiero na jego ew upublicznienie ;) W zeszłym tygodniu bawiłem się połączeniem STM32F103(HY-mini)+SSD1963 sterujący panelem TFT AT070TN92. Niby procek szybki bo 72MHz a samo czyszczenie ekranu jednym kolorem również...
Hej Freddie, tym razem to już mam poważny problem i proszę Cię o pomoc. Problem mam cały czas z przerwaniami. Nigdy mi w sumie tak naprawde nie zadziałaly na tym projekcie od stm. Przerobiłem Twoją tablice wektorów przerwań: /** \file vectors.c * \brief STM32 (STM32F101 - STM32F103) vector table and __Default_Handler() * \details STM32...
Witam, Napisałem program, w którym do odliczania czasu używam SysTick'a i przerwania od niego. Gdy skompiluję i zapiszę program do pamięci Flash, program ten działa jak należy i możliwe jest jego debugowanie. Jeśli skompiluję i wpiszę program do pamięci RAM, to program nie działa poprawnie, a debugować go można jedynie do momentu wystąpienia przerwania...
dzięki za artykuł, dzięki niemu dodałem odpowiednie rzeczy do CXX_DEFS i C_DEFS których wcześniej nie dodałem. Ale problem pozostał ten sam. zmieniony makefile: http://obrazki.elektroda.pl/7932168800_1...
A więc tak: - dopisałem do syscall funkcję _exit() - usunąłem -march skopiowałem do flash.ld twoją definicję sekcji .bss. oto wynik: make ========================================... Build info: BOARD: maple MCU: STM32F103RB MEMORY_TARGET: flash See 'make help' for all possible targets ========================================...
systick handler stm32 systick systick interrupts
canon pixma czyszczenie głowicy jakie zelazko schemat elektryczny pompa
płyta gazowa elektrolux hitachi ves500undc
Joystick nie działa w Renault Espace IV 2012 Cichy dźwięk w Philips 47PFL3607 przy maksymalnej głośności