Simulink data type conversion, single to uint16.

조회 수: 22 (최근 30일)
Jamie
Jamie 2024년 9월 18일
댓글: Jamie 2024년 9월 25일
Hello,
I'm using simulink and I need to convert from a single to a uint16.
Could a kind soul kindly explain why the output of a single (with range 0-2pi) equates to an uint16 of zero?
Here is an example:
And here is the output of that example:
There are a number of uint16 signals in my model with range 0-4000 (I am reading from sevreral ADC). All behave as expected. Just this conversion, in this instance.
  댓글 수: 5
Jamie
Jamie 2024년 9월 19일
편집: Jamie 2024년 9월 20일
Thanks Daniel, Walter. The signal is being output to a host model using a data serial output. The data serial output transmits two signals of type uint16. An example from the mcb;
Yes, I'm using data type conversion block. Sending multiple signals (more than 2), using PU units / a different data type would be preferable.
Jamie
Jamie 2024년 9월 25일
I still continue to see scaling during data type conversions. This seems very unusual.
Ex. Scaling from 0-1 to 0-4045

댓글을 달려면 로그인하십시오.

채택된 답변

Hitesh
Hitesh 2024년 9월 19일
편집: Hitesh 2024년 9월 19일
Hi Jamie,
I am assuming that you have used "Data Type Conversion" block, and the conversion to "uint16" resulted in unexpected values due to the default integer rounding mode being set to "floor" in Block Parameters. If you change the rounding mode to "round," you will achieve the expected results when converting from "single" to "uint16".
  댓글 수: 1
Jamie
Jamie 2024년 9월 21일
편집: Jamie 2024년 9월 21일
Thanks all for the comments! Got around it by altering the model and removing the uint conversin blocks.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Sources에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by