Skocz do zawartości

piotr96

Użytkownicy
  • Zawartość

    40
  • Rejestracja

  • Ostatnio

Reputacja

20 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. Czy wybór innego kanału ma się dokonywać za pomocą zmiennej command_channel? Nie bardzo rozumiem ten kod, zwłaszcza, że nigdy nie korzystałem z tej płytki. Najprostszy multiplekser można zrealizować instrukcją with select: with changeChannel select command_channel <= "01111" when '0', "00000" when others; Gdzie sygnał sterujący byłby przełączany po zakończeniu pomiaru. Ale nie wiem, czy to wystarczy. Musisz zobaczyć dokumentację/kod wewnętrzny modułu „przetwornik". Jeżeli do zmiany kanału potrzeba wygenerować jakąś sekwencję różnych sygnałów (wystaw jeden sygnał, zacze
  2. W przypadku tego układu raczej tak (ale to nie jest uniwersalna, ogólna odpowiedź w każdym przypadku). Jeżeli na przykład ujemny biegun V2 pozostanie nigdzie niepodłączony, to w zasadzie to źródło można pominąć w analizie układu, na nic w nim nie wpłynie. Jeżeli zaś ujemne bieguny źródeł zasilania są połączone, to źródło to wymusza ustalone napięcie pomiędzy swoimi zaciskami (masą - potencjałem odniesienia dla układu, czyli 0 V i dodatnim biegunem), zatem ma wpływ na resztę obwodu. Z przedstawionego schematu wynika, że wszystkie miejsca oznaczone symbolem masy są połączone. To jest schema
  3. +V to pewnie plus zasilania. Jeżeli na schemacie jest „wiele mas", ale mają takie samo oznaczenie symboliczne i nazwę, to zapewne jest to jedna masa, połączona z ujemnym biegunem zasilania. Po prostu schemat jest wtedy bardziej czytelny bez tych dodatkowych połączeń.
  4. Pętla główna programu wykonuje się w kółko, nie jest w żaden sposób „blokowana". Oznacza to inne zachowanie diod w zależności od tego, kiedy wystąpi przerwanie. Przykład (zaznaczyłem miejsce, gdzie zakładam, że naciśnięto przycisk): HAL_Delay(1000); HAL_GPIO_WritePin(dioda4_GPIO_Port, dioda4_Pin, GPIO_PIN_RESET); // Przypuścmy, że w tym momencie wykonuje się przerwanie HAL_Delay(1000); HAL_GPIO_WritePin(diod1_GPIO_Port, diod1_Pin, GPIO_PIN_RESET); HAL_Delay(1000); HAL_GPIO_WritePin(dioda2_GPIO_Port, dioda2_Pin, GPIO_PIN_RESET); HAL_Delay(1000); HAL_GPIO_
  5. Posiadam wspomniany miernik 33C+. Ogólnie nie narzekam, jedynie mocno denerwuje mnie działający z opóźnieniem brzęczyk (sprawdzenie ciągłości obwodu). Zapłaciłem za niego w sklepie stacjonarnym 45 złotych (potrzebowałem na szybko kupić miernik, akurat taki był dostępny), zatem do wspomnianych 100 złotych to jeszcze trochę brakuje. Wydaje mi się, że okolice 30-50 złotych to właściwa cena za ten model. Na pewno nie ma sensu ograniczać się do najbliższego sklepu, w internecie jest dużo większy wybór. Na elektrodzie jest dobra (moim zdaniem) recenzja 33D+ (bardzo podobny model). Pr
  6. 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.
  7. 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ć?
  8. 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.
  9. 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ł
  10. 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ę.
  11. 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.
  12. 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):
  13. 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ść).
  14. 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
  15. 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
×
×
  • 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.