Jeżeli nie potrzebujesz dokładnych opóźnień a takich Π•oko, to IMHO delay na pętlach w zupełności wystarczy. Timerów w stm32 niby wiele...ale prawie zawsze, w większych aplikacjach znajdzie się szczytniejsze dla nich zastosowanie. Z drugiej strony stosowanie pętli opóźniających na ARM-ach trąci profanacją :) Jeżeli nie interesuje Cie korzystanie...
Wiesz co ja dopiero zaczynam z programowaniem stm ale jedna sprawa rzuciła mnie się w oczy. twoja funkcja jest prawie funkcją z biblioteki której definicja i rozwinięcie znajduje się w pliku core_cm4.h [syntax=c] __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) { if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible...
[syntax=c]void _delay_init() { SysTick->LOAD = 0x00FFFFFF; SysTick->CTRL = SysTick_CTRL_ENABLE_Msk | SysTick_CTRL_CLKSOURCE_Msk; // | SysTick_CTRL_TICKINT_Msk; } void _delay_ms(uint32_t time) { uint32_t ina, inb; while(time--) { ina = SysTick->VAL; do { inb = SysTick->VAL; inb = (ina - inb) & 0x00FFFFFF; } while (inb<72000); } }[/syntax]
PM0056 Programming manual strona 151 The RELOAD value is calculated according to its use: ● To generate a multi-shot timer with a period of N processor clock cycles, use a RELOAD value of N-1. For example, if the SysTick interrupt is required every 100 clock pulses, set RELOAD to 99. ● To deliver a single SysTick interrupt after a delay...
Cześć, od 2 dni zmagam się z modułami NRF24L01 i dwoma płytkami STM32. Płytki STM32 NUCLEO L053R8 i STM32F103 wykorzystujac biblioteki HAL i cubemx. Niby oba układy zwracają poprawne rejestry : https://obrazki.elektroda.pl/1575646300_... Ale sama komunikacja w sobie nie działa. Nie odbieram żadnych pakietów. PYTANIE - czy w biblioteka...
Stos dla przerwań ustawiłeś? 4\/3!!
Dzięki wielkie za pierwszą podpowiedź jutro sprawdzę sugestię, ale priorytety w NVIC rozumiem : Hmmmmmm... czyli w pierwszej grupie TIM1 ma preemption=0 i sub=2 natomiast systick jest w 0 grupie i ma preemption == sub == 0 czyli wg mnie powinien wywłaszczać. P.S: W timerze delay jest mi potrzebny bo wysyłam dane po rs485 i muszę odczekać czas ze względu...
Z czym może to być związane ? Z tym, że jedna funkcję masz skompilowaną w swoim projekcie a drugiej nie masz. Nie za bardzo rozumiem dlaczego nie jest skompilowana. Fragment kodu: [syntax=c]#include "stm32f10x_lib.h" void delay_ms(); void RCC_Config(); void GPIO_Config(); volatile u32 timer_ms = 0; int main(void) { RCC_Config(); GPIO_Config(); SysTick_Config(72000000/1000);...
Witam serdecznie. Jak poradzić sobie z SysTickiem i przerwaniem, ponieważ po kompilacji środowisko zwraca taki błąd: [syntax=bash]D:\workspaceAtolic\Cortexy\... multiple definition of `SysTick_Handler' src\main.o:D:\workspaceAtolic\Cortexy\De... first defined here [/syntax] [syntax=c] #include "stm32f10x.h"...
Witam, prosiłbym bym o pomoc, żeby ktoś wytłumaczył, albo podał przykład jak skonfigurować przerwania zewnętrzne w tym mikrokontrolerze bo walczę z tym i nic mi nie wychodzi i zaczynam podejrzewać, że to procek jest zepsuty, albo tej sztuki jeszcze nie opanowałem :D na początku pisałem własne kody, ale po nieudanych próbach w końcu wkleiłem gotowca,...
By przetestować czy uC wchodzi w ogóle w obsługę przerwania ustawiłem PA9 jako wyjście tak by w przerwaniu jego stan był zmieniany na przeciwny. SPI w ogóle nie jest wyłączane. W przerwaniu ustawiam CS na stan wysoki, zmieniam stan PA9 na przeciwny, wyłączam kanał, ustawiam nową liczbę danych do przesłania na 1200, czyszczę flagę,ustawiam CS na stan...
Delay wykonany na pętli for nie jest mojego autorstwa. Już od kilku dni głowię się, czemu te wyświetlanie tak wolno chodzi. Próbowałem wszystkiego, wstawiłem tego delay'a na pętli for i zadziałało. Ewidentnie jest coś nie tak z tym delay'em na Systicku. Poprawiłem kod: [syntax=c]void delay_ms(int ms) { int c = 0; SysTick -> LOAD |= SYSTICK_F/1000...
Jakie środowisko? Zakładam, że CooCox, ponieważ w innych takie rzeczy raczej nie występują. Odkąd pamiętam, to taki zapis zawsze poprawnie konfigurował SysTick do generowania przerwań co 1ms (1000Hz): [syntax=C] #include core_cm4.h #define FREQUENCY 168000000ul // lub dowolna inna, ale prawdziwa ///... jakiś fragment programu... if (SysTick_Config(FREQUENCY...
Jeszcze raz dziękuję za cenne rady i wskazówki:) szczególnie dla: m.ki BlueDraco nie omieszkam sprawdzić przykładów z EP jak mi wpadną w ręce. Żeby zostawić ślad i pokazać że nauka nie poszła w las wklejam kod z uruchomienia Timerów na porcie A plus diody znajdujące się na płytce(PC8, PC9). Sam szukałem kodu do sterowania tymi diodami z PWM, więc może...
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 +=======================================...
Ogólnie rzecz biorąc udało mi się skonfigurować buttona tak, żeby działał na przerwaniach i timerze. Ale coś zaś musiałem fundamentalnego skopać i wywala HardFault. Tym razem nie mogę uruchomić SysTicka. [syntax=c]int main(void) { volatile uint32_t count, count_max = 1000000; system_init(); pll_start(CRYSTAL, FREQUENCY); SysTick_CLKSourceConfig(SysTick_CLKSourc...
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...
Spróbuj takiego kodu. Niestety nie sprawdzałem go bo nie mogę skompilować Twojego kodu. [syntax=c] #include "stm32f10x.h" #include "TouchPanel.h" #include "systick.h" #include "GLCD.h" #include "stdio.h" #define TP_INT_IN GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_6) void TPintInit(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GP...
Jeśli chciałbym żeby działał licznik i zarazem migała dioda, ale z innym opóźnieniem, to da się to zrobić tylko za pomocą SysTic'a? Dodano po 2 Zrobiłem coś takiego. Jakby mógł ktoś jeszcze pomóc z tą migającą diodą, aby świeciła na 100ms i była zgaszona na 1s. Licznik wg moich obliczeń działa co 0,5 Hz. Dodano po 35 Działa. [syntax=c]#include "stm32f10x.h"...
Hej :) Natknąłem się na pewnie problem którego nie mogę rozwiązać otóż spróbowałem sobie zrobić prosty generator przerwań przy użyciu SysTicka (przykład z książki paprockiego) który zapalałby mi diode po 500ms. Nie wiem w czym może leżeć problem ale dioda mi nie miga. Poniżej wklejam kod main i funkcji void SysTickHandler(void): main: #include <stdint.h>...
Całość kodu jest dość spora:) Czekam na flagę na pewno, ale nawet jeżeli nie, to zauważ że pomiędzy wywolaniami odczytu adc są spore odcinki czasu. Ano, zazwyczaj w takich sytuacjach używam volatile, tyle że wtym przypadku optymalizacja jest wyłączona. Program w zasadzie skończony, a zajmuje 20kB ze 128, więc optymalizacji nie właczałem. Dodano po 4...
To ja dodam podobne pytanie, dla STM32vldiscovery. Migająca diodka i dźwięki typu beeep:). Ustawienia źródła (kwarc 8MHz), pętli PLL (x3=24MHz), ten sam program programowany z Keil działa wg ustawień (Systick 1ms, delay = 1000 daje 1sek. pasuje). Oraz ten sam program .bin (lub .hex) programowany przez STM32 ST_Link Utility i diodka mruga dużo wolniej,...
Projekt jest dośc spory, sklada się z wiely plikow. Udało mi sie juz uruchomic wyswietlacz graficzny, klawiaturę, ADC, przerwania itd. itp. tylko z tym log10 ciagle problem. Dlatego nie dołączam całego projektu. Stosu nie konfiguruje 'recznie', chyba robi to CoIDE i chyba potrafi wyliczyć ile potrzebuje miejsca na stos. Robiłem ten program na AVR z...
Dzień dobry, postanowiłem zacząć przygodę z rejestrami na mikrokontrolerach, skupiam się obecnie na STM32 C011 z racji, że znam już jakieś solidne podstawy HALowskie. I dostałem już niczym strzał z liścia pierwszy problem - mianowicie dioda dołączona do mikrokontrolera na wyjściu nie chce mrugać. Z dokumentacji mikrokontrolera wraz z całą płytką wynika,...
Z tego co widzę z ST-Link Utility, program counter stoi w miejscu, konkretnie 0x20000458, czyli cos juz wykonał ale utknął możliwe .że w miejscu gdzie czeka aż przerwanie SysTick wykona sie okreslona liczbe razy. Czy trzeba jeszcze w jakiś sposób ustawić tablicę wektorów przerwań? edit: Jednak nie wykonuje się , dodałem linijkę zapalającą diodę przed...
Witam. Po ogarnięciu portów i/o chciałem przejść do konwersji ADC. Początkowo zakładam, że nie korzystam z przerwań, nie korzystam z DMA. Screeny z Cube: http://obrazki.elektroda.pl/6506556500_1... http://obrazki.elektroda.pl/5974943000_1... http://obrazki.elektroda.pl/2033015600_1... Plik main: /** ****************************************...
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 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...
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...
W sumie może wrzucę cały program taktowanie to 16MHz ustawione w rcc_config i taka jest też wartość FREQUENCY main: [syntax=c] #include <stdint.h> #include "inc/stm32l053xx.h" #include "config.h" #include "gpio.h" #include "hdr/hdr_syscon.h" static void system_init(void); void rcc_config (void); void systick_delay(uint32_t us); void delay_ms(uint32_t...
Ś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, 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...
Witam. Chcę za pomocą płytki STM32F334 DISCO sterować wyświetlaczem 16x2 przez interface 4-bitowy. Połączenie wygląda tak : VSS - GND VDD - 5V VO - NC RS - PB13 RW - GND E - PB15 D4 ... D7 - PA12 ... PA15 A - przez rezystor 220 ohm do 5V K - GND Kod napisany w "System Workbench for STM32" zgodnie z datasheet'em sterownika wyświetlacza. https://obrazki.elektroda.pl/3189253300_...
Witam, chciałem wykorzystać kartę microSD do odczytu obrazków w projekcie zawierającym wyświetlacz LCD, natomiast pojawił się pewien problem z funkcją f_open() w FatFs. Podczas testowania program gładko przechodzi f_mount() zwracając FR_OK, natomiast wykrzacza się przy f_open() zwracając błąd FR_NOT_READY. Przeczytałem zarówno na forum jak i w czeluściach...
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...
Witam od dwóch dni walczę z bibliotekami Fatfs, i mam niezidentyfikowany błąd, wykończyły mi się pomysły. Sprawa wygląda tak posiłkuje się przykładami z książki STM32 w praktyce Autor: Krzysztof Paprocki. W zasadzie chce skompilować gotowy kod , (przykład R9 sd_fatfs) działam na układzie STM mini http://allegro.pl/zestaw-uruchomieniowy-...
We wcześniejszym wątku - [url=http://www.elektroda.pl/rtvforum/to... Co na początek ? zamieściłem program napisany (wsad do LPCXpresso) w asemblerze na twój układ który korzystał z tego timera i dokładnie był każdy fragment kodu opisany - co robi i jaki ma cel i był opis rejestr po rejestrze - opis tych fragmentów...
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...
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);...
Przejzalem tematy na forum a nie moge uruchomic przerwania na pinie PC13 (nucleo l1 board) [syntax=c] #include "led.h" #include "delay.h" #include "button.h" int main(){ setup_LED(); setup_DELAY(); setup_BUTTON(); blink_led(); LED_ON; delay_ms(1000); LED_ON; while(1){ } while(1); } void SysTick_Handler(){ if (delay_counter > 0){ delay_counter--; } void...
Witam. Wygenerowałem kod w STM32CubeIDE. Problem polega na tym, że gdy debuguje go, to mogę swobodnie przechodzić krok po kroku do kolejnych instrukcji programu. Po wyłączeniu debugowania w celu pozwolenia mikrokontrolerowi działać swobodnie, ten nie chce działać. Znalazłem tako oto radę dotyczącą SysTicka: "You have to be very carefull when using HAL_Delay(),...
Cześć. Tak jak napisałem w nazwie tematu posiadam ARM'a STM32F072RB. Podłączyłem kolejno kolumny, później wiersze klawiatury matrycowej 4x3 do portów GPIOC1-GPIOC7. Chcę odczytywać wciskane klawisze na klawiaturze i napisałem jak na razie taki kod: [syntax=c] #include "stm32f0xx.h" #include <stdio.h> volatile uint32_t timer_ms = 0x0; void delay(int...
Hejka, od niedawna mam płytkę stm32 discovery. Próbuję już 2 dzień i mi nie działa transmisja po rs232.. układzik łączący z kompem zrobiłem na max3232 i jak sprawdzam echo (rx z tx) to wszystko ładnie śmiga. A jak podłącze to do pinów PA9 i PA10, to cały czas otrzymuję znaki puste. Wydaje mi się, że program poprawnie napisałem.. [syntax=c] #include...
Faktycznie, rozwiązanie kwestii działania SPI było dosyć proste i po sprawdzeniu - SPI działa. Odczytuję zapisany wcześniej rejestr poprawnie. Teraz mam inny problem. Poniżej zamieszczam program z pliku main.c, w którym są dodane miejsca wysyłania kolejnych numerów przez UART i program zatrzymuje mi się po wysłaniu numeru 88. Nic więcej się nie dzieje,...
Witam Wysyłam przykładowe ramki z terminala do STM32 przez driver MAX3485 i cały czas sypie mi błędami w odpowiedziach. Nie mam też pewności czy to co wysyłam z terminala do STM32 dociera bez błędów. Poniżej fragment kodu oraz zrzut ekranu. Powinienem otrzymać to co wysyłam. Czarny kolor to odebrane ramki. Proszę o pomoc http://obrazki.elektroda.pl/7456669500_1...
Może za krótko czekasz po włączeniu zasilania i próbujesz komunikować się/inicjalizować zewnętrzne urządzenie zanim zdąży zakończyć sekwencję POR. Mogę tylko gdybać bo nie wiem co masz do tego uC podłączone, ale widać że jakieś magistrale szeregowe masz wyprowadzone. No ale koniec sekwencji POR oznacza wykonanie kodu z Reset Handler ? [syntax=c]int...
Przykład z biblioteką SPL: [syntax=c] static __IO uint32_t TimingDelay; //--------------------------------------... void SysTickConfig() { RCC_ClocksTypeDef RCC_Clocks; RCC_GetClocksFreq(&RCC_Clocks); SysTick_Config(RCC_Clocks.HCLK_Frequency / 1000);// 168MHz/1000=168000/s (1ms) } //--------------------------------------...
Witam forumowiczów! Po przesiadce z AVR na STM32 chciałbym powtórnie napisać kod pod I2C do czujników, ale coś stoi na przeszkodzie. http://obrazki.elektroda.pl/3517599900_1... http://obrazki.elektroda.pl/6433591700_1... Dana którą odczytuję jest niezgodna ze stałą rejestru "who_am_i", przy czym zbieżna z SLAVE ADR+R/W...
Dzień dobry! Przycisk podpięty do płytki mam w/g schematu: http://arduino.cc/en/uploads/Tutorial/bu... Kod mojego maina: #include <stm32f10x_gpio.h> #include <stm32f10x_rcc.h> #include "stm32f10x_flash.h" #include "misc.h" /* Scheduler includes. */ #include <stdio.h> #include "FreeRTOS.h" #include...
Poradnik dla początkujących, ale jedyne czego w nim brakuje to opisu jak z konfigurować środowisko do pisania na rejestrach. W sumie to masz już środowisko i tak naprawdę nic nie musisz konfigurować aby programować używając rejestrów. W CubeIDE masz przynajmniej pewność, że wszystkie pliki CMSIS są aktualne. Jak zrobić projekt bez HAL: 1. Wygenetuj...
stm32 delay systick systick delay systick stm32
konwerter pobór prądu samsung firmware updater przetwornica kontrola cewka
czujnik położenie turbo samsung wf70f5e0w2w
Kierownica nie jest wykrywana przez oprogramowanie - co zrobić? Czysty soft do Motoroli V980 - gdzie znaleźć?