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 w 2025? 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 5 kwi 2025, o 17:53


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
    Autor Wiadomość
    PostNapisane: 5 lip 2019, o 17:37 
    Offline
    Nowy

    Dołączył(a): 30 sie 2014
    Posty: 13
    Pomógł: 0

    Obrazek
    Witam wszystkich. Nie wiem czy komuś udało się zaimplementować mk_menu na stm32 ale mi się udało kilka drobnych zmian i poszło i działa bez problemu .
    Użyłem popularnej płytki STM32F4 Discovery (STM32F407RGT6) encoder z przyciskiem z podciągniętymi pinami do zasilania i dwóch wyświetlaczy alfanumeryczny 4x20 po i2c, LCD TFT 320x240 z ili9341 na FSMC 16 Bit.
    Pierwszą rzeczą musiałem zamienić wszystkie #include na te do stm32 , drugą rzeczą to ściągnąłem z neta plik pgmspace.h dla stm32 bo w stm`ach nie ma
    niektórych funkcji np. pgm_read_word(), PSTR(), i tutaj musiałem w pliku mk_menu.c usunąć z kilku lini pgm_read_word() ponieważ wyskoczyły warningi
    główie przy liniach gdzie jest (TNODE *).
    Trzecią rzeczą musiałem dodać do mk_menu.c nagłówek funkcji extern inline uint8_t get_y_pos() bo mi linkier nie widział tej funkcji.
    Wszystko napisane w Atolic True studio i STM32CubeMX z bibliotekami HAL.

    ObrazekObrazekObrazekObrazek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 lip 2019, o 18:54 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    No i pięknie .... dzięki za szczegółowy opis problemów, postaram się to wszystko poprawić, żeby nie trzeba było ręcznie rzeźbić w kodzie dla STM ;)

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 lip 2019, o 13:19 
    Offline
    Nowy

    Dołączył(a): 16 lip 2019
    Posty: 2
    Lokalizacja: Bartoszyce
    Pomógł: 0

    O tak, ręczne grzebanie w kodzie dla STM jest oporne.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 lip 2019, o 16:18 
    Offline
    Nowy

    Dołączył(a): 30 sie 2014
    Posty: 13
    Pomógł: 0

    To tylko drobne przeróbki, zajęło mi to 1 godz ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 lip 2019, o 18:29 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    no 1 godz - to dla mnie byłaby cała wieczność ;)

    Możesz mi na maila biuro@atnel.pl napisać które miejsca i jak musiałeś przerobić - tylko kilka kluczowych momentów ;) że tak powiem - to będzie mi łatwiej później zabrać się za przeróbki - żeby zminimalizować twój czas do ZERA ;)

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 lut 2020, o 10:01 
    Offline
    Użytkownik

    Dołączył(a): 09 sie 2014
    Posty: 33
    Pomógł: 0

    Również odpaliłem biblioteki na STM32 Nucleo.
    Z biblioteką pgmspace.h ściąganą z neta, u mnie był problem z linią:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


    Jedyne zmiany jakie musiałem zrobić to zakomentować kilka linii: #include <avr...., zamienić #include <avr/pgmspace.h> na #include "pgmspace.h", zakomentować gdzieś _delay(...) i zaktualizować ścieżki do własnych bibliotek.
    Niepozorny program robi ogromną robotę, wielkie dzięki :D

    P.S. Opcja AVR PROGMEM w MkMenuGenerator nic nie zmienia. Ale jak dla mnie opcja zbędna przy pracy na STM, tzn. można łatwo to obejść. Chyba dużo więcej pracy wymagałoby zaimplementowanie tego w generatorze.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 maja 2020, o 11:53 
    Offline
    Użytkownik

    Dołączył(a): 15 gru 2012
    Posty: 107
    Pomógł: 0

    Cześć,

    ja z kolei implementuje mk_menu do Cypress PSoC 5. Oczywiście udało mi się to zrobić, ale ręcznego usuwania pewnych zwrotów z kodu było dosyć dużo.

    Obrazek

    Konieczne do usunięcia są:

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


    2. Zwroty PROGMEM i EEMEM. Co ciekawe PROGMEM pojawia się w kodzie nawet jeżeli w MK_MENU_GENERATOR 3.0 odptaszkowane jest opcja AVR PROGMEM (w pliku mk_propertis.c)

    3. Wszystkie odwołania do danych we flash za pomocą: pgm_read_byte, pgm_read_word itd.
    Teoretycznie można by je podmienić dyrektywą preprocesora np:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    ale przeszkadza znak ampersand w nawiasie przed zmienną. W PSoC creator odczyt danych z flash jest identyczny jak z pamięci RAM więc znak & nie powoduje błędów podczas kompilacji ale kod nie działa poprawnie.

    Mariusz



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 maja 2020, o 12:23 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    O! i dzięki takim konkretnym uwagom to będę mógł później popracować nad lepszym dopasowaniem kodów do ARM'ów

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 maja 2020, o 13:13 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 lis 2019
    Posty: 145
    Pomógł: 37

    Maureli napisał(a):
    ale przeszkadza znak ampersand w nawiasie przed zmienną


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

    _________________
    Think for yourself and question authority.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 maja 2020, o 13:15 
    Offline
    Użytkownik

    Dołączył(a): 15 gru 2012
    Posty: 107
    Pomógł: 0

    he he dobre, na to nie wpadłem. Dzięki!



    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: 10 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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


    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:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO