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...
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)...
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...
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....
Generalnie nie ma to wielkiego sensu. Poruszyłeś tak wiele zagadnień, że nie sposób tego opisać w kilku zdaniach. W zupełności można zastosować wewnętrzny ADC z STM32, który też ma rozdzielczość 12-bitów. Stosując równocześnie dwa przetworniki da się uzyskać próbki prądu i napięcia z identycznych chwil czasowych. Do tego całość jest wewnątrz STM32 i...
(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, 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...
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 ?
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 -...
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...
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,...
Witam. Poniewaz chce zostawic w swoim programie pierwsze sektory nieuzywane (ewentualnie bez zadnych konkretnych funkcji) moj program powinien byc wygenerowany z okreslonym offsetem. Przebrnąlem przez skrypt linkera i mam pierwsze 4 kbyte flasha przeznaczone na moja sekcje BOOT, a reszta pamieci na sekcje FLASH. Skoro tablica przerwan tez sie przesuneła...
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....
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ą...
TO masz pecha. BO początku pamięci flash nie da się tak wykorzystać.
to chwyć zakładkę edytora i przesuń utworzysz nowy okno edytora.
Masz przebieg sinusoidalnie zmienny przesunięty względem masy na połowę napięcia zasilania ?
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ł....
Rzutowanie to złe rozwiązanie. Trzeba robić przesunięcie w prawo o 8 bitów
funkcja której używam sama przypisuje 0 lub 1 w zaleznosci czy jest to read czy write dlatego zastosowałem przesunięcie
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.
Witam serdecznie Kolegów! Aktualnie jestem w trakcie pisania gry typu labirynt z kulką na procesor ARM STM32F103VCT6. Wszystko mam pięknie i ładnie obsłużone (symulacja odbić od powierzchni płaskich, detekcja kontaktu z otworami) no ale zostało jeszcze najważniejsze - symulacja odbić kulki od kantów prostokąta. I tu niestety zaczynają się schody. Z...
Moje pytanie - skąd wytrzasnąłeś to przesunięcie akurat o 7? 4\/3!!
Dostaje ramkę analizuje ją i odpowiadam na nią dopiero potem oczekuję następnej ramki Chyba, że jestem w błędzie i to robi się inaczej? Dostajesz dane wtedy kiedy nadchodzą a czy ich wówczas oczekujesz czy nie to już inna sprawa. Jak wygląda ramka którą posyłasz z PC?
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 .
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
Zasadnicze pytanie. Gdzie znajduje się masa w stosunku do zasilania dodatniego? Znajduje się na dole. I tak powinieneś rysować te symbole. Masa ku dołowi, dodatnie ku górze. Zmień potencjometr na taki pobrany z biblioteki pot.lbr lub rcl.lbr Aby sprawdzić czy dany element jest połączony z doprowadzonymi sygnałami, delikatnie go przesuń. Wtedy zobaczysz...
Może masz jakieś przesunięcie w wektorze albo niezgodność nazw? Sprawdź jaka funkcja jest pod tym adresem..
(at)Vatras Do takich rzeczy stosuje się TIM1 lub TIM8. Dwa kanały jednego z tych liczników i nic więcej nie trzeba.
Po pierwsze, ważna sprawa. Adres kości w funkcjach HAL podawany jest w konwencji 8-bitowej (przesunięty o jeden bit w lewo względem drugiej konwencji występującej np. w dokumentacji tej kostki). Czyli dla QN8025 używasz adresu 0x20 (00100000). Druga rzecz. Nie wiem czy Twój moduł posiada oporniki podciągające linie I2C. Sprawdź, ewentualnie dodaj jeśli...
Sprawdź czy to co dostajesz w zmiennej pixel jest zgodne z prawdą :) Może masz np przesunięty odczyt o 8bitów.
Plik nagłówkowy mikrokontrolera można wyłuskać np. z paczki SPL pobranej ze strony ST. Dla Twojego STM32F103VBT6: [url=http://www.st.com/web/catalog/tools... (przycisk download na dole strony). Po rozpakowaniu archiwum: Libraries -> CMSIS -> CM3 -> DeviceSupport -> ST -> STM32F10x -> stm32f10x.h...
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...
Po pierwsze - WSZYSTKO jest w komentarzu powyżej tej tabeli, tam jest podana postać assemblerowa - jak sobie ją skompilujesz, to otrzymasz DOKŁADNIE taki sam efekt. Ja pierniczę. Nawet przeszło mi to przez myśl, ale od razu to odrzuciłem bo nie sądziłem że ktoś inny niż ja jest w stanie coś takiego zrobić. A co dopiero Ty, zwolennik uniwersalności i...
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...
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.
(at)aader -> Dziękuję za merytoryczne pytania. Te nagrania audio są w wewnętrznego DAC? Zerknąłem w kod i widzę, że używasz wewnętrznego DAC zamiast tego kodeka CS...? Tak, stosuję wewnętrzny DAC dla sygnału m.cz. przy AM i FM. Chodzi o to, że CS43L22, czyli DAC audio może działać też w trybie "analogowym". Dostaje on wtedy sygnał z zewnątrz poprzez...
A jaszcze lepiej zapalić LEDa na początku zapisu, a zgasić na końcu. Bo i początek zapisu może być przesunięty względem uruchomienia się układu.
W starym ("antycznym") standardzie języka C - a najwidoczniej taki masz ustawiony - deklaracja zmiennej, czyli `TIM_TimeBaseInitTypeDef timBaseStruct;`, musi być na samym początku funkcji, przed jakimkolwiek "kodem" który coś robi ("executable block"). Innymi słowy: void funkcja(void) { int zmienna1; // ok zmienna1 = 15 + sin(0.1f);...
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...
Wtedy wystarczy 1 dzielnik, który przesunie napięcie ujemne z rezystora w zakres napięć dodatnich obsługiwanych przez ADC Tego właśnie nie mogę sobie wyobrazić :(
A może masz inny pomysł żeby przesunąć wykres przebiegu ponad oś? żeby porzucić pomysł dzielnika napięciowego W każdym torze masz dwa wzmacniacze, izolowany - w nim nic nie zrobisz, drugi ma za zadanie zamienić sygnał różnicowy na odniesiony do masy, jakbyś miał różnicowy ADC to mógł byś mierzyć bezpośrednio, ale skoro decydujesz się przetworzyć różnicowy,...
Chodzi Ci o odwrócenie przebiegu prostokątnego o 180 stopni? - chyba lepiej to zrobić sprzętowo. W pierwszym poście jest rysunek. Chodzi o to, aby wygenerować drugi, taki sam sygnał przesunięty o 90 stopni. Oba te sygnały mają być użyte w mostku H.
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".
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...
Jeśli ktoś znałby dokładną przyczynę tego tj. czy to jest wina samej pamięci czy wina architektury to byłbym wdzięczny za odpowiedź i wskazanie źródeł. Reference Manual 2 Memory and bus architecture 2.1 System architecture https://obrazki.elektroda.pl/4956208900_... Skoro poprzednio miałeś stos w rejonie 0x20030000, to wypadał on w...
A taki pomysł mi przyszedł do głowy - piszesz że sygnał ma bardzo małą amplitudę, może więc masz niepoprawnie przygotowane dane? Zapewne masz dane 12-bitowe, ale może one muszą być przesunięte "w lewo", tak aby to bity 0-3 były wyzerowane i nieistotne? 4\/3!!
Wygrzebany fragment odczytu pozycji dotyku panela : Umieściłem kod w znacznikach syntax, w przyszłości proszę to samemu robić :)
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...
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....
Ludzie co wy z tymi kombinacjami?... Aby zrestartować transfer DMA w trybie M2M na F1xx wystarczy: - zapisać do CCR zero - wpisać 0xF przesunięte o ((nr_kanału-1)*4) do DMA->ICFR - zapisać do CNDTR ilosc transakcji - zapisać do CCR konfigurację jednocześnie ustawiając DMAEN ...i leci. Jak DMA skonczy, znajduje się w następującym stanie: - CCR !=0,...
przesunięcie ekranu przesunięcie przecinka przesunięcie dźwięku
listwa antyprzepięciowa brennenstuhl przekazanie tablicy przez wskaźnik tecumseh ustawienie zaworów
ekspres dolce gusto spawarka inwertorowa
Stroboskop LED czy palnik ksenonowy: co wybrać? Webasto w Ford Mondeo MK5 2.0 Diesel 2018