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



Teraz jest 10 lip 2020, o 19:24


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: 11
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: 25720
Lokalizacja: Szczecin
Pomógł: 967

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: 11
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: 25720
Lokalizacja: Szczecin
Pomógł: 967

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
Avatar użytkownika

Dołączył(a): 15 gru 2012
Posty: 86
Lokalizacja: Poznań
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

_________________
#define forever while(1)



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: 25720
Lokalizacja: Szczecin
Pomógł: 967

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

Dołączył(a): 29 lis 2019
Posty: 30
Pomógł: 11

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
Avatar użytkownika

Dołączył(a): 15 gru 2012
Posty: 86
Lokalizacja: Poznań
Pomógł: 0

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

_________________
#define forever while(1)



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 3 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