Jedna lepiaca (ako spojit dva bajty do int)

Petr Zapadlo zapik na email.cz
Čtvrtek Leden 5 11:20:34 CET 2017


vzal bych to strašně jednoduše:

int vysledek=blow+(bhigh*256);

Petr


Dne 5.1.2017 v 11:09 balu napsal(a):
> 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
>     }
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list