Skocz do zawartości

piotr96

Użytkownicy
  • Zawartość

    35
  • Rejestracja

  • Ostatnio

Reputacja

17 Dobra

O piotr96

  • Ranga
    3/10

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

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

  1. Nie wiem, czy to najwłaściwsza metoda i czy dobrze zrozumiałem problem, ale jeżeli w jakimś obiekcie tworzysz obiekt podrzędny, który powinien wywoływać metodę obiektu nadrzędnego, to metodę tę możesz potraktować jako slot. Po utworzeniu nowego obiektu, funkcją connect możesz połączyć sygnał pochodzący z obiektu podrzędnego ze slotem w obiekcie nadrzędnym. Wówczas „wywołanie" metody obiektu nadrzędnego sprowadza się do emisji odpowiedniego sygnału w obiekcie podrzędnym.
  2. piotr96

    DWT w STM32f103

    A testowaliście rozwiązanie ze StackOverflow? Ktoś napisał, że w jego przypadku pomogło umieszczenie zapisu do jeszcze jednego rejestru, co odblokowało możliwość zapisu do pozostałych rejestrów DWT: DWT->LAR = 0xC5ACCE55; Może warto sprawdzić?
  3. piotr96

    Działanie na tablicach

    Nigdy nie miałem styczności z arduino, ale obawiam się, że w przedstawionym przez @Vitor_Borba kodzie może brakować uzupełnienia końcówki tablicy znakiem zerowym. Jest to przyjęty w języku C sposób oznaczania końca napisu.
  4. Zmienna led wystarczy, żeby miała 16 bitów. Zerknij sobie na makrodefinicje GPIO_PIN_0, GPIO_PIN_1, ... Każdy z tych symboli kryje pod sobą liczbę szesnastobitową, której dokładnie jeden bit jest jedynką, a reszta zerami (czyli są to potęgi dwójki). Ty zaś jako jeden z argumentów funkcji HAL_GPIO_WritePin podajesz najpierw liczbę 0 (czyli żaden z pinów),, 3 (piny 0 i 1, bo 3 = 21 + 20), itd. Czyli ogólnie jeśli chcesz zaświecić pin o numerze n, to jako argument funkcji podajesz liczbę 2n (oczywiście możesz takie liczby sumować, jeśli chcesz odwołać się do więcej niż jednego pinu w jednym wywoł
  5. Korzystasz z płytki do kursu? Na pewno wybrany jest odpowiedni model mikrokontrolera? Pytania wynikają z tego, że w kursie jest używany inny mikrokontroler (serii F1, wymieniony zresztą w tytule tematu) niż wymieniony w Twoim komunikacie o błędach (L0) – spróbuj ustalić przyczynę.
  6. A po której dokładnie części komunikatu wnioskujesz, że jest to problem z zaznaczoną na zdjęciu opcją? Przeczytaj może też wątek poświęcony temu problemowi na forum środowiska System Workbench. Z niego wynika, że jeżeli ścieżki dostępu zgadzają się z rzeczywistością, to możesz spróbować skasować ręcznie błędy – czasem pomimo ich wyświetlenia, kompilacja może się zakończyć powodzeniem – sprawdź to.
  7. W pierwszej kolejności sprawdź poprawność wpisanych ścieżek w ustawieniach projektu (prawy przycisk myszy na nazwie projektu w oknie Project Explorer -> Properties lub skrót klawiaturowy Alt + Enter):
  8. Czytałeś może dokumentację płytki? Zwłaszcza fragment: Wygląda na to, że musisz jakieś zworki poprzestawiać na płytce lub skorzystać z innego USARTa, wyprowadzonego na inne piny mikrokontrolera. (Być może też USART2 można zmapować na inne wyprowadzenia na płytce, ale nie jestem pewien, czy STMy tej serii mają akurat taką możliwość).
  9. Piszesz o płytce Elbert, na której opiera się kurs? Nie wiem, czy Vivado można użyć do projektu na układ serii Spartan 3, według tego nie jest to możliwe. Poza tym jest dużo bardziej „ociężałe" i rozbudowane, dlatego ja bym radził pozostać przy ISE. Ponadto, projekt na płytkę z kursu wgrywa się dodatkowym narzędziem, nie poprzez środowisko programistyczne od Xilinxa. Ogólnie pliki XDC różnią się składnią od UCF, poniżej przykład fragmentu takiego pliku, jeszcze niżej podobny fragment z UCF. Nie są to jakieś drastyczne zmiany. set_property PACKAGE_PIN T22 [get_ports {LD[0]}] set_proper
  10. Musisz zamienić wartość zmiennej na tekst, np. używając funkcji sprintf (jednak jej użycie czasem jest kłopotliwe – „zasobożerne"). Jest to chyba najprostszy (w sensie programistycznym) sposób. Możesz również skonwertować zmienną ręcznie, utworzyć tablicę znaków (char), a następnie ją uzupełnić, zamieniając każdą cyfrę temperatury na znak w kodzie ASCII (chyba trzeba dodać 48). Dobrać się do poszczególnych cyfr w takim wypadku też trzeba na piechotę, np. konwertując (rzutując) pomnożoną przez 100 (jeżeli chcesz mieć 2 miejsca po przecinku) zmienną na typ całkowity i potem za pomocą bawiąc
  11. Dziękuję za odpowiedź i zainteresowanie. Tak, interfejs sterujący to SPI. Tu myślę, że sprawę mam opanowaną w zakresie komunikacji – jest 128 rejestrów 16 bitowych, potrafię odczytać i zmienić ich wartość. Pewności, że to co wysyłam jest odpowiednie, nie mam. Na razie chcę otrzymać najprostszy obraz, przy domyślnych ustawieniach (jedynie zmieniam wartości kilku rejestrów SPI oznaczonych w dokumentacji jako FIXED – zrozumiałem, że po uruchomieniu trzeba zmienić ich wartości). Zegar dla linii LVDS (tylko 16 z 64 używam) taktuję częstotliwością 600 MHz, maksymalną dopuszczalną, czasem m
  12. Podłączę się pod temat z innym pytaniem. Robię projekt z czujnikiem CMOSIS CMV12000, przy próbie odczytu obrazu dostaję dziwne wartości pikseli, niezgodne w żaden sposób z rzeczywistością, niezależne w żaden sposób od oświetlenia itp. Obraz w zasadzie jest szary. Jeżeli zmienię wartość jednego rejestru czujnika, tak, żeby wysyłał wzorcowy obraz, to wówczas otrzymuję poprawne dane. Zmiana cyfrowego wzmocnienia powoduje, że obraz staje się inny (np. czarny), ale nadal nie odwzorowuje rzeczywistości. Czy macie może pomysł, co może być przyczyną takiego zachowania się czujnika? Piksele odbieram w
  13. Nie możesz w jakiejś zmiennej przechowywać informacji, czy muzyka jest uruchomiona (ewentualnie inaczej to sprawdzać) i na tej podstawie uruchamiać odpowiednią metodę play() lub pause() w jednej metodzie klasy Button (zastępującej metody pauzowanie() i granie())?
  14. Ale czemu „In"? In odnosi się do konfiguracji pinu jako wejście, a w Twoim przypadku to nadal będzie wyjście, czyli "Out". Zerknij na przykład na to: http://www.handsonembedded.com/stm32f103-spl-tutorial-2/ W tym linku jest przykład sterowania diodą aktywną stanem niskim, wyjście jest nadal skonfigurowane w trybie Push-Pull.
  15. A możesz rozwinąć jakie masz wątpliwości? W trybie Push-Pull można wymusić zarówno wysoki, jak również niski stan wyjścia.
×
×
  • 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.