Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 9 lip 2025, o 13:08


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
    Autor Wiadomość
    PostNapisane: 5 sty 2017, o 18:51 
    Offline
    Nowy

    Dołączył(a): 08 sty 2016
    Posty: 5
    Pomógł: 0

    Cześć

    Mam kłopot, wykonuję ćwiczenia według "Poradnik STM32 v1_9" z elektrody,Chodzi o cykl STM32 bez bibliotek SPL.
    Problem jest kiedy staram się odebrać dane w przerwaniu, po wysłaniu jakiegoś znaku z terminala, procesor się zawiesza.
    Natomiast jeśli wyłączę przerwania NVIC_EnableIRQ(USART1_IRQn); a całą procedurę obsługi przerwania przeniosę do
    głównej pętli while to wszystko śmiga wyśmienicie.
    Ktoś ma może jakieś sugestie?

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sty 2017, o 19:03 
    Offline
    Użytkownik

    Dołączył(a): 09 gru 2013
    Posty: 103
    Pomógł: 3

    pokaż kolego zawartość pliku startup_stm32.s z folderu startup. Bardzo prawdopodobne, że nie masz zdefiniowanych wektorów przerwań.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 sty 2017, o 12:44 
    Offline
    Nowy

    Dołączył(a): 08 sty 2016
    Posty: 5
    Pomógł: 0

    Proszę:

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 sty 2017, o 13:08 
    Offline
    Użytkownik

    Dołączył(a): 09 gru 2013
    Posty: 103
    Pomógł: 3

    Niech kolega spróbuje zamienić zawartość na taką:

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 sty 2017, o 13:49 
    Offline
    Nowy

    Dołączył(a): 08 sty 2016
    Posty: 5
    Pomógł: 0

    No i wszystko śmiga, dziękuje Ci bardzo,
    Nie rozumiem czemu tylko kompilator nie wygenerował, moim zdaniem tak podstawowych wektorów przerwań jak to Uarta.
    Ale jeszcze wiele przede mną do zrozumienia, dziękuje jeszcze raz
    Pozrawiam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 sty 2017, o 14:10 
    Offline
    Użytkownik

    Dołączył(a): 09 gru 2013
    Posty: 103
    Pomógł: 3

    Nie ma za co :)

    Swego czasu jak zaczynałem swoją naukę STM-ów (też korzystając z tego samego poradnika) miałem ten sam problem. Zakładam, że kolega również używa System Workbench for STM32 ac6 tools? Co ciekawe, gdy wygenerujemy nowy projekt ale korzystając z bibliotek SPL to wektory przerwań wygenerują się poprawnie. Jest to właśnie oryginalny plik z projektu z wykorzystaniem SPL. Przy programowaniu na samych rejestrach, niestety mamy same 0.

    Jedyna moja modyfikacja to zakomentowanie linii
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    z tego co pamiętam, to ta funkcja zawiera konfigurację zegara. Zamieniłem ją na swój własny odpowiednik, w którym rozpędzam zegar do moich własnych potrzeb i wywoływana jest jako pierwsza w funkcji main.

    Obydwa pliki różnią się jeszcze kilkoma innymi rzeczami oprócz wektorów przerwań, niestety specjalistą nie jestem i nie powiem jakie one mają wpływ na całokształt.

    Pozdrawiam :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 sty 2017, o 17:57 
    Offline
    Nowy

    Dołączył(a): 08 sty 2016
    Posty: 5
    Pomógł: 0

    Dokładne, STM32 Workbench, Ale Powiem Ci, że również tworzyłem nowe projekty a z wykorzystaniem SPL i startup byl taki sam.

    W zasadzie, to postepuje tak,że tworze dwa projekty jeden z bibliotekami SPL a drugi bez.
    I do tego drugiego projektu na którym zamierzam pracować kopiuje sobie pliki:
    stm32f0x.h
    core_cm3.c
    core_cm3.h
    Nie wiem czy to jest dobre podejście ale wszystko to jakoś smiga, dodatkowo dorzucam sobie jeszcze pliki system_stm32f10x.h oraz system_stm32f10x.h w , których ustawiam sobie w prosty sposób czestotliwośc procesora z jaką chcę pracować.
    Ale jeśli właśnie chodzi o plik startup to czy tworzę projekt z SPL czy pusty to mi on generuje się on tak samo biedny.
    Pozdrawiam



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 sty 2017, o 18:51 
    Offline
    Użytkownik

    Dołączył(a): 09 gru 2013
    Posty: 103
    Pomógł: 3

    U mnie struktura katalogów wygląda tak: (korzystam z STM32F103RBT6)

    Kod:
    LinkerScript.ld
    inc
       cmsis_gcc.h
       core_cm3.h
       stm32f103xb.h
    src
       main.c
    startup
       startup_stm32.s
       sysmem.c
    +foldery z moimi bibliotekami


    z tym, że w pliku core_cm3.h mam:

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    ponadto w ustawieniach w C/C++ Build ->Settings w zakładce Dialect dodaję -std=gnu11, gdyż inaczej np. pętla
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    nie kompiluję się, gdyż wymagana jest taka składnia:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    i dodaję projekt w zakładce Run Configurations...

    To jest już taki mój rytuał tworzenia nowego projektu :)

    A co do generowania wektorów przerwań w SPL to z tego co kojarzę, to mi bezproblemowo wszystko wygenerował do pliku o nazwie startup_stm32f10x_md.S, ale robiłem to dość dawno więc mogło coś już ulec zmianie albo mi się już coś myli.

    Co do konfiguracji zegara, to mam własną funkcję, dlatego wywaliłem SystemInit.

    Pozdrawiam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO