TO masz pecha. BO początku pamięci flash nie da się tak wykorzystać.
funkcja której używam sama przypisuje 0 lub 1 w zaleznosci czy jest to read czy write dlatego zastosowałem przesunięcie
Rzutowanie to złe rozwiązanie. Trzeba robić przesunięcie w prawo o 8 bitów
Ewentualnie wywołuje się z tysiąc razy. if(TIM2->SR && TIM_SR_UIF) Ten warunek jest zasadniczo błędny, zapewne jest zawsze spełniony. GPIOA -> AFR To nie jest przesunięcie.
(at)albertb, zrobię tak, tylko nie bardzo wiem jak ;/ spróbuję w wolnej chwili poszukać informacji jak najlepiej to zrobić (at)piotrva, np. w jakimś środowisku do pisania w C? (Visual Studio, Code::Block itd.) Czy może są jakieś "lepsze" testery dostosowane pod symulację komputerową takich kodów? (at)BlueDraco, wybacz że nie jestem wszechwiedzący i...
W takim momencie człowiek poznaje jak bogate ma słownictwo (te, które nie nadaje się do "towarzystwa")... Tyle czasu stracić z powodu takiego błędu... To chyba standard w programowaniu :( Teraz chodzi, nie do końca tak jak bym chciał ale działa już coś. To co odsyła slave jest jak gdyby opóźnione i mam dwa rodzaje ramek jakie otrzymuje: - jedno gdzie...
Czy w STM32 można zmusić ADC do pracy w 8 bitach (regular), czy jedynie pozostaje przesunięcie ustawione ADC_JOFR aby mieć odczyt 8bit ?
Moje pytanie - skąd wytrzasnąłeś to przesunięcie akurat o 7? 4\/3!!
Witam, Problem przesunięcia fazowego sygnałów PWM próbuję rozwiązać już jakiś czas, niestety z marnym skutkiem. Czy mógłbyś przesłać kod który rozwiązuje synchronizację/ przesunięcie fazowe na stm32? Każdy kod przyjmę z otwartymi rękoma, mój zestaw to stm32f407VG Pozdrawiam, Antek
Może masz jakieś przesunięcie w wektorze albo niezgodność nazw? Sprawdź jaka funkcja jest pod tym adresem..
(at)kubamiszkiewicz Do takich rzeczy potrzeba jakiś program do debugowanie ramki i symulacji mastera/slave modbus. Potrzebujesz konwertera RS485/USB i np. programu ModbusViewTCP. Tutaj może być masa nakładających się błędów np. niewłaściwe parametry komunikacyjne, błędnie zarobiony przewód komunikacyjny, zapis/odczyt nieprawidłowych rejestrów ( trzeba...
to chwyć zakładkę edytora i przesuń utworzysz nowy okno edytora.
[syntax=text]while !(TXE); SPI->DR = x; while(!RXNE); y = SPI->DR;[/syntax] przez zwolnieniem CSa należy poczekać na zwolnienie flagi busy. PS. co za za ciągłe przesunięcia jedynek?
Możesz podać logiczne uzasadnienie blokowania odbiornika/nadajnika poza potencjalną możliwością gubienia danych? Niestety po kilku wysłaniach danych z PC z rzędu do arm pojawia się przekłamanie gdyż ostatni bajt wysyłany z PC trafia nie do RxBuf
a jak to dokładnie jest z takimi bootloaderami, jak te co podesłałeś i prawdopodobnie te od Arduino? Czy one za każdym wgraniem projektu muszą być dokompilowane do mojego programu? Czy też siedzą sobie grzecznie w specjalnym zakresie pamięci i kolejne flashowania ich nie ruszają? Tak długo jak wgrywasz wsad "przez nie", nie musisz nic robić. Kompilując...
Mam jeszcze pytanie odnośnie samych danych. W androidzie znajduje się funkcja, która jest wywoływana, gdy dane przyjdą. W jaki sposób można wykonać rozróżnienie przychodzących danych? Mogę oczywiście dodać komendy, jednak będą one nieodróżnialne od danych. Komendy mogą występować na określonych pozycjach (np. pozycja 0 - bajt komendy, pozycja 1,2 -...
Czy możesz mi powiedzieć, STM32 na wejściu dopuszcza sygnały maksymalne 3,3 V między szczytowe czy wartości skuteczne? Przykładowo dla STM32F407 i płytki Discovery zakres (full scale) to 0...3 V. Stąd po przesunięciu poziomu można podać właśnie 3 Vpp (międzyszczytowo). Dla innych STM32 to może być 0...3,3 V i wtedy można podać 3,3 Vpp. Czy możesz w...
hmmm Dobre pytanie. Ponieważ takie umieszczenie bootloadera pozwala mi uniknąć zabawy z tablicą wektorów przerwań, ominięcie przesunięcia początku programu i tym podobne.
Witam. Mam kawałek kodu z avr który chciałbym użyć w stm32 niestety moją pietą Achillesa są przesunięcia bitowe. Czy mógłby ktoś pomoc z przepisaniem tego na stm32 ? [syntax=c] #define OW_PIN PD5 #define OW_IN PIND #define OW_OUT PORTD #define OW_DDR DDRD #define OW_GET_IN() ( OW_IN & (1<<OW_PIN)) #define OW_OUT_LOW() ( OW_OUT &= (~(1...
Chodzi o to, aby wygenerować drugi, taki sam sygnał przesunięty o 90 stopni. To nie jest przeciwfaza. W tym wątku jest informacja o przesunięciu przebiegu prostokątnego: https://www.elektroda.pl/rtvforum/topic1...
No to inaczej, czemu nie zrobić tego programowo? Można zaprząc do tego jeszcze trzeci timer, który będzie liczył właśnie tą inercję. Niech ma dużą częstotliwość i po odliczeniu zadanej wartości niech ustawia flagę, która z kolei załączy drugi PWM (albo od razu w przerwaniu to zrobić).
No właśnie w ten sposób próbuje i według wyliczeń wychodzi po przesunięciu przecinka około 7V a w rzeczywistości mam 11V.
Masz przebieg sinusoidalnie zmienny przesunięty względem masy na połowę napięcia zasilania ?
czyli to sprawdzanie długości znaków początkowych to jest "sztuka dla sztuki", jeżeli BREAK byłby na tyle krótki że nie byłby zinterpretowany jako FRAME ERROR to zostałby odczytany jako zwykły bajt w UARTcie prawdopodobnie o wartośći równiej 0, co w konsekwencji mogło by spowodować wysterowanie (albo raczej brak) konkretnego kanału wartością 0. Zatem...
Doszedłem do wniosku że skoro ten temat kręci się w około skryptów i makefile'ów to tu będę pisał, ale w sumie to może i masz rację. Co do tych adresów też mi się tak wydaje właśnie ale cały skrypt linkera który był w tym projekcie jest stworzony na adresach wirtualnych a potem w makefile'u jest to przesunięcie do adresów fizycznych. Na logikę trochę...
No i tutaj jest właśnie problem, czy ten prąd musi ciągle płynąć nawet gdy nie ma zmiany pozycji? Trochę to bez sensu, akumulatory się rozładowują, a silnik się grzeje. Niby nie musi ciągle płynąć ale najprościej jest zrobić żeby płynął ciągle. Jeśli chodzi o niestosowanie enkoderów (lub innych czujników wyznaczających pozycję rotora względem statora)...
To, co jeszcze warto wyciągać z takich drukarek to enkoder liniowy. To wygląda jak ten transoptor szczelinowy, ale przechodzi przez niego taki przeźroczysty pasek z kreskami. Super sprawa. Standardowo można znać przesunięcie paska, względem enkodera o 1/4 odległości pomiędzy kreskami. Działa jak zwykły enkoder, czyli można np. podłączyć, prawie bezpośrednio...
Z tym "przesuwnikiem" chodzi o obniżenie napięcia z uC, przez wstawienie diody w szereg przed bramką? W zasadzie tak ale jest tu bardzo ważna sprawa. Mianowicie by dioda była tym przesuwnikiem trzeba wymusić opornikiem przepływ odpowiedniego prądu przez diodę bo sam prąd bramki jest pomijalnie mały do tego celu. Dodatkowo opornik jest potrzebny do...
Na forum ST znalazłem wpis że przestaje jakoś działać DMA powyżej 64kB. Wystarczyło poszukać w dokumentacji. Od adresu 0x20000000 znajdują się 64 kB pamięci DTCM, powyżej jest już zwykły SRAM. DMA nie jest w stanie ogarnąć sytuacji gdy zmienia się "moduł" pamięci, a przy okazji ścieżka dostępu do niego (DTCM jest podłączony do DMA i do innych masterów...
Co do priorytetów, u mnie dla LPC1769 jest ustawione tak: [syntax=C]/* The lowest priority. */ #define configKERNEL_INTERRUPT_PRIORITY ( 31 << (8 - configPRIO_BITS) ) #define configMAX_SYSCALL_INTERRUPT_PRIORITY ( 5 << (8 - configPRIO_BITS) )[/syntax] Dla STM32 configPRIO_BITS jest równe 4. U siebie też tak masz? Z tym przesunięciem bitowym?...
Proszę https://github.com/RafNie/ultrasonic-mar... Odtwarza losowo zapętlone odgłosy borsuka, przesunięte w zakres ultradźwięków. Ale z praktyki walki z jednym szkodnikiem mogę powiedzieć, że tak naprawę żadne odstraszacze nie działają 😃 Ani worki z psią sierścią Kunagone, ani kostki domestos, ani odstraszacz zapachowy za 100zł....
A nie jest po prostu tak, że wysyłasz adres bez przesunięcia go o 1 bit (albo z niepotrzebnym przesunięciem o 1 bit)? To że 7-bitowy adres urządzenia wynosi 0x68 nie znaczy jeszcze, że dokładnie taką wartość trzeba wpisywać do rjestru I2Cx->DR, ponieważ najmłodszy bit wpisywanej tam wartości wybiera kierunek transmisji.
(at)toch88 Nie ma powodów, aby nie stosować takiego zapisu. Np. Atmel w swoich nagłówkach dla ARM daje możeliwość korzystania z pól bitowych, lub składania wartości z masek i przesunięć. Przy czym jeśli korzystasz z pól to wygodnie jest użyć compund literals: http://mikrokontrolery.blogspot.com/2011...
Chodzi Ci o ręczną konfigurację pinów? To był test na szybko, łatwiej było mi z reference manualem na drugim ekranie, bo od razu widzę wartości i przesunięcia. Docelowo oczywiście że używam czegoś bardziej ludzkobrzmiącego. To w takim razie masz może jakiś trop w jaki sposób namierzyć ten błąd?
Parametry sterownika zależą od sterowanego obiektu: masy ruchomej, zakresu ruchu i siły elektromagnesu. Mamy tutaj do czynienia z układem drgającym, który powinien pozostać w stanie metastabilnym, czyli siła wytwarzana przez elektromagnes musi równoważyć ciężar (iloczyn masy ruchomej i przyspieszenia ziemskiego) w zadanym położeniu. Zbyt duża siła odepchnie...
Witam. Mam 2 problemy które wynikły w czasie mojej zabawy z ARM. Mam nadzieję że ktoś mi podpowie co jest nie tak. Mam dwie funkcje które pod AVR działały bezbłędnie a pod ARM już nie do końca chcą funkcjonować. Wypunktuję te problemy. 1. Funkcja "SD_writeSingleBlock" z biblioteki do obsługi karty SD ze strony darhmanitech.com. Funkcja: http://obrazki.elektroda.pl/1642057700_1...
W kodzie jest jedno Delay :) wykorzystane tylko do celu eksperymentu bazujące na przerwaniu Systicka. Niestety po wpisaniu: GPIOA->BSRR = 1 << 5; //set bit Delay(1000); GPIOA->BSRR = 1 << 21; //reset bit układ zachowuje się podobnie jak pisałem wcześniej albo dioda cały czas świeci, a po zamianie linijek jest gaszona. Mam pytanie,...
Zastanawiam się w jaki sposób wygenerować sumę dwóch sygnałów sinusoidalnych o różnych parametrach z wykorzystaniem DAC i DMA. Czy mogę jednorazowo (na początku programu) wyliczyć sumę dla poszczególnych próbek i przy konfiguracji DMA podać jedynie adres na początek tablicy przechowującej wartości czy muszę obsłużyć przerwanie od DMA w połowie transmisji...
Da się to zrobić, trzeba udawać myszkę czyli urządzenie HID. Jedyna uwaga to że myszka nie przesyła współrzędnych ekranu tylko przesunięcie względem aktualnej pozycji. Żeby to obejść wystarczy w sekwencji wyłączającej dać wielokrotne przesunięcie "w lewo i do góry" tak żeby za każdym razem kursor doszedł do lewego górnego rogu. Z tej znanej już pozycji...
gaskoin wytłumaczysz mi dlaczego w tych makrach jest alternatywa, np.: [syntax=c]#define GPPP_OUTPUT_10MHZ ((CNF_GPPP << 2) | MODE_OUTPUT_10MHZ)[/syntax] jak dobrze myślę, to za każdym razem po przesunięciu bitowym CNF_GPPP i tak będzie ono miało wartość 0. Nie wystarczyłoby tak?: [syntax=c]#define GPPP_OUTPUT_10MHZ (MODE_OUTPUT_10MHZ)[/syntax]
Witam, mam takie pytanie o wytworzenie sygnałów sterujących 6 tranzystorami na stm32. Można zrobić tak, że w trzech tablicach definiuje się wartości sinusa (wypelnienie PWM) i za pomocą DMA (za pomocą trzech kanalow) całkowicie sprzętowo będą wysyłane dane do rejestrów CCRx, a czestotliwosc przesylania bedzie ustalana za pomoca rządań DMA przez np....
Witam! Potrzebuję przesyłać na zewnątrz po cztery bity. Żeby było szybko sprawnie i nie męcząco dla rdzenia pomyślałem o dma. Ale minimalny rozmiar przesyłanych danych, a więc i inkrementacji adresu jest 8 bitów. Nie ma tyle ramu, żeby rozrzutnie darować sobie cztery starsze bity i po prostu zwiększać wskaźnik o 8 nie ignorując połowę. Pomyślałem, że...
buffer<<=18; można też rozumieć jako przesunięcie o 18 bitów :D bo docelowe dane nie znajduja się na początku ramik Tylko czy aby we właściwym kierunku? Funkcja TC_GetTC1() nie wykonuje konwersji tylko rzutowanie i moim zdaniem jest zbędna. Spróbuj tak buf w funkcji RD_AD() bo zmienne lokalne nie są domyślnie zerowane podczas deklaracji i mogą...
Nasuwa mi się myśl - jeśli ważne jest, by te ADC były taktowane symultanicznie i jednocześnie zbierały dane, to z tego co wiem SMT32F7 ma 3 ADC które mogą pracować w trybie równoległym. W pierwszym poście pisałeś coś o 4 ADC. Tu już by trzeba użyć kanałów poszczególnych ADC i wówczas chyba nie da się tego zrobić symultanicznie i pojawią się przesunięcia...
Myślę że przesunięcie rzędu czas trwania jednej konwersj nie było by problemem więc pytanie nadal aktualne A dlaczego nie wykorzystać możliwości. Jeżeli nie znasz HALa to najpierw zainstaluj sobie przykłady w Cube (ale nie mx) i przeanalizuj je. Wtedy domyślisz się jak zaincjalizować porty, ADC, DMA i timer aby trygierzował konwersje w odpiednim czasie....
Tak się zastanawiam czy przesunięcie zerowania tej flagi coś da, w końcu przerwanie i tak zrobi swoje, nie czekając na pozwolenie. Ściągnąłem ten sprintf_ ale przy kompilacji co chwila o coś woła jakieś usarty i inne.. Ogólnie to zamieniam jedynie inta na 6 charów w tablicy i dodaje literkę przed. Wykastrowałem o unsigned itoa i jej użyłem ale nadal...
(at)conkerkh Z tego co pamiętam to fatfs nie zapewnia tego, że dane przekazywane do diskio_write są wyrównane do 4 bajtów. Na wszelki wypadek sprawdzałbym to. [syntax=c]if ((size_t)buff & 3) { //OMG }[/syntax]
Pytanie proste. Mam zdefiniowany String we flashu. Jak dostać się do każdego znaku z osobna? Jak chcę coś wydobyć z pamięci to mi pokazuje co czwarty znak. Przesunięcie bitowe typu "adres << 8" też mi nie chce działać. Robię parser a ponieważ string ładuję do flasha funkcja strtok nie chce mi działać. a[0] = (*(vu16*) Addr);...
Jakbyś zajrzał tam, gdzie Ci napisałem to byś wiedział co to oznacza :) NVIC->ISER to jest Interrupt set enable register w stmie zorganizowali go na zasadzie tablicy, przerwania: 0-31 uruchamia się w pierwszym jej elemencie 32-63 w drugim 64-67 w trzecim przesunięcie bitowe w prawo ma pewnie na celu "wstrzelenie" się w odpowiedni element tej tablicy,...
RM0008, strona 294, rysunek 52. Widać tam wyraźnie jaka jest relacja między CNT i CCx. Zawartość rejestrów CCx jest stale porównywana z zawartością CNT i w zależności od wyniku sygnał OCxREF ma wartość 1 lub 0. Dodatkowo, podczas porównania, może zostać wygenerowane zdarzenie CCxI, np. przerwanie, start dla DMA, zdarzenie dla licznika podrzędnego. Bez...
Dziękuje za odpowiedzi. Dysponuje jeszcze napieciami 12V i 5 V, ale mierzyć mogę jedynie do 3v3. Wpadłem na nowy pomysł. Sonda generuje napięcie od -400mV do 400mV. Wydaje mi się, że takie napięcie mógłbym mierzyć bezpośrednio i to z dużą dokładnością 12bit-owym przetwornikiem ADC w STM32. Co o tym sądzicie? Skorzystaj z 12, dodatkowo dołóż filtr choćby...
(at)uzi18 Nic więcej nie mam na SPI, ale to raczej nie jest rozwiązanie. CS to nie jest strob zatrzaskujący wpisane dane, ma być na zero na cały czas transmiji. Chyba że coś źle Cię zrozumiałem? (at)Freddie Chopin No może ten rysunek jest mało oczywisty, ale tu jest jeszcze opis słowny. Commands to the transmitter are sent serially. Data bits on pin...
Z ADC problem był z trybem ??? Dwa ADC pracują na jednym kanale z przesunięciem fazy, aby wycisnąć 2 razy większą częstotliwość próbkowania.
https://obrazki.elektroda.pl/3252078300_... Poniższy artykuł przedstawia – krok po kroku – wykonanie niewielkiego, kieszonkowego oscyloskopu cyfrowego. Nie jest on tak dobry jak zwykły warsztatowy oscyloskop, ale z drugiej strony można zabrać go niemalże wszędzie. Poza tym – nie wszystkie projekty DIY muszą mieć sens....
już wiem czemu działa [; myślałem, że w STM32 jest tak jak w ARM7 - że jedynie kawałek pamięci jest remapowany w obszar wektorów przerwań. Doczytałem właśnie, że jednak cały FLASH jest dostępny zarówno pod adresem 0 jak i adresem 0x8000000. Właśnie dlatego całość działa. Cofam więc to co powiedziałem - układ będzie działał poprawnie, bo inicjalizacją...
Musze połączyć się z czujnikami pracującymi na magistrali Modbus. Ponieważ mam z tym problemy, ominąłem magistralę 485 i połączyłem bezpośrednio USARTy obu urządzeń. Niestety, czujnik nie odpowiada. Wysyłam mu jako pytanie jego nr, kod odczytu rejestrów (0x03), dwa bajty adresu pocz. (00,00,) itd. Na końcu wysyłana jest suma kontrolna, też dwa bajty....
Witam Rozumiem, że chcesz aby cały kod wynikowy został umieszczony w pamięci RAM. Żeby tego dokonać należy zmienić adres sekcji ROM w skrypcie linkera: "rom (rx): org = 0x08000000, len = 128k" na pamięć RAM(zaczyna się od adresu 0x20000000 dla stm32). Pamięć RAM również należy przesunąć o odpowiedni adres. Jeżeli masz w kodzie przerwania to nie zapomnij...
Witam, Czy zmienna np.: uint16_t zmienna = 0x147A; może być poddana operacji w stylu "rotate 1 bit left" ? Chodzi o to, że potrzebuję napisać funkcję liczącą sumę kontrolną dla pewnego urządzenia i jednym z punktów algorytmu jest to, aby zmienną "zmienna" rotować w lewo o 1 bit. Nie chodzi tutaj o samo przesunięcie (shift), tylko o rotację. Wiem, że...
https://obrazki.elektroda.pl/8808596700_... Pokażę tu jak łatwo uruchomić MAX31855 z Arduino a potem omówię jego protokół komunikacji. MAX31855 oferuje 14-bitowy pomiar temperatury z zakresu zależnego od użytej sondy, od -270°C aż do 1800°C. MAX31855 oferuje prosty protokół komunikacji oparty o SPI, zasadniczo odczytujemy z niego tylko...
U mnie kod z przerwania wygląda tak: Czy dobrze liczę, że dla f = 50 Hz kolejne elementy tablicy wynoszą: 2, 5, 7, 10, 12, 15 ? Nie mogę zrozumieć jak to się dzieje, że przez przesunięcie bitów o sześć pozycji w prawo otrzymujesz najpierw krok przypadający na jeden cykl PWM a następnie go przeskalowujesz. Czy mógł byś przybliżyć mi jak to działa? Dodano...
Sprawdź czy to co dostajesz w zmiennej pixel jest zgodne z prawdą :) Może masz np przesunięty odczyt o 8bitów.
Dzięki za wyjasnienie. Na początku zrozumiałem, że interesuje Cię przepełnienie FIFO TX. Jezeli chodzi o RX, to myślę, że taki czysto hipotetyczny moment istnieje, ale raczej nie dla F0, który ma tylko 2 mastery dla bus matrix. Większe ryzyko będzie dla układów, które mają więcej masterów (F4/F7/L4). Na przykład: - Rdzeń wykonuje program z pamięci SRAM1,...
Wpisałem asmem z przyzwyczajenia. Co do przepełnienia stosu to niemożliwe gdyż wszystko działa tylko ta funkcja umiera. Użycie wskaźnika to ze względu na to, iż szybciej się przerabia kod na wiele struktur(urządzeń) Zmieniłem już na bezwskaźnikowe z dostępem przez '.' To co mówiłem przed zbieżnością nazw zabezpieczam się strukturami (nigdy nie stosuję...
Witam. Wiem, że zagadnienie bardziej pasuje pod dział DSP. Jednak tak się składa, że ten algorytm będę implementował na STM32F407. Popytam więc i tutaj. Posiadam trzy sygnały: 2.5kHz, 7.5kHz, 22.5kHz spróbkowane z fs=25e6/256. Próbkowanie ciągłe, trzema osobnymi kanałami z zewnętrznego ADC (odzielny sygnał zegara uC i ADC). 24bity. Teraz, z tych trzech...
Jeśli ktoś szuka łatki dla 113-15001-122 to tutaj jest. Zmniejszone migotanie jest przyjemne. Witam wszystkich po długim czasie. Wypróbowałem łatkę mrsim0ns w wersji FW 122 i działa dobrze, podobnie jak łatka boyak75 w wersji 120. Jednak mój poprzedni problem pozostaje: muszę wprowadzać kod aktywacyjny przy każdym włączeniu zasilania, niezależnie od...
Zapewne w tym co wkleił simw wyżej jest jakaś drobna literówka czy coś takiego. No w tym wypadu nie ma literówek, przykład na bieżąco kompilowałem, wgrywałem do uK. Raczej to kwestia wersji CMSIS z Cube. Ok, dzięki za odpowiedź. Proszę jeszcze o wyjaśnienie kwestii litery 'U' przy przesunięciu bitowym: Te wartości to to kopiuj-wklej z nagłówków CMSIS,...
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...
Przyzwoity wzmacniacz pomiarowy można zbudować z trzech tanich wzmacniaczy operacyjnych. A czwarty z istniejących na strukturze poczwórnego wzmacniacza wykorzystać do przesunięcia poziomu napięcia wyjściowego. A oporniki w tym wypadku nie muszą być dokładne- ale jednakowe. A robi się to tak- bierzemy garść oporników np. 100k i mierzymy ich wartości...
Tak tez robiłem do tej pory, ale teraz chcę odnieść wszystkie wielkości do wielkości rzeczywistych (napięcie, prąd, prędkość silnika). Ponieważ np. stała całkowania będzie wynosić TP = 100e-6s stąd na część ułamkową chcę przeznaczyć 16 b z czego wynika że na część całkowitą również zostaje 16b. Wtedy TP = 100e-6*65536 = 6 , a np 2A = (2<<16) =...
Po pierwsze sorry za zwłokę. Po drugie na pewno linii nie pomyliłem. linie adresowe na pewno są przypięte do masy ponieważ na Arduino działa. Adres też nie powinien się zmienić. zegar ma 100k (standard). Zauważyłem, że jak zmienię linię z PB9 na PB7 (SDA), a z PB8 na PB6 (SCL) (to się chyba mapowanie nazywa) to zmienia mi się z HAL_ERROR na HAL_BUSY...
Nie do końca rozumiem o co chodzi autorowi Chciałem właśnie zapytać autora czemu ma to służyć? Czyżby fazowe sterowanie triaka? Jeśli tak to mam gotowe rozwiązania na ARM STM32 i AVRmega.
Niestety wartości bardzo bliskie czystemu białemu również powodują powstanie przesunięcia :( są to wartości rzędu 0xFEFEFE i 0xFDFDFD. Dla mniejszych jest ok. Jakieś pomysły na rozwiązanie? W układzie mam sterownik SSD1963 podłączony do stm32f4DISCOVERY (zasilanie sterownika podłączone do 3,3V i gnd na stmie), do tego dochodzi czytnik kart microSD...
Witam Od niedawna bawię się uC STM32 i krok po kroku próbuję nauczyć się ich obsługi. Słowem wstępu: Mam płytkę ZL31ARM, pewne doświadczenie z programowaniem w C/C++ i zupełny brak doświadczenia z mikrokontrolerami. Mam już za sobą mruganie diodami i proste pętle opóźniające; obecnie chcę nauczyć się obsługi przerwać przy wykorzystaniu EXTI i IO. Korzystam...
Co prawdaż dane do wykresu od czapy i generowane przez PC Prędkość UART 230400 baud dodatkowe opóźnienie po stronie PC [youtube]https://youtube.com/shorts/a0CP... Tutaj bez opóźnienia [youtube]https://youtube.com/shorts/rf0X... Każde mignięcie (przesunięcie ) to kolejne namalowanie 300 linii.
Vref sprawdzone i jest wszystko w porządku :) Sugestia o przesunięciu danych "w lewo" zainspirowała mnie do ponownego sprawdzenia wszystkiego w Reference Manual i okazało się, że (str. 264 RM): 1. adres rejestru, który używałem, dotyczył danych zorientowanych "na prawo", ale dla trybu pracy obu kanałów -> zmienię to na wersję DAC_DHR12R1, ale jako początkujący...
Możliwe że, winne jest uruchamianie funkcji alternatywnej, nie jestem pewien czy poniższa formuła jest poprawna, chcę uruchomić funkcję alternatywną nr 2 na pinie nr 6 portu B: Nie jest, bo jak sam widzisz z tabeli potrzebne przesunięcie to 24 bity, a nie 6.
Witam Walczę z wyświetlaczem 4,3" (480x272 ) już chyba miesiąc. Udało mi się napisać funkcję wyświetlającą obrazki, ale coś jest nie tak z tym obrazkiem. Kolory wyświetla prawidłowo ale pojawia się dziwne przesunięcie. Ja już nie mam pomysłów może mi ktoś coś podpowie ?? poniżej kod wyświetlana obrazka: http://obrazki.elektroda.pl/8937566700_1...
Rejestry GPIOx->BSRRH i GPIOx->BSRRL to "połówki" rejestru BSRR opisanego w manualu, a więc wpisywanie tam wartości większych niż 16-to bitowe nie odniesie żadnego skutku. Zobacz czy w nagłówkach nie ma albo dostępnego rejestru GPIOx->BSRR (bez ...L albo ...H) albo odpowiednich makr GPIO_BSRRx_Bx_xx (z ...L... lub ...H...). W ostateczności w liniach...
https://obrazki.elektroda.pl/5078506600_... Opublikowany niedawno raport wskazał, ze większość sprzedawanych poza oficjalną dystrybucją układów DS18B20 może być podróbkami lub kopiami, wykonywanymi przez inne niż Maxim firmy. Omawiany układ to prosty, cyfrowy sensor temperatury z interfejsem 1-Wire. Jeśli kupowaliście go na portalach...
Za pomocą dzielenia zapisywać coś co jawnie w DS jest opisane warunkowo? Nikła ta czytelność. To jak zapisywać dzielenie przez 4 przesunięciem w prawo o 2.
No właśnie się zastanawiam czy moje rozwiązanie z przesunięciem fazowym nie sprowadza się do tego samoego co liczenie czasu powrotu:D Wiec czemu częsciej używa się właśnie przesuniecie fazowe? info: http://oen.dydaktyka.agh.edu.pl/dydaktyk...
NVIC->ISER[0] |=1<<ABC; gdzie ABC jest jakąś definicją przerwania zdefiniowaną w "stm32f10x.h". Tylko trzeba uważać bo przerwań jest więcej niż 32 i czasem "wchodzą" w ISER[1] oraz ISER[2] i nie można tego zrobić wprost przesunięciem w postaci "NVIC->ISER[0]=1<<67".
To API jest bez sensu więc nie ma co szukać o tym informacji. Dlaczego uważasz, że jest bez sensu? To według Ciebie lepiej pisać odwołując się bezpośrednio do rejestrów? Korzystanie z tej biblioteki poza tym mają również inne wady: 1) Struktury inicjalizacyjne marnują pamięć. Te struktury są spakowane, więc dostęp do bitów w tej strukturze jest utrudniony....
Zastosowanie miałoby być takie: Robię komputer na obd2 i opisy kodów błędów chcę mieć w pamięci flash i teraz tak. Chciałbym przechowywać opisy w postaci plików txt. otwieram plik o danej nazwie błędu i mam opis. Jednakże dużo prościej i bardziej optymalnie będzie chyba jednak rezerwacja określonej liczby bajtów w pamięci na opis i odnoszenie się do...
Nie do końca bo w inicjalizacji ADC mam linijkę odpowiedzialną za to przesunięcie:[syntax=c]ADC_init_structur... = ADC_DataAlign_Right;//data converted will be shifted to right[/syntax] Ale chyba znalazłem winowajcę, gdy zakomentuje linijkę:[syntax=c]ADC_init_structure.ADC... = ADC_ExternalTrigConv_T3_CC1;// conversion is synchronous...
Funkcje odczytu i zapisu są dobre, błąd był w wartościach CCR i TRISE. Przeliczyłem jeszcze raz i teraz śmiga aż miło. Teraz mam problem jak przeprowadzić kalibrację dotyku, bo ma delikatne przesunięcie. Jest na to jakiś wzór ?
Dzięki za sugestie. Znalazłem błąd. Błędna była ustawiona kolejność portów. W moim przypadku największym utrudnieniem w programowaniu jestem na tym etapie sam ja. Przesunięcie bitowe, które wskazał Freddie Chopin również było błednie przeze mnie ustawione, zmieniłem i wszystko funkcjonuje jak powinno.
Faktycznie masz rację, dzięki za zwrócenie uwagi na to. Dopisanie odczytu rejestru DR po wysłaniu samej komendy pomogło;) Natomiast nie mogę teraz znieść mindfu*ka, bo linijka : id = SPI1->DR; nie działa. W rejestrze są już dobre dane, ale przypisanie do zmiennej nie działa... Nawet jeśli zadeklaruję ją w tej samej funkcji to po prostu nie działa, wartość...
Przesunięcie kasowania tak by było na początku [syntax=c] void TIM8_IRQHandler(void){ if(TIM8->SR & TIM_SR_UIF) { TIM8->SR = ~TIM_SR_UIF; licznik = TIM8->CNT; } } [/syntax] i tak robi zawieszenie, popatrzę z tym debuggerem może coś wywnioskuje zniego
Z tego co widzę masz prawdopodobnie przesunięcie danych o jeden bajt. (wytnij jeden bajt z wava gdzieś na początku danych i dostaniesz szum) Spróbuj jak [url=http://www.elektroda.pl/rtvforum/vi... wcześniej odczytu +1 albo -1 bajt. Częstotliwości wyglądają OK, najwyżej będzie inna tonacja. =======update====== Wydaje...
https://obrazki.elektroda.pl/8952633700_... Projekt miał na celu stworzenie sterowania dla topologii half-bridge z możliwością ustawiania częstotliwości za pomocą programu na komputerze. Dodatkowo układ posiada synchroniczne próbkowanie przebiegu prądu w celu dokładnego pomiaru fazy oraz amplitudy i wykreślenia wykresu wartości tych...
Ciekawe, że podczas prawie globalnego zasięgu bezprzewodowej łączności telefonicznej oraz powszechnego wykorzystania komunikatorów, wciąż znajdują się konstruktorzy pracujący nad odbiornikami i nadajnikami krótkofalowymi dla amatorskiego użytku. Obecnie są to w większości urządzenia cyfrowe, bazujące przeważnie na technologiach SDR (Software-defined...
Chce zaimplementować emulację EEPROMu za pomocą FLASHa w mikrokontrolerze STM32F429. Te mikrokontrolery mają taki podział sektorów: https://obrazki.elektroda.pl/6074785200_... (tabelka jest z F41x, ale dla F42x i F43x jest tak samo). No i jak widać używanie ostatnich sektorów jest niewygodne, bo są one bardzo duże. Trzeba użyć któregoś...
Ja zrobiłem bezsensownego ora tylko w przykładzie, funkcja CMSIS robi za to bezsensownego anda i o jedno bezsensowne przesunięcie bitowe więcej Biorąc pod uwagę fakt, że 99,666% przypadków użycia tej funkcji to stały parametr, myślę że optymalizator sobie z tymi przesunięciami poradzi. Teraz sprawa się nieco komplikuje, ale to nie problem. Komplikacja...
Witam, mam problem z termometrem DS 18B20. Termometr zasilany jest pasożytniczo tylko przez środkową nogę napięciem 3,3V i podłączony do portu PB15. Pozostałe nogi do masy. Poniżej podaje funkcje napisane do termometru. [syntax=c] #include "systick.h" #define portW1 GPIOB #define wire1 GPIO_Pin_15 uint16_t RESET_PULSE(void) { uint16_t PRESENCE=0; GPIO_ResetBits(portW1,...
Jednak wygląda to na format RGB. Tylko kamera ma małą jasność. A bity są pozamieniane. Tutaj to widać: http://obrazki.elektroda.pl/2472304200_1... RGB1 to obrazek z bitów jak by je złożyć tak jak są. Poniżej te 3 rzędy obrazków po 6 obrazków to poszczególne składowe. Widać że bity są nie po kolei. Można się domyśleć że najstarszym bitem...
Tylko u mnie nie jest to żadna sekwencja. Kanaly 11 i 12 są zamienione. No właśnie - dlaczego? Jak to stwierdziłeś? Próbowałeś kilka razy pod rząd uruchomić konwersję? Wziąwszy pod uwagę Niedoceniasz "HALa" od ST... (; pozostaje uruchomić debugger i sprawdzić co się właściwie dzieje w uC oraz HAL-u. Docelowo warto również sprawdzić metodę Użyj DMA...
Kwestia się wyjaśniła. Rzeczywiście problem był ze zmienną Address. Jest typu int, a nie typu wskażnikowego jak zmienna mem. Zatem inkrementacja nie skutkowała przesunięciem o 4 bajty. Kod poprawiłem na poniższy i wszystko działa jak należy. [syntax=c] void writeFlash(void){ mem = returnPointerToFirstEmptyAddressInSector... Address = (uint32_t)mem;...
Ja to bym zapisał ewentualnie tak: commandTW w wyniku wyżej opisanych operacji, zostanie promowana z typu uint8_t do uint16_t i przesunięta do starszej części zmiennej command .
Hej, faktycznie działa po usunięciu włączenia ISR:) Dzięki wszystkim:) Jeszcze jedno pytanie - jeśli idę krok po kroku, to wartości się zapisują do zmiennej rev, a jeśli zatrzymuję się na breakpoincie za nimi, to rev cały czas = 0. Czy to dla tego, że przelatuję przez te przypisania zanim ADC wykona pierwszy pomiar? Przesunięcie pętli opóźniającej (teraz...
przesunięcie ekranu przesunięcie przecinka przesunięcie dźwięku
piosenka radia wariuje klawiatura czujnik cofać wsteczny
philips senseo sterownik ładowarki akumulatora
Schemat wzmacniacza z powielaczem napięcia dla EL34 Utrata ustawień FM w Panasonic RX-D12 po odłączeniu zasilania