How to cast two uint8 into int16 in Simulink?
48 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I have two uint8 as input of my system. Together, they represent an int16. How can I cast these two values into an int16? In MATLAB, I would convert them to uint16, shift the bits of the first one 8 to the left and the use bitwise OR to get the bit representation and finally apply a typecast to reinterpret the bits (with respect to two's complement). In MATLAB it works:
raw = uint8([255,255])
raw = uint16(raw)
myint16 = typecast(bitor(bitshift(raw(1),8), raw(2)), 'int16') %myint16 = -1
How do I implement this in Simulink? I am restricted to the slcilib (for Code Inspector Compliance). That's why I cannot use the typecast function. Finally, I found a solution, but it's a really complicated if-then-else stuff, with around four casts. Is there another easy way?
0 comentarios
Respuestas (1)
Fangjun Jiang
el 31 de Ag. de 2015
1. Use the ShiftArithmetic block in Simulink->Logic and Bit Operations.
2. Multiply the first number with 256 and then add to the second number.
5 comentarios
Ver también
Categorías
Más información sobre Simulink Functions en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!