Jedna lepiaca (ako spojit dva bajty do int)

balu balu na k-net.fr
Čtvrtek Leden 5 11:22:49 CET 2017


A funguje to, ak ide o dve casti cisla zakodovaneho v 2's complement?

> On 5. 1. 2017, at 11:20, Petr Zapadlo <zapik na email.cz> wrote:
> 
> 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
> 
> _______________________________________________
> 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