Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

STM32 - Freertos kolejki i wskażnik na dane

wilk125 20 Jun 2014 14:59 1659 9
  • #1
    wilk125
    Level 23  
    Witam
    Chciałem załadowac do kolejki dane ze stałuch zdefiniowanych przy pomocy #define xx
    ponizęj funckja wysylajaca dane do kolejki, jak mam zmienną lub wskażnik to nie ma problemu, ale jak uzyć stałej np. #define komenda 11, tak zeby to jedenascie znalazło sie w kolejce, a nie to co znajduje sie pod adresem 11.
    Code: c
    Log in, to see the code
  • #2
    tadzik85
    Level 38  
    to zamiast define zrób zmienna
  • #3
    wilk125
    Level 23  
    tadzik85 wrote:
    to zamiast define zrób zmienna

    tak narazie mam zrobione, tylko za kazdym razem jak cos wysylam do kolejki to musze ta zmienna ustawiac, a tak mial bym zdefiniowanych kilkanascie komend na stałe.
  • Helpful post
    #4
    tadzik85
    Level 38  
    to zrób globalne consty
  • Helpful post
    #5
    michalko12
    MCUs specialist
    Niestety funkcja umieszczająca dane w kolejce potrzebuje wskaźnika na te dane. Jeśli masz dużo takich danych stałych to umieść je w tablicy stałych a w #define zadeklaruj wskaźniki do danych w tej tablicy.

    Code: c
    Log in, to see the code
  • #6
    wilk125
    Level 23  
    dzieki, mysle ze tak bedzie ok
  • #8
    gaskoin
    Level 38  
    A jaką przewagę mają wasze definy nad:

    Code: c
    Log in, to see the code


    ? Żadną. Zrób takie stałe i do funkcji przekaż wskaźnik na nie i tyle. Masz przy okazji kontrolę typu, dane we flashu i brak jakiegoś dziwnego rzutowania.
  • #9
    michalko12
    MCUs specialist
    Jak masz 2-3 takie dane to nie ma problemu, takie rozwiązanie jest najszybsze, ale jak masz tego więcej 20-30 i wiecej to już w kodzie zaczyna robić się śmietnik. Potem jak chcesz tego użyć w kilku plikach to jeszcze musisz potworzyć do każdej zmiennej eksporty. Chowając wszystkie dane do tablicy tworzysz zgrabną konstrukcję , eksportujesz tylko deklaracje tablicy a do danych w tablicy możesz uzyskiwać dostęp przez wielokrotnie stworzone #define lub stworzyć makro automatyzujące ten dostęp. Po drugie jakie to ma znaczenie jak to jest zrobione w tym przypadku?
  • #10
    wilk125
    Level 23  
    michalko12 wrote:
    Po drugie jakie to ma znaczenie jak to jest zrobione w tym przypadku?

    Chyba poprzednik miał na myśli ilosc kodu. Jak by nie patrzył, tablica z const to dla mnie najlepsze rozwiazanie