Ma przecież główną funkcję delay i funkcję przerwania dekrementującą zmienną.
Ale co jesli nie bede nadazal. Wszedłeś na wyższe warstwy abstrakcji. Jak zrobisz dobrze sprzęt i program to zadziała. Jeśli nie - to nie. No to musze poczytac, bo zastanawia mnie ich wyzszosc nad tym co robie zwykle - przerwanie, flaga, obsluga w petli glownej jakies inne rzeczy. Spróbuj w ten sposób obsłużyć cokolwiek "dużego" (stos TCP/IP, system...
Na pewno funkcja delay zlicza takty zegara? Jak ona wygląda? Wykorzystałeś jakiś timer, przerwanie, pokaż ją.
To timingi. Takie rzeczy się dzieją jak za małe delaye są FMC ustawione. Często działa OK jak np masz inny poziom optymalizacji i generalnie wolniej wysyłasz komendy. To takie sprzętowe UB. Zwiększ czasy w FMC. Takie problemy objawiają się z reguły właśnie w tak tragicznie kiepsko napisanych funkcjach
Układ Ina219 zasilam napięciem 5V podciągniętym z płytki nucleo. Dlaczego nie z 3,3V? Na NUCLEO, jak pamiętam, 3,3V jest wyprowadzone. Kod zapisu wygląda na poprawny (nadal niepotrzebny teraz delay). Czy funkcja HAL zwraca HAL_OK? Jeśli nie, musisz szukać błędu w sprzęcie. PS Timeout masz dość długi, jakieś 50dni, więc za zwrotem błędu musisz tyle...
Witam, mecze się z DS18B20. Naskrobałem poniższy kod ale wydaje się działać połowicznie. Ale po kolei, pierwsze co robię to ONE_WIRE_Init (), a potem ONE_WIRE_Read_Tmp(). I przy tej drogiej funkcji mam problem bo zwraca ona za każdym razem 0x0808 (jak by komendy nie zmienić zawsze tak samo, a nawet bez komend). ONE_WIRE_Init_Sequence() działa poprawnie...
tak: [syntax=c]SysTick -> CTRL &= ~SysTick_CTRL_ENABLE_Msk;[/syntax] Te funkcje róznią się tylko tym, że jeśli chodzi o us to wartość od której zliczamy do zera jest podzielona przez 1000000, a nie 1000 jak w ms. Kolejny dowód, jak zamieniam delay 1ms na 1000us to wyświetlacz strasznie wolno odświeża (jeszcze dłużej zajmuje mu wyświetlenie każdej literki).
Dzisiaj wszystko jeszcze raz uruchomiłem i o dziwo zaczęły przychodzić dane z kamery, a program się nie zawiesza. Dodałem w programie takie polecenia: [syntax=c]for (i = 0; i< 19200; i++) { bufor_RAM_danych_obrazka[i] = 0; } Delay(100); uruchom_kamere(); Delay(100); wykonaj_foto(); Delay(1000); for (i = 0; i< 19200; i++) { sprintf(textToWrite,"%d,...
Witam, mam problem z przesłaniem pliku do dekodera VS1011, stworzyłem funkcję ,lecz niestety udaje mi się odtworzyć kilka ms pliku mp3. Niestety nie mogę powiększyć aktualnej tablicy ze względu na przekroczenie pamięci "stack overflow". Potrzebuje porady jak można w inny(lepszy) sposób napisać funkcję by odczytać cały plik dźwiękowy zapisany na karcie...
Witam, Dalej walczę z książka STM32 Aplikacje i przykłady w języku C. Doszedłem do obsługi przerwania RTC. W książce jest przykład, który konfiguruje przerwanie od RTC, tak jak by to było przerwanie wewnętrzne. Autor zakłada, ze w pliku stm32f10x_it.c jest gotowy szablon funkcji RTC_IRQHandler (), który należy uzupełnić oraz uaktywnić przerwanie w NVIC....
Problem rozwiązany. Błędna inicjalizacja wyświetlacza Poprawna sekwencja inicjalizacyjna: [syntax=c]LCD_WriteCommand(0x01); delay(10); LCD_WriteCommand(0x28); LCD_WriteCommand(0xcf); LCD_WriteData(0x00); LCD_WriteData(0x83); LCD_WriteData(0x30); LCD_WriteCommand(0xed); LCD_WriteData(0x64); LCD_WriteData(0x03); LCD_WriteData(0x12); LCD_WriteData(0x81);...
Witam! Zacznę od tego, że jestem raczej laikiem z programowania STM-ów. Ale nie jestem też leniem, że znajduję gotowca, kopiuję i liczę na to, że będzie działać. A jak nie działa to lipa. Staram się to zrozumieć i znaleźć problem. ;) Niestety brak wiedzy sprawił, że wymiękłem i pomyślałem, żeby zapytać na forum. Co chcę zrobić: Podłączam bluetootha...
Środowisko Eclipse + GCC z newlib. Jest zaimplementowane _sbrk(), nie mam implementacji _sbrk_r(). Nie ma ostrzeżeń z kompilatora. Stos 1024 bajty o ile dobrze patrzę w skrypt linkera. Optymalizacja wyłączona. Nie ma przerwań. Nie wiem czy koprocesor jest włączony. Próbowałem kompilować zarówno z -mfloat-abi=hard jak i bez. Delay nie ma znaczenia. Dziękuję...
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...
Witam ostatnio dostałem wyświetlacz HY28a (ILI9320). Od tygodnia próbuje coś na nim wyświetlić lecz bez skutecznie. W internecie znalazłem kod pod LPC, doszedłem do wniosku że po lekkich modyfikacjach powinno zadziałać na stm32f4 discovery. Poniżej przedstawiam kod pod LPC na którym się bazuję. [syntax=c]/*****************************...
Witam Posiadam płytkę STM32F4 Discavery chciał bym uruchomić USART6 ale przesyła mi złe dane. Sprawdzałem już zegary ustawienia usart ale nic mi już nie przychodzi do głowy. Zegary ustawione są przy pomocy funkcji SystemInit(). Cały plik sytem_stm32f4xx.c generowałem przy pomocy narzędzia STM32F4xx_Clock_Configuration_V1.1.0 (w excelu). Chcę użyć USART6....
Witam Mam problem z pamięcią SDRAM. Ustawiona jest wedle zmodyfikowanego lekko przykładu ze strony en.radzio.dxp.pl (porty definiowane innymi funkcjami). Wyglada to aktualnie tak: sdram.h [syntax=c]#ifndef SDRAM_H_ #define SDRAM_H_ #include "inc/stm32f4xx.h" // SDRAM base address for Bank 2 #define SDRAM_BASE 0xD0000000 // SDRAM size is 8MB #define...
http://obrazki.elektroda.pl/7307254400_1... Autor w końcu znalazł nieco czasu, aby poeksperymentować z płytką STM32F4-Discovery, którą kupił jeszcze w zeszłym roku. Jak w przypadku innych mikroprocesorów, naukę dobrze jest zacząć od obsługi pinów GPIO. Ponieważ na płytce STM32F4-Discovery wyjścia zorganizowane są w dwu dwurzędowych...
Dzięki za zainteresowanie. FSMC w ogóle nie dotykałem. Napisze tak jak to rozumuje, a mogę to źle rozumować także zaraz mnie poprawcie jak coś. FSMC nie dotykałem, po mimo, że wiem, że STM ma właśnie FSMC co służy do wspomagania transmisji z LCD. Ale chciałem sie oprzeć na bibliotece którą mam. Wzorując się na LPC1768, który takowego wspomagacza LCD...
Witajcie, Posiadam płytkę STM32F4DISCOVERY z procesorem STM32F407VG. Używam pakietu Eclipse + linaro + openOCD skonfigurowanego wg opisu Freddiego Chopina. Uruchomiłem również przykładowy program stm32f4_blink_led. Chciałem dołożyć obsługę USART1. Konfigurację napisałem w pętli main. [syntax=c] int main(void) { volatile uint32_t count, count_max = 10000000;...
(at)Piotrus_999: Tak, wiem, czytałem, ale najprościej jest sprawdzić, czy przerwanie działa i czy do niego wchodzi (po prostu led'a zapalić w przerwaniu, tyle). Po wywaleniu SW4STM i zainstalowaniu czystego Eclipse i skonfigurowaniu według tutoriala od kolegi Freediego przerwania od linii zewnętrznych śmigają aż miło. Źródłem przerwania jest ekran dotykowy...
Musisz w swojej aplikacji dodać gdzieś swoją własną funkcje HAL_Delay(), która po prostu będzie wywoływała task-delay z FreeRTOSa.
Witam, Mam problem z obsługą wyświetlacza 128x64 zgodnie z ks0108 na mikrokontrolerze STM32F4 . Po poprawnym przyłączeniu do układu wyświetlacza, zabrałem się za oprogramowanie tego mikrokontrolera. Mój schemat podłączenia wyświetlacza wygląda tak : RS (Di) - PB1 R/W - PE7 E - PE9 CS1 - PB2 CS2 - PE8 RST - PE10 Data - PA0 do PA7 I mam sterownik: [syntax=c]...
W efekcie wykonania poniższego kodu oczekiwałem czarnego tła na ekranie wyświetlacz, jednak po uruchomieniu jedyne co otrzymuje to przypadkowe wartości pamięci wyświetlacza (losowe czarno-białe punkty tzw. "szum"). Próbowałem uruchamiać wyświetlacz nie tylko w takiej konfiguracji jak zamieszczona tutaj (w sieci jest całkiem sporo przykładów wykorzystania...
Witam, Problem dotyczy STM32F103RBT6 i STM32F407VGT6, ale opiszę ten z F4. W przerwaniu "toogluje" wybrane dwa piny np PE7 oraz PD15 z wykorzystaniem bit-bandingu. Fragment kodu w przerwaniu http://obrazki.elektroda.pl/5752278500_1... Drugi przebieg przedstawia stan tych samych wyprowadzeń ale ten PD15 jest zanegowany w stosunku do PE7: http://obrazki.elektroda.pl/8674962400_1...
Okej, zatem spróbujmy przystosować bibliotekę, którą mi podlinkowałeś do moich ćwiczeń ;-) Skopiowałem pliki EVE.h, EVE_commands.c, EVE_commands.h, EVE_config.h, EVE_target.c, EVE_target.h do odpowiednich folderów w projekcie. Teraz tak: W pliku EVE_target.h trzeba wybrać i włączyć jedną z konfiguracji. Jeśli dobrze myślę to mnie interesuje ta konfiguracja,tak?...
Posiadam ekran oparty na sterowniku SPLC501C, 18 pinowy. Z racji tego, że nie dysponuję sprzętem do przelutowania zworki dla SPI, postanowiłem zaprogramować ekran pod STM32F407VG równolegle. Wykorzystałem dokumentację techniczną SunPlus SPLC501C i ku mojemu zdziwieniu ekran ruszył. Problem pojawił się w momencie kiedy chciałem go zaprogramować dla siebie....
Witam. Posiadam mikrokontroler STM32F429 na płytce 32F429IDISCOVERY. Napisałem obsługę wysyłania i odbierania znaków przez USART, jednak program nie pracuje. Program przedstawia się następująco: -Załączam taktowanie do układu USART2: -Konfiguruję piny D5 (Rx) i D6 (Tx) jako alternatywne: - Konfiguruję układ USART2 do pracy: - Piszę funkcję obsługującą...
Dzień dobry, Mój problem polega na tym, że kulawo działają moje funkcje do odczytywania (nie wiem czy zapisywania ) po spi do kodeka vs1011 w procesorze stm32f4. Co ciekawe te same funkcje działaja poprawnie przy komunikacji z kartą sd. Poniżej zamieszczam kody tych funkcji: funkcja wysyłania bajtu do spi: void WriteSpiByte (BYTE Data) // Wyslanie...
Jeżeli program ten kompilujesz z optymalizacją, to nie jest specjalnie dziwne, że nie działa tak jak tego oczekujesz - funkcja delay() powoduje opóźnienie tylko w teorii (i przy zerowej optymalizacji).
Częściowy sukces. Metodą prób znalazłem gdzie tkwi problem. Okazuje się, że nie działa prawidłowo funkcja Delay_ms(). Procek zamiast odliczać krótkie opóźnienia zapętla się w nieskończoność. Na chwilę obecną rozwiązałem ten problem wklejając kod tego dema do innego programu w którym prawidłowo działa podobna funkcja opóźnienia i program w końcu ruszył....
Witam Od kilku dni staram się uruchomić pewien tajwański tani szmelc o nazwie HY_TFT320_262K ze sterownikiem (rzekomo) ili9320. Problem w tym, że cała dokumentacja i przykładowe programy, które do niego dostałem są w krzaczkach lub całkowicie nie dotyczą mojego modelu wyświetlacza. Stąd swoją wiedzę i większość kodu czerpię z odmętów internetu i staram...
Witam ponownie, W STM32F3 SPI jest tak samo dziwne jak STM32F0, więc zapis/odczyt do/z rejestru DR trzeba realizować przez magiczny wskaźnik, gdyż inaczej SPI wysyła/odbiera 2 bajty. Postanowiłem sprawdzić jak to jest w STM32F4, konkretnie użyłem płytki STM32F429I-DISCOVERY i napisałem naprędce poniższy programik: [syntax=c] 1 2 /***************************************...
Witam ponownie Na początek sugerowałbym przetestować samą poprawność działania SPI, można np. zapętlić MISO z MOSI. Albo odczytywać z peryferiala rejestr ID. Dopiero w następnym etapie uruchamiać obsługę właściwą. Nie analizowałem Twojego programu ale podeślę mój 'bliźniaczy' i działający na STM32F429_DISCO, odczytuje on i wyświetla rejestry GYRO L3GD20....
zasadniczo taska który to odbiera non-stop, bez żadnych delayów. Albo DMA RX z włączonym CIRC i w kółko odbierać to do zdefiniowanej globalnie tablicy. Serwer natomiast brałby sobie z tego miejsca zawsze najświeższy pomiar... UART nie ma w sobie żadnego magicznego buforowania - jak nie odbierasz, to dane lecą do śmieci Albo wywołują OVR i UART się...
Witam Próbuję oprogramować taki wyświetlacz: [url=http://www.ebay.com/itm/5-inch-TFT-... do wyświetlacza Wyświetlacz podłączony do FSMC w typowy sposób. Szyna danych D0-D15. Sterowanie wyborem rejestr kontrolny/dane szyna A16...
Witam, mam problem z uruchomieniem przykładu USB MSC device od ST. Przerobiłem go, aby zamiast karty SD wykorzystać dysk twardy na ATA. Funkcje obsługi dysku są na 100% dobre. Problem jest raczej w USB. Po prostu komputer wykrywa nieznane lub uszkodzone urządzenie. Za bardzo nawet nie wiem, jak się zabrać za szukanie błędów. Przykład USB Host mi działa....
Ja mam taką funkcję od opóźnienia zrobionego na podstawie SysTick'a, nawet działa. Korzystam z niej podczas komunikacji 1wire i wszystko pięknie śmiga. W funkcji delay_init( 168 ); wpisujesz częstotliwość zegara w MHz np. dla STM32F4. [syntax=c_loadrunner]#include "../lib/stm32f0xx.h" #include "delay.h" static uint8_t fac_us = 0; void delay_init( uint8_t...
Witam, małe uzupełnienie do wcześniejszego postu: Procesor: STM32F303RE Płyta ewaluacyjna: Stm32nucleo zmiany w linkerze: [syntax=c] /* +=======================================... | stacks sizes +=======================================... */ /* Handler mode (core exceptions / interrupts)...
Nie mam tego programu więc Ci nie zrobię... Zrób nowy projekt w TrueStudio i dodaj do projektu foldery delay, lib, gpio, i pliki stm32f0-discover i main.
U mnie w kodzie nie ma ...... /* * sterownik dla Margas * wersja dla NUCLEO STM32F446RE * działa dzieki życzliwości i zaangarzowaniu członków forum ELEKTRODA * wspomagających moją skromną wiedzą programistyczną * za co jestem im bardzo a to bardzo wdzęczny * data xx-xx-2024 */ #include "STM32TimerInterrupt.h" #include "STM32_ISR_Timer.h"...
Witam, otóż zasilam owy wyświetlacz napięciem ±3.3V, a także stany logiczne są na tym poziomie. Pin kontrastu jest podpięty bezpośrednio do masy, kontrast wizualnie wydaje się być dobrany idealnie. I problem w tym, że pixele bardzo wolno się zapalają.(wyszło mi ok. ~300ms na pełne zaświecenie pixela) Czy jest to jest maksimum wyświetlacza, czy...
Nie wiem o co Ci dokładnie chodzi, ale poprostu włączaj ten timer w momencie wejścia do tej funkcji opóźniającej, zaraz po przypisaniu tmier_cnt = cnt; albo nawet przed. bez przesady wykorzystywac 2 timery do delaya...
Panowie, udało się to rozwiązać. Ten powyższy projekt nie jest taki zły tylko trzeba go naprawić: 1. Skonfigurować poprawnie piny SPI 2. Upewnić się, że funkcje delay działają dobrze 3. Upewnić się, że konfiguracja zegara systemowego jest dobra. Jakbyś ktoś dalej miał problemy to pytać na PW podeślę poprawiony kod.
Usiłuję zrobić sobie zamek na pastylkę DS1990, tylko że nie umiem się skomunikować. Na reset nie odpowiada a czas chyba mam dobre. Oznaczenie pinu: [syntax=c]#define ONE_WIRE_SET_LOW ( GPIOA->BSRR |= ( 1 << 3 )) #define ONE_WIRE_SET_HIGH ( GPIOA->BRR |= ( 1 << 3 )) #define ONE_WIRE_IS_HIGH ( GPIOA->IDR & ( 1 << 3 ))[/syntax]...
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...
Musisz więc w loop() sprawdzać stan wybranego pinu funkcją digitalRead() Naliczyłem 17 delay, których czas ustawiony jest na 100ms. Daje to łącznie 1,7sekundy i może być tak, że po takim czasie program zareaguje na zmianę stanu wejścia. Pierwsza rzecz jaką bym zrobił to wywalił delay i sterowanie zrealizował na przerwaniach od timera. Przy takim podejściu...
Przeszukiwania "internetów" oraz debugowania nic nie dało. Otóż natknąłem się na podobny problem jak tutaj w tym zamkniętym temacie: http://www.elektroda.pl/rtvforum/topic26... STM32f0 po przerobieniu projektu: http://www.tkjelectronics.dk/uploads/STM... na f0, poprawieniu rzeczy opisanych przez autora: -skonfigurowaniu pinów...
Witam Może ktoś z forumowiczów miał podobny problem i jest w stanie pomóc. Tak w ramach rozwijania projekciku doszedłem do bardzo dziwnego zagadnienia. Otóż UART TX przez DMA opanowałem bardzo sprawnie i szybko ale pojawił się problem UART RX. Mianowicie odbiór przez UART działa tylko raz, zaraz po restarcie kontrolera. Potem ustawia się bit ORE (Overrun)...
Do tematu musiałem wrócić, dalej kopie się z koniem... Tym razem STM32F411VE i akcelerometr LSM303DLHC który jest na płytce STM32F411E-DISCO. W związku z tym problem hardwarowy można od razu wykluczyć. Transmisja w trybie pooling działa, odczytuje dane z akcelerometru. Natomiast przy próbie pracy w przerwaniu I2C zgłasza przerwanie I2C1_ER_IRQn i błąd...
Rzeczywiście, ta metoda nadaje się znacznie więcej niż dla Wemos D1, nie chciałem nic takiego sugerować, po prostu na Wemos D1 będzie kilka tematów stąd taki tytuł. Tutaj jest nieco więcej szczegółów: https://github.com/JAndrassy/ArduinoOTA ArduinoOTA wspiera: - classic ATmega AVR with at least 64 kB of flash (Arduino Mega, MegaCore MCUs, MightyCore...
Te przerwania to najgorsza rzecz do ogarnięcia. Odbudowałem program fragmentami ze starego i na początek dałem proste krótkie przerwanie by jak nacisnę przycisk wysłało byle co po usarcie. No i działa ALE na którym for się zatrzyma w głównej pętli programu gdy wywołam pierwszy raz przerwanie to na tej już zostaje i nie chce jej opuścić ale jak wywołuje...
Dzięki za to, że napisałeś odpowiedzi na Twój problem, przydało się ale niestety nadal mam problem... Poniżej jest mój kod do odczytu przez I2C i wysyłanie po UART. Putty niestety wyrzuca "S▒▒" co restart. Ktoś wie czemu? (wiem, że ten kod nie jest najlepszy ale powinno działać. [syntax=c]#include "stm32f30x.h" void SysTick_Handler(void);...
Tu jest fragment całego programu : [syntax=c]#include "stm32f0xx.h" #include "KS0108.h" #include "eeprom.h" #define PRZYCISK1_PORT GPIOF #define PRZYCISK1_PIN GPIO_Pin_4 #define PRZYCISK2_PORT GPIOF #define PRZYCISK2_PIN GPIO_Pin_5 #define STACYJKA_PORT GPIOA #define STACYJKA_PIN GPIO_Pin_2 #define LPG_PORT GPIOA #define LPG_PIN GPIO_Pin_3 #define PB_PORT...
Witam ponownie, Po sprawdzeniu stwierdzam, że inicjacja USB wszystko wiesza... Wziąłem dla pewności "surowy" przykład z ST, dodałem zwykłe miganie diody - Set,Reset GPIO + for jako delay - i tnie automatycznie diode. Nie chce się już z tym grzebać bo straciłem już na tą transmisje ponad miesiąc :/ Przerobiłem kod, dodałem obsługe USART i kod wygląda...
Witam, chciał bym prosić o rade szanownych kolegów mianowicie nie mogę uruchomić nadawania modułem nrf24l01 z pełną szybkością z użyciem przerwań od pinu "IRQ" już wyjaśniam, w trybie polingu nadawanie pakietu 32 Bajtów trwa 156us i wszystko ładnie śmiga odbieranie udało mi się uruchomić z wykorzystaniem przerwań oraz DMA, lecz gdy próbuje wysyłać za...
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...
Witam Mam taki problem wczoraj napisałem sobie funkcje delay na TIM6 w TrueSTUDIO, funkcja nie działała, dziś znalazłem bardzo podobny kod który ponoć działa, ale nie u mnie :( . Przekopiowałem pliki z projektu TrueSTUDIO do Keil i wszysto działa OK. Teraz pytanie czy ja mam coś namieszane z TS czy to jakiś błąd TS czy co ? Wczoraj cztery godziny na...
Witam, raczkuje w mikrokontrolerach i mam mnóstwo banalnych problemów z tym związanych. z tym nijak nie mogę sobie poradzic: potrzebna mi obsługa timera TM2 cortexM0 na płytce discovery, czytam manual i znajduje potrzebne mi rejestry RCC->APB1ENR |= (1<<0); //TIM2 CLOCK EABLE TIM2->CR1 |= (1<<0); //counter enable TIM2->ARR...
stm32f4 delay funkcja delay funkcja delay arduino
wymiana uchwyt wiertarski ekspres ariete thunderbird konfiguracja
Schemat instalacji elektrycznej Renault 110-54 Sygnały dźwiękowe w Mercedes W211 Kompressor 2007