Skocz do zawartości

smilee

Użytkownicy
  • Zawartość

    9
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    1

smilee zajął 1. miejsce w rankingu.
Data osiągnięcia: 23 sierpnia 2020.

Treści użytkownika smilee zdobyły tego dnia najwięcej polubień!

Reputacja

5 Neutralna

O smilee

  • Ranga
    2/10

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Coventry
  • Zawód
    Lab Engineer

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. @Leroy ja mam dokładnie to samo. Po zaimplementowaniu DMA transmisja przestaje działać. Problem pojawia się w STM32CubeIDE Version 1.7.0, gdzie kod generowany robi nam kuku. Kod poniżej: /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_SPI2_Init(); MX_DMA_Init(); /* USER CODE BEGIN 2 */ Może się powtarzam, ale jeśli ktoś chce zacząć przygodę z tym kursem od tego momentu, to szkoda jego/jej czasu na poszukiwania, niech to będzie tutaj. Może sami twórcy mogliby nieco o tym problemie wspomnieć w głównej części kursu? Zwłaszcza jeśli używają starszej wersji C
  2. No dobra, mam pierwsze wyniki z dochodzenia: CubeMX generuje kod po swojemu, a nie zawsze dobrze. Nie jestem pewien, czy to jakieś nieudokumentowane ficzery są, ale niejednokrotnie słyszałem słowa krytyki (od wieloletnich inżynierów oprogramowania embedded z którymi pracowałem) pod adresem owego narzędzia. Ale dość narzekań, teraz do rzeczy: W kodzie wygenerowanym przez CubeMX znajduję taką serię: /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_ADC1_Init(); MX_DMA_Init(); MX_USART2_UART_Init(); /* USER CODE BEGIN 2 */ I przy takim układzie DMA nie dz
  3. Podobnie jak u użytkownika @PjoterZ u mnie też DMA nie chce dobrze zadziałać. Używam Nucleo z STM32L476RG. Ekrany z CubeMX: Kod: /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c in proj28-ADC-DMA * In CubeMX change settings of ADC1: * DMA Settings -> Add -> in DMA Request column set ADC1, go to bottom part * of the window and set paremeter 'DMA Request Settings' and * 'Mode' to 'Circular' * Also: ADC1 set 'Continuous Conversion Mode:' to 'Enabled'
  4. @Gieneq nie, nigdy. Ale cytowany listing nie miał w swoim zadaniu zliczać co 1, tylko pokazywać zmianę szerokości impulsu w zależności od prędkości kręcenia. I tutaj program spisuje się znakomicie. Kręcę szybko, impulsy następują po sobie szybko, zmienna wskazuje małe wartości 30 - 150, ekstremalnie wolno: 10000 - 40000. Po małym dochodzeniu mogę powiedzieć nieco więcej. Sprzętowo wyjścia enkodera mam podciągnięte to zasilania, więc 'w spoczynku' oba są w stanie wysokim. Kręcę w prawo (kierunek obrotu wskazówek zegara). Poniżej zdjęcie przebiegu generowanego przez enkoder (jeden so
  5. Dzięki za masę pracy włożoną w ten kurs, jest super. Do rzeczy: Korzystam z kodu w śródtytule "Tryb obsługi enkoderów w STM32L4". Mam podłączony enkoder (spoza zestawu), przy zmianie pozycji (obracaniu) można wyczuć takie miękkie klikanie, każdy klik powoduje u mnie zwiększenie/zmniejszenie wartości zmiennej value = __HAL_TIM_GET_COUNTER(&htim3) o 2. Przy powolnym obracaniu 'pomiędzy klikami' mam upragnioną zmianę o 1, ale nie jest to optymalne. Czy w CubeMX gdzieś można wyklikać odpowiednie ustawienia? Wiem że można dopisać linijkę kodu i podzielić 'value' przez 2, ale ch
  6. Dziękuję za kurs. Nie wiem, czy to kwestia ustawień, ale w poniższej kolejności zdarzeń IDE usuwa mi zawartość pętli while(1) z main(). Wybranie, opisanie portów Wpisanie kodu źródłowego Zaprogramowanie Nucleo i radocha z działania OK, jednak potrzeba zmian, np. dodanie Pull-up do portu, więc działanie na Device Configuration Tool (zmiany będą w pliku .ioc), klik na Save Po powrocie do kodu źródłowego widzę, że pętla while(1) jest pusta Mogę się na to zgodzić dopóki mam tam kilka linii, ale co jeśli chciałbym, żeby IDE mi tego nie ruszało? Czy są jaki
  7. Hej, nic trudnego, a możliwości są nieskończone. Oto zamocowanie paska do karetki w Sapphire Pro; jak widać to są po prostu szczeliny przez które przechodzą paski, a potem są one złapane trytytkami. A tutaj moje własne wykonanie uchwytów na pasek GT2. To jest taki stół - platforma suwana, była część projektu używanego w pracy. Uchwyt front: Uchyt plecy: Nie mam pustego uchwytu żeby pokazać, ale zasada jest prosta: pętlę z paska wsuwa się w szczelinę uchwytu, on się nie wysunie bo zazębia się ze sobą. Myślę że znajdziesz jakieś uchwyty np na thingiverse.c
  8. Panie Kredek, jestem pod wrażeniem! Twój projekt udowadnia, że dla chcącego nic trudnego... Brawo. Najbardziej podoba mi się zdjęcie z połączeniem termoglutem i jego wydrukowanym zastępcą :) To musi być mocno motwujące kiedy za każdym wydrukiem jakość produkowanych części staje się widocznie lepsza. Co do gwintów w alu: da się i zazwyczaj nie ma problemów. Zrobiłem całą masę różnych gwintów w alu i rzadko mi się je udaje zepsuć (częściej już kiedy za mocno się przyłożę do dokręcania śrubek, a sam profil albo blacha alu jest cieniutka). Pamiętaj tylko o 3 sprawach: 1. Odpowiedni
  9. Zadanie domowe 6.5. Podłączyłem dwa fotorezystory, wszystko działa ok, tylko zdarzenie kiedy oba kanały mają dokładnie taką samą wartość napięcia następują niezwykle rzadko (co jest zrozumiałe, przy takich pomiarach). Czy ktoś może podać sugestię, jak zrealizować porównanie "mniej-więcej"? Tzn, chciałbym zrobić warunek: if (ADC_kanal1 == ADC_kanal2) printf "prosto"; , z tym, że ADC_kanal1 może różnić się od ADC_kanal2 o jakąś założoną przeze mnie wartość, powiedzmy x.
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.