Má být: Funkce má vyrobit uint32_t takto:
<0x18><0xE7><c><~c>, což je 0x18E78877
Skutečnost je:
v příkladu 1 vrací: FFFF8877
v příkladu 2 vrací: 18E68877
Kód: Vybrat vše
static void put_ir_nec( uint8_t c)
{
uint32_t nn;
nn = 0;
nn += (uint8_t)(0x18) << 24;
nn += (uint8_t)(~0x18) << 16;
nn += (uint8_t)(c) << 8;
nn += (uint8_t)(~c); // lsb
Serial.println(c, HEX); // RS232 returns: 88
Serial.println(nn, HEX); // RS232 returns: FFFF8877, expected: 18E78877
}Kód: Vybrat vše
static void put_ir_nec( uint8_t c)
{
uint32_t nn;
nn = 0x18E70000;
nn += (uint8_t)(c) << 8;
nn += (uint8_t)(~c); // lsb
Serial.println(c, HEX); // RS232 returns: 88
Serial.println(nn, HEX); // RS232 returns: 18E68877, expected: 18E78877
}