logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[AVR] Atmega32 SPI: Odczyt 32-bitowy ucina najstarsze bity, jak to naprawić?

sorex86 30 Paź 2012 17:18 702 2
REKLAMA
  • #1 11468273
    sorex86
    Poziom 15  
    Witam,

    Używam atmegi 32 oraz SPI hardwear. Czujnik wysyła odpowiedź w postaci 32 bitów. Odczytuje informacje z rejestru SPDR, a nastepnie za pomoca funkcji itoa staram sie przeslac wynik przez rs232.


    Inicjalizacja SPI


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Odczyt po SPI:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Funkcja main.c
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    W efekcie otrzymuje po Rs232 liczby:

    calosc 6416
    calosc 6416
    calosc 6320
    calosc 6304

    czyli wynik jest 16 bitowy, a powinien byc 32. W ktorym momencie "zgubilem" najstrasze bity?
  • REKLAMA
  • Pomocny post
    #2 11468429
    excray
    Poziom 41  
    Hmmm, spójrzmy: char * itoa ( int value, char * str, int base ); Więc itoa się nie nadaje do 32-bitowych. Musisz użyć ltoa albo ultoa w zależności czy ze znakiem czy bez.
  • #3 11468441
    sorex86
    Poziom 15  
    Dzieki!
    Teraz mam:

    calosc 15997184
    binarnie: 111111000001100011010000 24 bity
REKLAMA