Przykład dla DMA [syntax=c]void Init_DMA_TFT(uint16_t nofData) { // DMA2 Init Stream 0 from SRAM to FSMC DMA2_Stream0->CR &= ~(DMA_SxCR_EN); while ((DMA2_Stream0->CR & DMA_SxCR_EN));// wait for disable and clear all flags DMA2->LIFCR |= DMA_LIFCR_CTCIF0 | DMA_LIFCR_CHTIF0 | DMA_LIFCR_CTEIF0 | DMA_LIFCR_CDMEIF0 | DMA_LIFCR_CFEIF0; //0b----|...
Nie keil a real view :P. typedef union _MMCstate { struct { BYTE isSDMMC : 1; // Set if it is a SDMMC BYTE isWP : 1; // Set if it is write protected } pola; BYTE _byte; } MMCSTATE; i później Flag->pola.isWP = 0; Flag->pola.isSDMMC = TRUE; sprawdzone
Nigdzie nie pisalem o podpowiadaniu nazw. Po drugie to o czym piszesz mozna bez problemu osiagnac przez "forward declaration" struktury w pliku h. Typedef absolutnie nic nie daje w tym przypadku. Plik h: [syntax=c] struct awesome_driver; struct awesome_driver* adrv_init(int id); /*.....*/ [/syntax] Plik c: [syntax=c] #include "awesome_driver.h" struct...
Mam problem z inicjalizacją Unii deklaracja: https://obrazki.elektroda.pl/4660954600_... Ja to zrobić prawidłowo. Jeżeli zainicjuje Conf_Frame conf_Frame = {.Frame_Array = '!','S',0b00001000,... To pola bitowe mam prawidłowo. Czy inicjalizując muszę odwracać kolejność bitów?
BlueDraco Mam wersję Keila 4.5 i tutaj nie ma jeszcze tych podpowiedzi kontekstowych (gdy się naciśnie CTRL + SPACJA). Mam na płycie z EP wersję 4.72a. Aby dobrze działał to odinstalować wersje 4.5 i instalować nową, czy odrazu. Jak jest lepiej, żeby poźniej nie było problemów z działaniem? http://obrazki.elektroda.pl/4851810600_1...
Nie znam tej biblioteki, pół minuty temu pobrałem jej źródła, ale z tego co patrzę, to struktura FILINFO zadeklarowana jakoś tak: [syntax=C]// FatFS R0.08b, ff.h typedef struct { DWORDfsize; /* File size */ WORDfdate; /* Last modified date */ WORDftime; /* Last modified time */ BYTEfattrib; /* Attribute */ TCHARfname[13]; /* Short file name (8.3 format)...
Musisz dokładnie zajrzeć do "stm32f10x.h". Otworzyć go w okienku i CTRL+F i nazwa, lub okienko Outline jak masz i poszukać. Czasem są takie wyjątki w nazwie, ale większości wypadków tak nie jest (; typedef struct { __IO uint32_t CCR; __IO uint32_t CNDTR; __IO uint32_t CPAR; __IO uint32_t CMAR; } DMA_Channel_TypeDef; //........... #define DMA1_Channel1...
:) Znalezione... nie wiem czy o to autorowi chodziło [syntax=c]typedef struct { unsigned char count; nrf_reg_bitsdata[]; } nrf_reg_fields; #ifdef NRF_REG_DEF_META #define REGF(FNAME, FSIZE, FRW) { .name = FNAME, .size = FSIZE, .rw = FRW, } #define REG(RNAME, RSIZE, RFIELDS) { .name = RNAME, .size = RSIZE, .fields = RFIELDS, } #else #define REGF(FNAME,...
Powodem może być niepoprawna konfiguracja rejestrów sterownika. poza tym nie pokazałeś jak wygląda funkcja zapisu do ramu i ustawienia kursora. Ja używam takich funkcji: [syntax=c] typedef struct { vu16 REG; vu16 RAM; }LCD_TypeDef; #define LCD_BASE (0x6c000000) #define LCD (( LCD_TypeDef *) LCD_BASE) void LCD_WrReg(u8 reg, u16 data) { LCD->REG =...
(at)BlueDraco Tylko że jest to w ich bibliotece a nie w przykładzie. Użycie customHID bez zmieniania biblioteki nie pozwala na użycie dłuższego raportu. [syntax=c]typedef struct _USBD_CUSTOM_HID_Itf { uint8_t *pReport; int8_t (* Init) (void); int8_t (* DeInit) (void); int8_t (* OutEvent) (uint8_t, uint8_t); }USBD_CUSTOM_HID_ItfTypeDef;[/syntax]
Witam, pozwolę sobie na wykopaliska archeologiczne, ale myślę, że to może się jeszcze komuś przydać. Większość przypadków Hard Fault podczas działania DMA w STM32F1 powstaje przez błędną konfigurację kanału DMA przy użyciu biblioteki standardowej. Błędny fragment kodu: hlayer.c:167:43: warning: assignment makes integer from pointer without...
A może o to chodzi? [syntax=c] typedef struct stale_globalne_t { int A_DAC,B_DAC,C_DAC,D_DAC; }STALE; __attribute__((used)) const STALE alfa={1,2,3,4}; int main(void) { while(1); } [/syntax] Popraw ortografię -> "UŻYWANE" !
Moze trochę nie w temacje, ale kolega Kaczor90 prosił o proste rozwiązanie dla debouncingu, a tu co niektórzy chyba popsują się swoimi umiejętnościami programistycznymi, przekombinowywując jak się tylko da. Prosty przykład obsługi przycisków z uwzględnieniem z możliwością określenia mininalnego czasu wciśnięcia przycisku: [syntax=c] #define BUTTON_DEBOUNCE_TIME...
jeeeez!!... "czegoś mi tu brakuje" jest chyba zbyt ogolnym stwierdzeniem aby cokolwiek pomóc... Zrobilem sam na dokladnie tych samych STMach conajmniej 5 roznych interfejsów CAN<->UART i za tydzien bede robic kolejny... Więc mogę podpowiedzieć: 1) TXuj UARTa przez DMA. Tylko. Zawsze. Najzawszej... 2) Tego UARTa TXuj przez DMA z bufora kołowego....
Próbuję skompilować przykład obsługi USB HID od Keil'a przy pomocy kompilatora gcc. Stąd pobrałem kod - http://www.keil.com/download/docs/361.as... Problem polega na tym, że najwidoczniej w gcc inaczej deklaruje się struktury i unie niż w Keil'u przez co przy próbie kompilacji otrzymuje masę błędów: expected '=', ',', ';', 'asm' or '__attribute__' before...
Coś naplątałeś... Aby uzywać malloca bez dziwnych errorów, musisz zadeklarować odpowiednią ilość miejsca na stertę . Co z tego, ze twoje zmienne zajmują niewiele ramu, skoro najpewniej ustawiles sobie parę kB sterty, i gdy przekroczysz te pare kB, program ci sie natychmiast wykrzaczy, bo oczywiście najpewniej nigdy nie sprawdzasz, czy malloc przypadkiem...
Witam, Konfiguracja projektu oparta o stm32_blink_led autorstwa Freddie Chopin. Układ STM32F103. Uruchomiłem proste przerwanie z UARTa żeby sterować przepływem programu podczas testów. Problemem jest to wywołanie funkcji z przerwania: typedef struct { u8 print_test_1; u8 print_test_2; u8 print_test_3; } sys_flag_t; volatile sys_flag_t sys_flag;...
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,...
U mnie jest tak: [syntax=c] #define _USE_LFN 1 /* 0 to 3 */ #define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ [/syntax] oraz [syntax=c] /* File status structure (FILINFO) */ typedef struct { DWORDfsize; /* File size */ WORDfdate; /* Last modified date */ WORDftime; /* Last modified time */ BYTEfattrib; /* Attribute */ TCHARfname[13];...
W AVR-ach nie ma chyba niczego takiego. W nowych (np. AVR64DD32) już jest: [syntax=c]/* I/O Ports */ typedef struct PORT_struct { register8_t DIR; /* Data Direction */ register8_t DIRSET; /* Data Direction Set */ register8_t DIRCLR; /* Data Direction Clear */ register8_t DIRTGL; /* Data Direction Toggle */ register8_t OUT; /* Output Value */ register8_t...
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,...
chcę zsumować wszystkie bajty struktury. Dodano po 44 mam podejrzenie że chcesz zrobić coś bardzo dziwnego i zupełnie niepotrzebnego... często tak mam :)
Wielkie dzięki. Instrukcja load niestety nie działa w tego typu zastosowaniu. Wystarczy zmienić na monitor flash write_image erase main.bin 0x08000000 Reasumując Gdyby ktoś kiedyś chciał zaimplementować używanie flasha jako eeprom: Można tak: Zainicjować sobie strukturę obojętnie jaką w sekcji variables. #define FLASH_PAGE_SIZE ((u16)0x400)...
Możesz zrobić to np. tak: [syntax=c] typedef __packed struct { uint8_t byte_1 :8; uint8_t byte_2 :8; uint8_t byte_3 :8; uint8_t byte_4 :8; }ftobytes_t; float dana; ftobytes_t *zapis; zapis=(ftobytes_t*)(&dana); eeproma=zapis->byte_1; eepromb=zapis->byte_2; eepromc=zapis->byte_3; eepromd=zapis->byte_4; [/syntax] Ja opierałem się na kompilatorze RelView...
Rok 2013. Grudzień. Świat jest już technologicznie zaawansowany. Proszę o informację, czemu w tej "świetnej" bibliotece w funkcjach typu [syntax=C]void FSMC_NORSRAMInit(FSMC_NORSRAMInitTypeDef... FSMC_NORSRAMInitStruct);[/syntax] oraz w strukturach typu: [syntax=C]typedef struct { ... FSMC_NORSRAMTimingInitTypeDef* FSMC_ReadWriteTimingStruct; /*!<...
A w pliku stm32f10x.h jest: [syntax=c]#define SPI_CR2_TXEIE ((uint8_t)0x80) /*!<Tx buffer Empty Interrupt Enable */[/syntax] Zauważ że to przerwanie będzie generowane po każdym opróżnieniu bufora TX. Powinieneś włączyć je dopiero pod koniec czyli w Twoim przypadku podczas obsługi przerwania od zakończenia działania DMA. Lepiej jednak wróćmy do wcześniejszej...
Oho, właśnie mi znowu nie chciał przejść pierwszego startu. Twój sposób pomógł :) Skąd ty go wytrzasnąłeś? :D ps. typedef struct { uint32_t SYSCLK_Frequency; /*!< returns SYSCLK clock frequency expressed in Hz */ uint32_t HCLK_Frequency; /*!< returns HCLK clock frequency expressed in Hz */ uint32_t PCLK1_Frequency; /*!< returns PCLK1 clock...
Z przetwornika ADC dostaję 24 bity, a pamięć mam 16-bitową Co to znaczy, że masz pamięć 16 bitową? Bo jakoś tego nie rozumiem. To że masz 16 bitów danych z układu pamięci nie oznacza, że STM nie potrafi tego użyć jako "normalną pamięć". Nie rozumiem dlaczego nie możesz robić tego na 24 bitach. Jeżeli chcesz robić operacje ze znakiem na 24 bitowych...
Cześć, void dupa() { ; } int main() { dupa(); int test; //FILINFO Info[1000]; while(1) { ; } return 0; } Jeśli odkomentuję deklarację tablicy FILINFO Info , to przy wejściu do funkcji dupa(); wyskoczy wyjątek, który przenosi sterowanie do HardFault_Handler() . Dzieje się tak niezależnie...
Witam Na wstępie środowisko środowisko na bazie tutorialu Freddie Chopin-a , z dołączonym "STM32F10x_StdPeriph_Lib_V3.5.0" Płytka bazowa ZL27 Kamami. Kompilator CodeBench Lite for ARM EABI Praca bez systemu operacyjnego (na ARM) Problem jest następujący. Chciałem uzyskać możliwość pełnego wysyłania danych przy pomocy Printf na wiecej niż standardowe...
le nie ma tam słowa o FMC . No bo FMC po skonfigurowaniu to po prostu pamięć w przestrzeni adresowej - czyli po prostu piszesz lub czytasz do/z tego adresu. Czyli DMA memory to memory. Dla przykładu u mnie w projekcie teraz używam banku 1, 16 linii danych i szyny adresowej A2 jaki DC. Po sonfigurowaniu FMC [syntax=c]typedef struct { volatile uint16_t...
Dobry wieczór Sam zaczynam z armami i nie bardzo wiem, czy wypada abym coś radził ? W każdym razie moja walka z RTC skończyła się na programowaniu rejestrów, bo z HALem do ładu dojść nie mogłem. Co prawda procesor nie ten (STM32F091RCT6), ale może RTC to samo. Inicjalizacja RTC : [syntax=c] int InitZegarRTCWithLSE() { uint32_t LoopGuard; /* GPIO_InitTypeDef...
Jest szybsze bo tak jak mówisz te rejestry są tylko do zapisu. Też mam coś takiego: [syntax=c]typedef struct { __IO uint32_t MODER; /*!< GPIO port mode register, Address offset: 0x00 */ __IO uint32_t OTYPER; /*!< GPIO port output type register, Address offset: 0x04 */ __IO uint32_t OSPEEDR; /*!< GPIO port output speed register, Address offset:...
Nie do końca umiem wyjaśnić, dlaczego C++ różni się tutaj od C, ale mam inną propozycję, rodem z ANSI C :) Przykładowy kod można przepisać: #include <stddef.h> typedef struct { int first; int second; int third; } type_t; #define ADDRESS 0x12345678 const int data = (ADDRESS + offsetof(type_t, second))*2; int main(void)...
Witam Mam dosyć spory problem z parsowaniem tekstu, mianowicie użytkownik może w terminalu wpisać sobie taką o to składnie. Silnik 3,5;Silnik 5,25;Silnika 7,45; Ma to podzielić na "Silnik 3,5" , "Silnika 5,25" itp; Robię to w następujący sposób: -gdy z USARTa przychodzi ciąg znaków zakończonych znakiem '\0' wychodzi do przerwania gdzie tworzona jest...
Walczę z obsługa klawiatury - w tym necie nic sensownego znaleźć nie można .... na razie tyle .......; #include <stdio.h> #include <stdlib.h> #include <HD44780.h> // definicje zmiennych ----------------------------------------... #define vcc_ref 5.0 // napiecie referencyjne #define hall_ref 2.5 // napiecie referencyjne...
Czy może mi ktoś podpowiedzieć o co chodzi? Wczoraj w Eclipsie robiłem testy, i nagle dzisiaj już to nie chodzi. Nie zmieniałem nic, uruchomiłem po prostu od nowa Eclipsa. Problem dotyczy zmiennych zadeklarowanych w przerwaniu void USB_LP_CAN1_RX0_IRQHandler (void) { DWORD istr, num, val;....} Które po przypisaniu po chwili znikają i mają wartość optimized...
Cześć jakiś czas temu spotkałem się z takim zapisem mapowania rejestrów: C gives no guarantee of the ordering of fields within machine words , więc może być problem z portowaniem. Nie mam zamiaru "wynajdywać koła na nowo" tak pytam się z ciekawości o wasze opinie. Ewentualnie tak myślę że dałoby rade to zrobić też w C++ z template w taki sposób żeby...
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...
Dzięki za odpowiedzi! gaskoin wydaje mi się, że sprawdzanie bufora w przerwaniu po odebraniu znaku nie będzie zbyt optymalne bo komunikacja wygląda tak: Zapytanie: AT\r\n Odpowiedź: AT\r\n// Z włączonym echem OK\r\n Więc w trakcie odbierania znak \n pojawia się klika razy przez co będę blokował przerwanie podczas odbierania danych. Teoretycznie echo...
Tam kod pomieszałem i tego Bank1_SRAM3_ADDR niema: Dodano po 7 Mógł byś pokazać jeszcze jak odwołujesz się do pamięci w trakcie zapisu i odczytu ? Dodano po 24 Coś się chyba rozsynchronizowuje, ponieważ przy takim kodzie: Dodano po 25 Dla testu ustawiłem tak: [syntax=c]FSMC_Bank1->BTCR[1] = 0x0fffffff; FSMC_Bank1E->BWTR[0] = 0x0fffffff;[/syntax] I teraz...
Mam problem z odpaleniem komunikacji (master nadaje) na przerwaniach w STM32F103. W poolingu działa OK, natomiast na przerwaniach nie chce ruszyć, już kombinowałem na różne sposoby i bez efektu. Inicjalizacja I2C: [syntax=c]void I2C_Init(void) { // I2C GPIO CONFIG RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; // Software reset I2C I2C1->CR1 |= I2C_CR1_SWRST;...
Potrzebuję w projekcie użyć dynamicznej alokacji pamięci, niestety malloc() zawsze zwraca mi NULL. 1. Proponuję nie używać malloc w projektach embedded. 2. Najprawdoposobniej sbrk jest tylko "kadłubkowa" dla zapernienia linkowania się kodu. Co zrobić: 1. Jeżeli się już uparłeś na "malloc" to proponował bym freeRTOS-a z jego implementacją heap4.c albo...
Czy znane są wam inne skuteczne algorytmy pomiaru amplitudy PWM? Pracuje na STM32F072CB i tylko taki mam do dyspozycji wedle założeń projektu więc przesiadką choćby na F1 nie wchodzi w grę... Do tego celu jest więcej niż wystarczający. Metoda pomiaru jest dobra. Dodatkowe pytania: 1. Czy oglądałeś ten przebieg na oscyloskopie? Może po prostu nie jest...
(at)ElektrodaBot Dzień dobry, zmagam się z nietypowym problemem. Zepsuł mi się ostatnio moduł I2S2 MOD podłączony do stm32f407, który zawierał zarówno ADC jak i DAC działający po I2S. Kupiłem coś tańszego - jako ADC PCM1808, oraz jako DAC PCM5102. Wcześniej działałem na full-duplexie, teraz jestem zmuszony działać na half-duplexie. Napisałem prosty...
na podstawie kursu języka C Wskaźnik na unie i strukturę Podobnie, jak na każdą inna zmienna, wskaźnik może wskazywać także na unie lub strukturę. Oto przykład: typedef struct { int p1, p2; } Struktura; int main () { Struktura s = { 0, 0 }; Struktura *wsk = &s; wsk->p1 = 2; wsk->p2 = 3; return 0; } Zapis wsk->p1...
Witam! Kilka słów o projekcie. Urządzenie wykonuje odczyt z czujników - częstotliwość pomiarów i ilość punktów pomiarowych jest zmienna. Pomiary następnie są wysyłane do urządzenia nadzorującego w odpowiedzi na jego zapytanie. Moim założeniem jest kolejkowanie pełnych ramek z pomiarami i czasem ich wykonania w postaci listy jednokierunkowej, a gdy jest...
Dzięki :) - właśnie tak wywnioskowałem z pliku *.h i napisałem coś takiego - chyba działa. Dziwi mnie tylko brak konsekwencji w nazewnictwie. Dodano po 1 Dalsze problemy: Nie potrafię nic zapisać do skonfigurowanej pamięci (LCD). Kontroler LCD nie jest fizycznie podpięty ale to chyba nie ma znaczenia. Podejrzewam,że należy załączyć stosowny bank pamięci...
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...
No cóż bez płytki i proca nic chyba już nie wymyśle. Gdy dochodzę do takiej ściany, to zaczynam porównywać rejestry w debug'u na HALu do tego na rejestrach. Dodano po 6 Tak sobie wymyślili Musisz tam wpisywać do AFR[1]. W pliku jest to dokładnie rozpisane [syntax=c] /** * (at)brief General Purpose I/O */ typedef struct { __IO uint32_t MODER; /*!<...
Funkcja inicjalizująca wywołuje kilka innych, więc żeby po trochu nie wstawiać kodu, oto cały plik RC5_IR_Emul_Receiver.c : [syntax=c]/** ****************************************... * (at)file STM32F10x_RC5_Receiver_Lib/src/RC5_IR_Em... * (at)author MCD Application Team * (at)version V1.0.0 * (at)date 03/16/2010...
W jakim jezyku piszesz ? W c++ da sie to dosc ladnie zrobic tworzac swoja wlasna klase, ktora zawola jakis callback gdy sprobujesz przypisac jakas wartosc do niej. W C tez w sumie da sie to zrobic. Stworz sobie strukture na ktorej operujesz + funkcje do operacji na niej. W funkcji ktora ustawia jakastam wartosc, sprawdzasz czy wartosc jest w zakresie...
I kontynuuję temat. Na razie kod taki: [syntax=c] /***************************************... * Function Name : Game * Description : Game test * Input : None * Output : None * Return : None * Attention : None ****************************************... /*typedef enum{ NONE=0,...
Jedną ze strategii szybkiego wdrażania nowych produktów wbudowanych na rynek jest wykorzystanie zunifikowanych platform. Mając plan działania identyfikujący rozwiązania, które zostaną wpuszczone do obiegu, np. w ciągu najbliższych kilku lat, można z powodzeniem stworzyć ww. ujęcie. Ponieważ różni klienci chcą nieco innych funkcji, konfiguracji i dostosowań,...
W plikach nagłówkowych do biblioteki SPL/HAL te parametry są dobrze opisane: [syntax=c]/** * (at)brief Timing parameters For FMC NAND and PCCARD Banks */ typedef struct { uint32_t FMC_SetupTime; /*!< Defines the number of HCLK cycles to setup address before the command assertion for NAND-Flash read or write access to common/Attribute or I/O memory...
Może to dlatego, że GIOB to jest makro a nie zmienna. Wydłubałem trochę kodu z twoich plików źródłowych: [syntax=c]#define __IO volatile typedef struct { __IO uint32_t CRL; __IO uint32_t CRH; __IO uint32_t IDR; __IO uint32_t ODR; __IO uint32_t BSRR; __IO uint32_t BRR; __IO uint32_t LCKR; } GPIO_TypeDef; #define PERIPH_BASE ((uint32_t)0x40000000) #define...
Sorry, że tak późno odpisuje, ale chciałem trochę poczytać zamiast coś bezsensu napisać. Rzeczywiście, już to zrobiłem, a mam takie pytanko mógłbyś mi powiedzieć z którymi częściami kodu z niżej wymienionych kompilator może mieć problem: 1. [syntax=c] DEVICE_PROP *pProperty; void USB_Init(void) { pInformation = &Device_Info; pInformation->ControlState...
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 */ /** ****************************************...
Witam, Napisałem kod obsługi interfejsu SPI dla uC STM32F303 oraz STM32F051. Kod ten obsługiwał komunikację z NRF24L01+. Miałem problem z tym programem gdyż mikrokontroler przy próbie posłania bajtu do urządzenia za pomocą funkcji: [syntax=c] while (SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_TXE) == RESET) ; SPI_I2S_SendData(SPIx, byte); while (SPI_I2S_GetFlagStatus(SPIx,...
Od kilku dni zabawiam się kamerką OV7670, próbuję pobrać z niej obraz w formacie RGB565 i o mało ambitnej rozdzielczości QCIF(bo taki zmieści się w całości w RAM). Program, który napisałem ma za zadanie w przerwaniu pobrać obraz do pamięci, zatrzymać przerwanie i zapisać zawartość do pliku bmp. Oto mój kod : Otw. pliku 0 Init OV7670 1 System Clock 120...
Witam BusTurnAround mam na 1 a AddrSetup i AddrHold, zmieniałem od 0 do 5. Problem jest tylko wtedy gdy robię tak np: Zapisuje sobie jakieś dane w 1000 strukturach JakasTablica, Wiem jakie są w niej liczby a potem je tylko czytam i przesuwam wskaźnik o długość struktury [syntax=c]typedef struct { unsigned int Dane1; unsigned short Dane2; unsigned char...
Najlepszego w Nowym Roku i w następnch (rokach też). Proszęż uprzejmież : [syntax=c] #ifndef NOUVOTON_SD_CARD_H_INCLUDED #define NOUVOTON_SD_CARD_H_INCLUDED // #include "NouvotonSDCard.h" #define __IO volatile typedef struct { __IO uint8_t CSDStruct; /* CSD structure */ __IO uint8_t SysSpecVersion; /* System specification version */ __IO uint8_t Reserved1;...
grko błąd znajduje się w pliku w tej lokalizacji: <nazwa_projektu>/Middlewares/Third... lwip_check.h [syntax=c]#ifndef LWIP_HDR_LWIP_CHECK_H #define LWIP_HDR_LWIP_CHECK_H /* Common header file for lwIP unit tests using the check framework */ #include <config.h> #include <check.h> #include <stdlib.h> #define...
michalko12: Zmieniłem xHandleTaskLED1, xHandleTaskLED2 na static, ale nic to nie pomogło. xLastFlashTime nie można: error "initializer element is not constant". W keilu żadnej tej zmiennej nie miałem jako static a program działał więc podejrzewam, że nie tu jest problem. Dodano po 4 Smashing: Jak wrzucam Twój program do Eclipsa to się nawet nie kompiluje...
Witam, Tak jak w temacie, kontynuuję zabawę z wyświetlaczem TFT. Ostatnio z pomocą jednego z forumowiczów udało mi się ogarnąć biblioteki do obsługi wyświetlacza i zacząłem zabawę;-) Ponieważ dosyć szybko poszło mi z wyświetlaniem np napięcia lub temperatury, czy dowolnych napisów, postanowiłem sobie nieco urozmaicić zabawę;-) I wpadłem na pomysł, żeby...
Proszę kod bez dodatkowych pustych lini. biblioteka [syntax=c] /* Includes ----------------------------------------... #include "TC.h" #include "systick.h" #include "GLCD.h" #include <stdio.h>; /***************************************... * Function Name : MAX31855_SPI_Init * Description...
Wg tego co widzę w necie, typ kiss_fftnd_cfg to _wskaźnik_. To co jest pod tym wskaźnikiem musi być zaalokowane przez funkcję "kiss_fftnd_alloc()". Jeśli tego nie zrobiłeś, to do wywołania funkcji kiss_fftnd() przekazujesz śmieci (albo NULL), przy czym funkcja ta jest tak świetnie napisana, że nawet tego nigdzie nie sprawdza i ostro sobie odczytuje...
dataSize (w javie / C# byśmy opuścili, bo to jest zintegrowane w typie tablicowym) A inicjowało by to się jak poprzednio: [syntax=c]const Metryczka metryczki[] = { { FONT8x8, sizeof(FONT8x8)/sizeof(FONT8x8[0]),8,8,0 }, { FONT10x10, sizeof(FONT10x10)/sizeof(FONT10x10[0]),1... }, // h=10, w=8, modyfikator=1 { FONT12x12, sizeof(FONT12x12)/sizeof(FONT12x12[0]),1...
Witam, Po uruchomieniu trzech interfejsów RS232 w STM32f103rb przyszedł czas na RS232 w STM32f407 i odrazu problem. Zrobiłem konfigurację USARTA i wysyłam w pętli znak 'a' a otrzymuję jakieś E z indeksem dolnym 1. Konfiguracja : [syntax=c] void init_USART1(){ /* This is a concept that has to do with the libraries provided by ST * to make development...
Witam, piszę aplikację na ARMa, która wymaga wielu mnożeń oraz sumowań(głównie macierzy). Pomyślałem więc o zastosowaniu stałego przecinka, który mógłby przyspieszyć tę operację dość znacznie. Z tego co się zorientowałem, to wykonanie operacji mnożenia 2 floatów w procesorze STM32F103VE zajmuje 47 instrukcji (wg. CrossWorks). Teraz mam funkcję mnożącą...
Witam, pisze funkcje obsługi fontów o rożnych szerokościach do mojego LCD opierając się na przykładach (PixeLab i artykuł z EP)i poległem przy dwóch ostatnich linijkach. Przy każdej występują dwa te same ostrzeżenia: [syntax=c] ./src/lib/ILI9341/text.c:86:6: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]...
Zawsze robie clean. Nie po zmianach, które wprowadziłem. To nie ma związku. W projekcie, w main() mam przygotowanie obszarów tablic, w których będą wykonywane transformaty fft. Zakomentowanie tego, co poniżej nie powoduje w/w błędów. Odkomentowanie powoduje błąd. [syntax=c]int dims_obraz[2] = {Ma,Na}; // dimensions of fft obraz int dims_znak[2] = {Ma,Na};...
Udało mi się napisać kod, niestety z jakiś powodów nie działa. Nie wysyła ramek. Prawdopodobnie jest coś z inicjalizacją źle. Mógłby ktoś sprawdzić dlaczego? [syntax=c]#include "stm32f10x.h" #include "misc.h" #include "stm32f10x_can.h" #include "stm32f10x_rcc.h" #include "stm32f10x_gpio.h" int i; CanTxMsg TxMessage; CanRxMsg rx_message; uint8_t TransmitMailbox...
Odebrałem kwaterniony: 0.024229 -0.86446 0.502113 0 0.022783 -0.99555 0.091483 0 0.022616 -0.98688 0.159885 0 0.029931 -0.92663 0.374772 0 0.019435 -0.95165 -0.30657 0 0.034155 -0.99942 0 0 0.018643 -0.75865 0.651231 0 0.036383 -0.96461 0.261175 0 0.010495 -0.9983 -0.05737 0 0.028228 -0.99952 -0.01276 0 Kod programu: [syntax=c]float dot(vector u, vector...
Witam czy może mi ktoś wytłumaczyć jak wyliczyć adres poniżej w przypadku gdy linia CS SSD1289 jest podłączona do FMC_A0(PF0). W przykładzie poniżej linia CS podłączona jest do A16. Szukałem, czytałem w Internecie ale mało kto to wyjaśnia. Reszta połączeń jest wykonana następująco: LCD_RD --> NOE(PD4), LCD_WR --> NWE(PD5), LCD_CS --> NE1(PD7). Procesor...
Witam, zastanawiam się czy bibliotekę do obsługi peryferii można oprzeć na bitbandingu. Osobiście nie widzę sposobu, żeby ujednolicić pisanie takich funkcji, ale może ktoś wie jak można to wykorzystać lub czy jest to rzeczywiście mało sensowne. Przykładowo do obsługi EXTI wykorzystałem bitbanding w następujący sposób: [syntax=c] typedef struct { __IO...
Witam Jest taki wpis w LCDConf.c który decyduje o prawidłowej orientacji wyświetlacza Config.RegEntryMode = ..trzeba wpisać właściwą dla danego wyświetlacza wartość i sztuczki z podwójnym init są zbędne. Ta wartość jest przepisywana do rejestrów sterownika Ale tak jest jak używasz GUIDRV_FlexColor_Config [syntax=cpp] typedef struct { // // Driver specific...
Cześć. Wykonuje projekt na STM32F3Disvovery. Za pomocą modułu CAN MCP2515 pobieram dane sieci CAN z auta. Dane są zapisywane do zmiennej typu CAN_FRAME o nazwie can_msg. Następnie chcę zapisać na karcie sd do pliku .txt tablicę can_msg.data. Niestety zapisuje mi wszytsko w postaci char ASCII ( np: I9ÁcpG(at)ř˙ýż) jednak ja chcę aby zapisywało mi...
Struktura ma w pliku stm32f4xx_rcc.h , jest to systemowy plik płytki. [syntax=c] typedef struct { uint32_t SYSCLK_Frequency; /*!< SYSCLK clock frequency expressed in Hz */ uint32_t HCLK_Frequency; /*!< HCLK clock frequency expressed in Hz */ uint32_t PCLK1_Frequency; /*!< PCLK1 clock frequency expressed in Hz */ uint32_t PCLK2_Frequency; /*!<...
Wydaje mi się, że mam problem z poprawnym umieszczeniem w pamięci ram struktur zawierających ramkę obrazu. Pierwsza z nich to: [syntax=c] static struct framebuffer { int w; int h; int bpp; int ready; uint8_t pixels[]; }*fb = (struct framebuffer *) &_fb_base; [/syntax] Ona będzie przechowywała co najmniej 320x240*2 bajtów w tablicy pixels. Oraz druga:...
Napisałem program obsługujący komunikację RS232 dla płytki STM32 P103: - dokumentacja płytki https://www.olimex.com/dev/pdf/ARM/ST/ST... - schemat https://www.olimex.com/dev/images/ARM/ST... Niestety łącząc docelowo przez konwerter RS232 -> RS485 i podłączając do serwomechanizmu RS28 dynamixel podłączyłem raz zasilanie 15V,...
Witam, Jakiś czas temu na forum pytałem o koncepcję prostownika mikroprocesorowego. Od tamtego czasu zacząłem działać i stworzyłem płytkę, wlutowałem komponenty i zacząłem pisać program i testować układy. Wszystko szło dobrze dopóki nie rozbudowałem programu i zacząłem testy pod obciążeniem. W aplikacji wykorzystuję 3 wejścia ADC do pracy z DMA: pomiar...
Witam serdecznie, dziś chciałbym zadać pytanie z serii "dlaczego nie działa...". Od dłuższego czasu mnie to zastanawia i rozwiązania nie widzę. Mianowicie chciałem, żeby mój kod zajmował jak najmniej miejsca - a zatem optymalizujemy. do -O2 wszystko jest w jak najlepszym porządku, natomiast przy O3 nie wiem czemu przy inicjalizacji LCD procesor (przy...
No właśnie przejrzałem już pliki i korzystam z makr z dopiskami L i H i to nie pomaga. Usunięcie L i H wyrzuca błąd kompilacji bo nie ma czegoś takiego dla mojego uC. Struktura z pliku stm3232f4xx.h [syntax=c] typedef struct { __IO uint32_t MODER; /*!< GPIO port mode register, Address offset: 0x00 */ __IO uint32_t OTYPER; /*!< GPIO port output...
Witam, zajmuję cię projektem na uczelnie. Na razie próbuje poruszać serwami Dynamixel RX-64 przez CAN. Używam przejściówki CAN->RS-485. Aby poruszyć serwem wystaczy jako identyfikator wysłać wartość (0x100 << 21) oraz jako dane nową pozycję serwa. Problem polega na tym, że serwo w ogóle nie reaguje. Używam bibliotek firmy ST i udało mi się...
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, od dłuższego czasu walczę z tym problemem i nie potrafię znaleźć rozwiązania. Mam projekt, który pochodzi z anglojęzycznego tutoriala: [url=http://www.mind-dump.net/configurin... Wrzucony do Keila i skompilowany działa jak powinien. Problem w tym, że próbuję przenieść go na wykorzystanie bibliotek HAL, z których...
Witam, Zaczynam zabawę z STMami i mam pewien problem. Z kilku kodów w internecie zlepiłem swój kod i niestety jak to zwykle bywa coś jest nie tak. Docelowo chciałem obsłużyć wyświetlacz TFT wykorzystując FSMC. Napotykam problem gdy próbuje zrobić w pętli głównej wysyłanie danych przy użyciu FSMC w pewnych odstępach czasu. Jeżeli w kodzie umieszczam...
Witam, moim zadaniem jest zbudowanie układu w oparciu o czujnik ciśnienia MPL115A1 kamodbar oraz płytkę stm32f4 discovery. Chciałbym prosić o naprowadzenie, co może być przyczyną w niepowodzeniu działania układu po podłączeniu. Problem polega na tym, że współczynniki pobierane z czujnika mają wartość zero co zupełnie uniemożliwia sprawdzenie działanie...
dlaczego nie połączysz go z PC za pomocą USB Niestety, ale USB wykorzystuję w innym celu. Co do kodera - znalazłem coś takiego w internecie: [syntax=c]//1999 Cristi Cuturicu #include "Definicje_sprzet.h" //#pragma hdrstop #include <stdio.h> #include <stdlib.h> #include <string.h> #include "GPIO_procedury.h" #include "Katalogi_SD.h"...
Mało przykładów w sieci z CANem. Mam wolne piny PB8 i PB9 więc na tych pinach chciałbym zrealizować CANa. Z informacji z sieci poskładałem coś takiego: CAN.h [syntax=c] #define STANDARD_FORMAT 0 #define EXTENDED_FORMAT 1 #define DATA_FRAME 0 #define REMOTE_FRAME 1 typedef struct { unsigned int id; /* 29 bit identifier */ unsigned char data[8]; /* Data...
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...
Można powiedzieć, że nic ci nie działa bo uzywasz SPL... Ramka CAN: [syntax=C] typedef __packed union CANFrameInfo { u8 val; __packed struct { u8 rtr:1; u8 ide:1; u8 dlc:4; }; } CANFrameInfo; typedef __packed struct CANFrame { CANFrameInfo info; __packed union { u32 id32; u8 id8[4]; u16 id16[2]; }; __packed union { u8 data[8]; u32 data32[2]; }; } CANFrame;...
A do AVRlibc jakoś nikt nie zgłasza pretensji- dlaczego? Przecież też biblioteka. Z takich "kłótni" to się czasem można czegoś dowiedzieć. Np. gdy w końcu zacznę mysleć nad ARM- ostatecznie głupoty w C można pisać na dowolny procesor- to będę wiedział czego unikać. Mimo że jest książka oparta na tej bibliotece, jest jakiś kurs- też oparty na bibliotece-...
Sorry, wydawało mi się, że będzie czytelniej. [syntax=c]/* USER CODE BEGIN Header */ /** ****************************************... * (at)file : main.c * (at)brief : Main program body ****************************************... * (at)attention * * <h2>© Copyright (c) 2020...
Cześć, Od kilku dni próbuję uruchomić obsługę pewnego modułu samochodowego, sterowanego poprzez magistralę CAN. Obsługa tego modułu wymaga wysłania pewnego zapytania, a następnie odebrania 4 ramek CAN odpowiedzi modułu - łącznie trzeba odebrać 32 bity danych. Udało mi się uruchomić nadawanie zapytania oraz odbieranie odpowiedzi, jednakże trzecia ramka...
Witam, podłączyłem do mojej płytki 2 moduły nrf odpowiednio odbiornik do SPI1 a nadajnik na SPI2. Niestety mam problem z obsługą tych układów, nie zgłaszają mi one przerwań na pinach który ustawiłem jako wejściowy z pull-up oraz triggerem reagującym na zbocze opadające (sprawdzałem piny zwierając je do masy przerwanie zostało wywołane poprawnie). Funkcje...
Proponuję zrobić co innego, powinno zalatwić sprawę: Albo tam gdzie deklarujesz zmienną typu FIL [syntax=c]FIL MyFile __attribute__ ((aligned (4))) ; [/syntax] albo w ff.h [syntax=c]typedef struct { #if !_FS_TINY union{ UINTd32[_MAX_SS/4]; /* Force 32bits alignement */ BYTEd8[_MAX_SS];/* File data read/write buffer */ } __attribute__ ((aligned (4)))...
Dzień dobry Po wielu dniach podchodzenia jak do jeża zabrałem się na serio do zapisu paru danych (siedmiu liczb uint32_t (słownie 7) ) do pamięci flash. Ponieważ bez Was by się to nie udało postanowiłem się podzielić moim "osiągnięciem". Muszę zapisać jasność ekranu i skalowanie ekranu dotykowego. Wyszło tak : [syntax=c]/* * 6 wspolczynnikow kalibracji...
Witam podczas wykonywania obliczeń, gdzie występują funkcje powf() , acosf() i sqrtf() program ląduje w _Default_Handler . Kod pisany w Eclipse z wykorzystaniem przykładu od Freddiego do STM32F4. Poniżej kod: [syntax=c] typedef struct { uint8_t accel_raw_x, accel_raw_y, accel_raw_z; int16_t scaledx, scaledy, scaledz; double angle; } accel_meas_t; uint8_t...
typedef struct sizeof struct stm32 typedef volatile
wiena mostek biquad wymiary router airlive hasło
Pralka Indesit D 61052 W nie odwirowuje prania Citroen C4 Picasso 1.6 HDi gaśnie pod górkę