Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Mega8] - Używanie wskaźników i błąd

afterparty 04 Wrz 2014 10:41 573 4
  • #1 04 Wrz 2014 10:41
    afterparty
    Poziom 12  

    Witam was. To znowu ja, i znowu mam problem.

    Tym razem chodzi o wskaźniki.

    Otóż mam sobie taki kodzik:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Oraz funkcje odczytujace bajty z TWI:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    No i przy kompilacji otrzymuję ostrzeżenie:
    Cytat:
    assignment makes integer from pointer without a cast


    Dowiedziałem się, że chodzi o niezgodność typów?
    No ale nie rozumiem, bo przecież funkcje zwracają mi z TWI bajt uint8_t, a mój wskaźnik też jest typu *uint8_t. Dlaczego dostaję ten błąd?

    Ostrzeżenie dostaję w zaznaczonych niżej linijkach:

    Cytat:
    Tutaj-> *buffer = (TWI_read_data_ack);
    ++buffer;
    }

    //I raz na koncu z wyslaniem NO_ACK
    oraz tutaj -> *buffer = (TWI_read_data_no_ack);

    0 4
  • Pomocny post
    #2 04 Wrz 2014 11:01
    halicki.arkadiusz
    Poziom 2  

    Źle wołasz swoje funkcje.

    Tutaj przypisujesz do zmiennej typu uint8_t wskaźnik na funkcję TWI_read_data_ack zwracającą wartość uint8_t:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Tutaj jest jak być powinno, a więc wywołujesz funkcję i przypisujesz wartość przez nią zwróconą do swojej zmiennej.
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0
  • #3 04 Wrz 2014 11:06
    afterparty
    Poziom 12  

    Dzięki, głupi błąd :scrambleup:

    O reszcie kodu co sądzisz?

    0
  • #4 05 Wrz 2014 10:15
    halicki.arkadiusz
    Poziom 2  

    :) Heh wygląda normalnie... a czy działa?

    0
  • #5 05 Wrz 2014 12:54
    afterparty
    Poziom 12  

    Jak wygląda normalnie to spoko. Jeszcze nie skończyłem, także nie wiem czy działa.

    Zamykam.

    0