Forum: Mikrocontroller und Digitale Elektronik IRMP unsigned int hat ein Vorzeichen?


von Mike (Gast)


Lesenswert?

Hallo,
kann mir bitte mal einer diese Merkwürdigkeit erklären?

    for (;;)
    {
        if (irmp_get_data (&irmp_data))
        {
            uart_puti(irmp_data.protocol);
            uart_puts(" ");

            uart_puti(irmp_data.address);
            uart_puts(" ");

            uart_puti(irmp_data.command);
            uart_puts("\r\n");
        }
    }

void uart_puti (uint16_t i)
{
    char itoa_buffer[20];
    itoa( i, itoa_buffer, 10 );
    uart_puts(&itoa_buffer);
}

gibt mir bei Protokoll und Command einen positiven wert zurück.

address ist komischer weise -1021 wie kommt das zu Stande?

von Stefan E. (sternst)


Lesenswert?

Mike schrieb:
> address ist komischer weise -1021 wie kommt das zu Stande?

Weil du zum Umwandeln eine Funktion benutzt, die einen signed int 
erwartet und den übergebenen Wert dann auch entsprechend interpretiert.

von Mike (Gast)


Lesenswert?

danke dir mit utoa klappt es eindeutig besser

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.