Jedna lepiaca (ako spojit dva bajty do int)

balu balu na k-net.fr
Čtvrtek Leden 5 11:09:53 CET 2017


Ked sa uz o tom lepeni ve sroubarne bavime, mal by som jednu zaciatocnicku...

MCP3428 na ktory som sa pytal funguje vyborne, teraz by som rad dalej spracoval data... Po I2C zbernici dostavam data z AD prevodnika, idu po sebe dva bajty, najprv horny a potom spodny. Vystup ma byt signed 16-bitovy integer.

Otazka je ako ich spravne skombinovat do jedneho intu? V tom hnusnom prostredi pre ten hnusny procesor ma int dva bajty, ziadnu portovatelnost na ine platformy nepotrebujem. Mozeme skusit dve riesenia, jedno co bude fungovat v tomto konkretnom pripade a jedno genericke, uplne korektne. Rad by som sa naucil ako nato...

dakujem,
b.



 // read channel value
 Wire.requestFrom(0x68, 2);    // request 2 bytes from slave device #68
 while (Wire.available()) { // slave may send less than requested
   byte bhigh = Wire.read();
   byte blow = Wire.read();
   return( ((unsigned int)bhigh << 8) + blow ); <<<--- tutoka
   }


Další informace o konferenci Hw-list