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