This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C1294KCPDT:浮点单元将小数点舍入到最接近的1#39位置。

Guru**** 2468610 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/674609/tm4c1294kcpdt-floating-point-unit-rounding-decimal-point-to-nearest-1-s-place

器件型号:TM4C1294KCPDT

编译工程 启用了浮点支持 FPv4SPD16。  整数数学 将 两 个十进制数 除以100 除 以 3.5 不会产生 小于1的数字、而是将答案 舍入到 最接近的1的值。 因此、将精确匹配计数设置为一个计时器来反映温度测量结果、从而生成一个位置以下的数字、这种情况被忽略。  这使得一个不连贯的定时器运行、在这个运行中、温度由 ADC 测量(准确)、生成一个位置以下的数字、例如、也 被用于控制 风扇电机的速度。

示例:Int32value=(373 + 373 /100/3.5)或 Int32value = 2.1314285714285714285714285714285714286、但 CCS 调试变量 显示2作为答案、但不显示四舍五入的十进制整数、 如2.13   

我是否错过了 FPU 单元应该如何 允许在  一个位置以下添加小数点位置、而不是简单地将其舍入到最近的1位置?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="BP101"]十进制整数, 如2.13 [/引用]

    整数"含义的"想法"是否 需要审查?     " 创建 "的唯一"十进制整数、 2.13 in value "。。  说什么?

    我正在吃一种“重食”——但“ 大虾”——似乎是“肯定的可能性!”  (笑声)   (3个(更多)氧合物图解到达、但没有一个与海报的恐怖相匹配、"十进制整数、值2.13 "。)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 BP101、

    TM4C FPU 或 CCS FPv4SPD16支持存在这一问题吗?

    如果您认为 TM4C FPU 存在问题、您能否为相关 FPU 部分提供代码片段以及变量声明和算术失败的代码?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    而是为什么整数1位置上的浮点数学运算直到除以50或100才会显示出来。 这与打印字符串相同、其中1在有符号整数中的位置计数为0-9、然后在回滚到0时添加到10位置。 有符号整数对于温度传感器尤其重要,温度传感器的范围可能为-40*C 至150*C 奇怪的是、我们只能在预处理列表框整数值后显示数字温度浮点小数点、除以10。 这就是 MCU 的 FP 单元的工作方式,因为整数可以显示为范围99.9到100.0或字符串值999-1000而不显示小数点,例如375滚动实际上是37.5、6、7、8、9 -> 38.0。 或380。

    也许这与 FP 单元声称的单精度有更多的关系、这意味着什么。 甚至 CCS debugs 变量 display 也可能无法正确显示十进制值。 在发现反汇编器视图中缺少已编译的目标代码行(链接到源输出)后、调试将不会移动到表示未找到源的源代码行。 有趣的是、消息正确、反汇编函数中没有子例程、但确实存在子例程。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 BP101:

    我在你的第一篇帖子中很明显遗漏了一些东西。 我现在看到了误解。

    整数
    名词
    1、整数;不是小数的数字。

    这不能解释全部内容吗?

    使用 float 作为变量类型以获取十进制值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我认为 FPU 的作用是在整数除法后添加小数点、并将其移到显示列表框内、但不会像下面的二进制 IEEE 信息中所述在 CCS 调试变量视图中显示。 调试 GPTM 匹配计数寄存器视图也是如此、显示为十进制值、仅显示整数。

    3.1.5浮点单元(FPU)

    本节介绍了浮点单元(FPU)及其使用的寄存器。 FPU 提供:

    适用于单精度(C float)数据处理操作的■32位指令

    ■μ V 组合乘法和累加指令可提高精度(熔合 MAC)

    ■硬件支持转换、加法、减法、带有可选累加的乘法、

    除法和平方根

    ■硬件支持反常和所有 IEEE 舍入模式

    ■32个专用32位单精度寄存器、也可作为16个双字寄存器寻址

    ■去耦三级流水线

    Cortex-M4F FPU 完全支持单精度加法、减法、乘法、除法、乘法和累加、 和平方根运算。 它还提供定点和浮点数据格式以及浮点常数指令之间的转换。 FPU 提供浮点计算功能、该功能符合 ANSI/IEEE 标准754-2008、IEEE 二进制浮点算术标准、称为 IEEE 754标准。 FPU 的单精度扩展寄存器也可作为16个双字寄存器进行访问、以执行加载、存储和移动操作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    然而、float 类型不是(stdint.h)的一部分、其中列出了所有整数(类型/秒)范围、但昨天确实尝试了 float、现在函数实际上与传感器一起工作了、它会再试一次。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 BP101、

    正确、浮点不在 stdint.h 中

    stdint -->标准(std)整数(int)-->此处未找到浮点数等可小数的变量,只能找到整数变量。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="BP101"]调试 GPTM 匹配计数寄存器视图,显示为十进制值,仅显示整数

    是否希望在 GPTM 中查看"非整数"数字?    您对 整数的"理解" 是否增加?    (即 您之前的“十进制整数”... 不计算。)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    奇怪的是、放入 GPTM 匹配寄存器的浮点型整数只能通过单步执行加载、但加载了值2.15。 遗憾的是、在字符串输出中、将同一个十进制数转换为短整型值被改编为一个非常长的数字。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大多数情况下、匹配寄存器的 GPTM 值读数显示为65536。 对于浮点数的处理方式可能存在限制。 然而、(浮点)数据类型的 CCS 调试变量视图随后指示了一个小数点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    供参考:小数点转换用于 GPTM CCP0边沿事件中断、用于 PWM 占空比更新、尝试相对于低于1的位置值的温度读数来优化匹配步骤。 现在、占空比变化似乎跟随温度10的 Place 值、甚至不是1的值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我提名这次讨论,作为今年最佳职位的考虑。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="Ralph Jacobi"]使用 float 作为变量类型以获取十进制值。[/quot]

    您的意思是这样; 浮点4字节3.4E +/-38 (7位)? 虽然效果不是很好、但 FP 单元似乎对整数数学公式有一定影响。

    然而、整数值(int32_t)会改变字符串输出中打印的 f 、通过  1的位置递增温度变化计数、从而 使其显示为具有浮点精度的十进制值、尤其是当它从999滚动到1000而没有小数点时。

    但是、在  CCP0正边沿中断事件期间、加载到 GPTM 中的匹配计数没有反应、而只是响应10的位置、以更新定时器 的匹配计数 PWM 占空比。  CCP0 中断处理程序非常基本地使用(>=)来比较  所有温度传感器相对于 PWM 占空比变化的每个值。  当 每个传感器的温度 在 1的占位位置开始交叉匹配时、听到两个(IF)测试的结果争夺最小匹配值的有趣消息。 这是 GPTM 匹配值发现  10位以下的数字时的唯一时间、从不知道整数上升、而是在下降时。

    这里的想法是、我们不允许任何传感器 优先考虑风扇速度(PWM 匹 配计数)、简单 地将传感器读取值加在一起可能会导致灾难。 单个传感器 的处理成为单个 GPTM 匹配计数加载方式的关键。

    /*计算低侧和高侧 MOSFET 温度值。
    *匹配计数 GPTM0A 决定产生的 PWM 占空比。
    (三 /
    int32PWMDutyUpdateLow =(int32MOSTempValueLow / 50)/ 3);
    int32PWMDutyUpdateHigh =(int32MOSTempValueHigh / 50)/ 3);
    
    /*检查低 MOSFET 温度传感器是否高于高侧。
    * ADC 采样数据(-40*C - 150*C)按比例控制风扇速度。
    *除以 N12=100%占空比(4800/2-12)、其中 N (6)=50%风扇速度。
    (二 /
    if (int32PWMDutyUpdateLow >= int32PWMDutyUpdateHigh)
    {
    /*使用新的 PWM 占空比更新 Timer-0A 匹配值
    *基于从 PWM 中断接收到的边沿。 *
    HWREG (TIMER0_BASE + TIMER_O_TAMATCHR)=(int32FanDutyCycle / int32PWMDutyUpdateLow);
    }
    /*检查高 MOSFET 温度传感器是否高于低侧、
    * ADC 采样数据(-40*C - 150*C)按比例控制风扇速度。
    *除以 N12=100%占空比(4800/2-12)、其中 N (6)=50%风扇速度。
    (二 /
    否则、如果(int32PWMDutyUpdateHigh >= int32PWMDutyUpdateLow)
    {
    /*使用新的 PWM 占空比更新 Timer-0A 匹配值
    *基于从 PWM 中断接收到的边沿。 *
    HWREG (TIMER0_BASE + TIMER_O_TAMATCHR)=(int32FanDutyCycle / int32PWMDutyUpdateHigh);
    } 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Millwood"]我提名此讨论作为 年度最佳职位的考虑因素。[/引用]

    此类"提名"是否来自(非常)对(新创建的)"十进制整数"的仔细处理/处理?

    这似乎(不能帮助我自己)是 一个"明确的可能性"。   (现在是 5个"om"(4个故意)-单个线程... 清除 "HOF"候选人...)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    可能有点苛刻、因为二进制整数将现实世界中的实数表示为 MCU FP 单元添加的小数点(占位符)的数字、而不管二进制整数的命名(浮点)语法如何。 如果不正确、则将整数除以10不会在整数1的位置小数点占位符之前产生小数点、但确实如此。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="Ralph Jacobi"] TM4C FPU 或 CCS FPv4SPD16支持是否存在问题?

    也许 FPv4SPD16项目(默认) 、尽管   下拉选择框中列出了其他类型的 FP 支持。 对于 所有 MCU 数学计算(是否添加(浮点)类型、我都不知道哪个标准可以帮助优化简单 的整数 匹配计数。

    然而 、我可以 向    知识渊博的人员报告因将插入 GPTM 外设匹配计数寄存器的二进制值除法而导致 FP 单元运行的症状。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您启动此线程的目的似乎是为了实现 "单个定时器的 PWM (模式)输出"的"更精细控制"(即可能提高粒度)。    为了实现这一点、您尝试使用 M4的浮点功能。   (并引入了" 整数"的新/扩展(但无法识别)定义。)

    您的目标 "更精细的 PWM 控制"是否确实 可以实现?是否需要:

    • 浮点的任何使用
    • 用酷刑重新定义"整数"一词  (不知道"没有罪"- (显然)企图掩盖这一事实--是否会受到干扰?)

    让我们回顾一下定时器的基本操作和功能:

    上图表明、当置于 PWM 模式时、"独立定时器"会提供16位计数能力以及额外的8位预分频能力。    这种大容量是否不能提供 "所有精细控制/粒度"-人们可能需要吗?   

    您的"数学工作"(例如任何所需的(中间/最终)结果"扩展"(事实证明是有限的(或错误的))是否不太可能(超过)、因此存在 "没有部署浮点的真正要求?"   我会在拉斯维加斯的桌子上放置一个"高芯片堆栈"、以下注。

    您是否透露了代码的关键要素-这些要素描述了您如何执行温度测量-以及(正确驱动您的风扇)-此处的关键要素-几乎肯定-能够建议"非浮点方法"-以(甚至)更好地实现您的目标。

    另外请注意-您的控制代码(如图所示、在3月24日08:55开机自检、上面)仅比较了"高侧 FET 温度与低侧 FET 温度"-显然不考虑过热识别!   这样做是不对的,是不是吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    " 如果这不是真的、那么将整数除以10不会在整数1的位置小数点占位符之前产生小数点、但确实如此。"

    如果您使用了四倍的负面评价、您可以让更多的人更好地了解您。

    我认为可以容纳分数的整数是一种新的数据类型、尚待发明。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    可能是 GPTM 计数器 在十进制10基础模式下处理、无法将计时器加载值与创建二进制十进制1位置的 FP 单元分频的加载值相匹配。

      FP 协处理器 除以 原始整数值后、FP 单位数学结果(应答)不是定义的整数。   FP 单元后的整数将转换形态除以  在  1位置具有二进制权重的原始整数的十进制表示形式。 FP 单元显然不需要查看处理  整数除法的类型(浮点)语法顺序、作为 CPU 的数学协处理器、它 提供 了供 CPU 使用的数学方程结果。

    看起来 GPTM 是十进制计数       器、无法加载单点二进制精度的(匹配计数)或加载除整数以外的任何二进制匹配值、尤其是在 FP 整数转换之后。 GPTM 忽略 FP 单元 单精度除法值、并 在  匹 配加载更新期间仅对整数10的位置作出反应。

    只有  当处理的非常高的数字必须超过12位二进制值(0xFFF)时、才需要进行缩放以将 GPTM 计数从12位扩展到24位。  缩放会推断 频率高于 25kHz、例如具有120MHz SYSCLK 时基 的 GPTM 和(0xFFF) 加载值会产生29.304khz 的频率。

    点是 GPTM 似乎不是与  1位置中的任何 FP 整数匹配的电缆、而是与 下一个周期中加载的计数更新匹配、它不会加载它们!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    也许您不知道 sarcasm 在互联网上没有位置?

    首先、FP 单元除法将生成一个具有浮点1位置的整数、而不管是否存在小数点。 FP 单元通过除法创建一个小数、因此它不再是一个整数、因为定义是输出的。

    同样、显示文本框预处理器除法在1位置的左侧生成一个小数点、但该值中的数字保持不变、无论是否存在小数点、均无差异。 用于在值中证实1的位置的是对整数执行浮点数学运算的结果。

    也就是说、小数可以存在于(FP 单元已处理)整数(类型 Int32_t)中、并且不是虚数的、但仅对于程序员而言、FP 单元已将其数学公式量化为二进制单点号值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    它仍然是... 确定- 24位、PWM 容量(在定时器模式下)应该"比能力强"以实现严格的控制-并避免通过浮点引起的"挑战"和额外的 MCU 资源。

    您的代码显示了所需的"过热测试"-您的代码(简单)测试了"高侧与低侧"温度-这远远不够!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 BP101、

    [引用 user="BP101]*可能有点苛刻、因为二进制整数将实际数字表示为 MCU FP 单元添加的小数点(占位符)的数字、而不管二进制整数的命名是什么(浮点)语法。 如果不正确、则将整数除以10不会在整数1的位置小数点占位符之前产生小数点、但确实如此。

    [/报价]
    但是、当变量转换为不支持小数点的类型时、就会抛出此类表示、此外、您是否真的想弄清楚如何解码小数值的二进制编码、以避免使用浮点变量? 您的 MCU 拥有足够的空间...
    [引用 user="BP101"]

    FP 单元显然不需要查看处理  整数除法的类型(浮点)语法顺序、作为 CPU 的数学协处理器、它 提供 了供 CPU 使用的数学方程结果。

    [/报价]

    嗯、从技术上讲不是、但是如果结果存储在 INT 中、则使用 FPU 将是浪费。 在该点键入 x = y/z 并将其称为一天、没有什么区别。 由于小数点截断、结果将相等。

    [引用 user="BP101"]

    可能是 GPTM 计数器 在十进制10基础模式下处理、无法将计时器加载值与创建二进制十进制1位置的 FP 单元分频的加载值相匹配。

    看起来 GPTM 是十进制计数       器、无法加载单点二进制精度的(匹配计数)或加载除整数以外的任何二进制匹配值、尤其是在 FP 整数转换之后。 GPTM 忽略 FP 单元 单精度除法值、并 在  匹 配加载更新期间仅对整数10的位置作出反应。

    只有  当处理的非常高的数字必须超过12位二进制值(0xFFF)时、才需要进行缩放以将 GPTM 计数从12位扩展到24位。  缩放会推断 频率高于 25kHz、例如具有120MHz SYSCLK 时基 的 GPTM 和(0xFFF) 加载值会产生29.304khz 的频率。

    点是 GPTM 似乎不是与  1位置中的任何 FP 整数匹配的电缆、而是与 下一个周期中加载的计数更新匹配、它不会加载它们!

    [/报价]

    我认为这里的问题可能是将浮点数转换为可用于 GPTM 的值。

    • 第1步:使用带"float"定义变量的 FPU 函数来计算所需精度的答案。
    • 步骤2:使用类型转换将浮点数转换为某种形式的整数、这将截断小数位、而不对其进行任何评估。 如果您希望在适用时对结果进行舍入、则需要在键入铸件之前手动执行此操作。
    • 步骤3:将整数值加载到计时器模块中。

    如果未按该顺序执行这些步骤、您可能会在线路上的某个位置丢失数据。

    如果您仍在尝试使用您的不存在的"浮点整数"、则可能缺少上述至少一个步骤、从而导致您的问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [报价用户="Ralph Jacobi"]如果您仍在尝试使用 您的不存在的"浮点整数"[/报价]

    很高兴看到供应商代理现在添加到拒绝海报的"自行创建/完全不正确"术语中!

    遵循“ 真实的线程“正在打开的帖子”副本 ...  "四舍五入的十进制整数、 如2.13。"  

    这是否也会被禁止?   (因为(可能)会混淆那些 "非常初学者"-登陆这里。)

    对"整数"定义的理解仍然不清楚--至少是"一个"--这里!   尽管您发现海报的使用不当、但这种情况更早了!

    您"重新确认"了几个"外人"是一件很好的事、之前曾提到"滥用"一个"非常标准的术语!"

    正如清楚说明的那样-简单的整数算术-可以很容易地解决海报的要求-(如图所示-有一个24位定时器寄存器容量)-当处于 PWM 模式时!   整个"失败的冒险"进入浮点-被证明 是不考虑和不必要的!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Ralph Jacobi"]如果您仍在尝试使用您的不存在的"浮点整数"、则可能缺少上述至少一个步骤、从而导致您的问题

    FPU 只是将该值除以后、它可能不是真正的浮点十进制值、但它有一个明确的浮点(占位符 ) 、表示如果它确实具有小数点、则它将位于何处。   对于 CCS 编译器而言、这似乎更是一个问题 、它不知道 FPU 何时接管类型为 cast float 的整数。 除了没有单点精度的 GPTM 、不管是否在 CCS 调试中显示的类型转换浮点的匹配计数中加载十进制值1的位置、都无法执行。 Debug 变量视图将在类型转换浮点中显示小数点、但 GPTM 无法处理该小数点。  

    就像我说 过的、GPTM 的运行方式类似于十进制计数加载的十进制计数器、1位置的变化 不会产生 任何匹配 的倒 计数或占空比 变化、勘误表?     在 CCS 调试变量视图中显示的 FPU 连接的二进制或十进制分频值在1位置的左侧添加了一个浮动十进制占位符、即使 没有显示小数点。 计数器采用新的加载(十进制)值、并以递增的方式进行递减计数、但速度非常快。    很难验证匹配项是否会产生 PWM 占空比变化 、但我们可以在  此处以风扇速度的非常不同的阶跃进行占空比变化、与 匹配的温度变化相关、但仅在10的位置、类似于 10个十进制的基计数器。

    同样、我们 可以看到通过  printf()生成的输出中的浮点整数的结果、而 CCS 调试变量视图表示相同的结果。 因此、如果浮点二进制整数 不存在、则完全错误、因为您无法看到小数点。 也许 FPU 数学协处理器比一些人说得更复杂。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为您不会把握 FPU 修改二进制数据后、输入到 FPU 的整数不再是定义的(仅为整数)。 FPU 输出二进制数据在执行任何除法运算后具有浮点精度、根据定义、不再将其分类为简单整数。 该值是十进制整数的二进制表示、从技术上讲、0-9之间的任何数字都是整数和十进制数。

    如果您不喜欢、请告诉多位 DOE 付费代数教师、或者他们不应该在数学课中教授、小数也是整数。 仅仅因为 Borland 决定将一个范围放置在超过(0-9)的字整数上、它不具有第一个含义、因此调用一个十进制数作为整数并不合适。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    正如清楚说明的那样-简单的整数算术-可以很容易地解决海报的要求-(如图所示-有一个24位定时器寄存器容量)-当处于 PWM 模式时! 整个"失败的冒险"进入浮点-被证明是不考虑和不必要的!

    更好的检查24位数学运算是25kHz PWM 频率的两倍、不能用具有120MHz SYCLK 时基的24位负载计数值表示。 您必须忽略了上面发布的数学运算吗? 我们只需使用24位寄存器即可在生成极高频率时进行大量计数。 您认为我也有这种错误吗?25kHz 可以用这么高的计数来表示?

    重点是、相对于传感器分频的可变模拟范围、我们只能获得非常有限的占空比变化量、并在所有风扇速度下保持25kHz 频率。 温度传感器 ADC 数据必须生成数字读数、而无需大量数字、将相同的数字读数发布到物联网云中、并根据保护 MOSFET 器件的传感器限制控制风扇速度阶跃。 考虑到这一点、它的工作原理相当好、12 10个风扇速度、但如果 GPTM 能够遵循表示加载的二进制整数的十进制值1的位置作为新的匹配递减计数、则应该是100。 这可能只是在25kHz PWM 正边沿事件上发生的中断占空比的频率更新不够快、无法捕捉1的位置、并且两个边沿事件触发的中断可能产生24 20个速度。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="BP101"]他们不应在数学类中教授小数也是整数

    那些不能(或不会)"承认他们的错误"的人不太可能从其他人(适当且知情)的意见中获益。

    在早期建议您(创建) 的"十进制整数"不正确之后、您应该"重新检查您的事实"。

    您试图"重新定义整数"-通过引入 MCU 的"烟幕"-绝不会掩盖您对这个词的理解失败!   真遗憾!

    此处有三个-包括供应商代理(两次)-花时间/精力"纠正您的误解"。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="BP101"]更好地检查24位数学运算将25kHz PWM 频率加倍,但不能用120MHz SYCLK[/引用]的24位负载计数值表示

    对于25KHz PWM 的要求、您有没有提出任何理由?    您正在控制风扇速度-不是"Space-X"启动。   @ 120MHz 您可以在一秒内"填充" 24位七次。  (周期为140ms)  并且-不必使用整个24位-但是它是存在的(与"十进制整数"的存在不同)并且可以被利用-根据需要...

    任何数学检查(首先)是否应包含"整数定义"?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 BP101、

    如果您认为 GPTM 模块存在问题、请打开该主题的主题、因为它与此处正在进行的 FP 与整数辩论有很大不同。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    实际上、我们认为它们是同一个主题、 因为 GPTM 似乎 无法正确匹配    FPU 计算的十进制值1位置的计数。 该值源自 ADC 样本、这些样本也被 FPU 分频和滤波。 这是帖子的全部要点、而不是 FPU 未具体 发挥作用、而 FPU 的结果在 GPTM 中似乎不起作用、 然后在该帖子中发现"不管 FPU 如何处理小数 点位置或添加 占位符"。  

    我尝试迭代几次 GPTM 仅匹配 10和100的十进制 位置的加载计数、而不是查询 FPU 进行除法的1的平方运算。 在 我看来、GPTM 行为更像是十进制计数器(10进制计数器)、我花了很多小时将多个计数链接在一起并去复用计数。

    现在无需再辩论  这个 FPU 问题了、 GPTM 的工作速度为10个步骤  、目前还可以。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您必须多次错过25kHz 频率并重新布置、或者不必通过 PWM 控制数字风扇速度。 再次明确地将 GPTM 扩展到24位将不能从 CCP0 PWM 产生25kHz 的频率、并且需要40us 的周期才能始终生成25kHz 波形。 风扇转速通过中断更新至匹配计数负载值来控制、从而控制25kHz 左右的 PWM 占空比。

    看不到140ms 如何使频率保持恒定、也许您可以向我们展示这种数学方法或放弃刻度概念。 我认为、无论 FPU 值作为匹配计数负载产生、GPTM 的占空比都不匹配1的数字位置。

    在温度10的位置(* C)上、是否仅 GPTM 加载匹配计数(高于已发布代码)(例如、310、320、330、340等)、但不是311、312、313、314或321 - 329、331-339、341-349、350有效、因此360、370、380、1000这些不是24位整数或十进制值。 上面添加的值(小数点)实际上是31.1、31.2、31.3等。通过在文本框中除以表示十进制值的整数,例如,Value (31/10)将31.1*C 作为数字读数。 在现实世界中、这是一个由通过 FPU 的二进制整数生成的十进制值、它似乎会根据 FPU 的整数输入向1的10的占位符添加精度。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    "更好的检查24位数学运算是25kHz PWM 频率的两倍、不能用具有120MHz SYCLK 时基的24位负载计数值来表示"

    除非您生活在不同的世界中、否则25kHz PWM 不需要超过13位即可在120MHz 系统上表示。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以得到它(0x3E8) 4800十进     制"我们不说4800数字或整数"、并且0x3E8远低于所有24位加载值、大多数最多包括10位的任何计数都是包含在内的。 因此 、执行频率数学运算后无需进行24位缩放、 (小数速度)加载值不超过以 增量方式递增或递减计数的整数、表示十进制温度值。 然而、大多数 PWM 风扇速度控制器不允许 Taco 低于1500 RPM、或者只是不能根据 制造商的不同调节低转速、有些是2500。 随着温度升高、风扇通常会更快地烧断、这需要增加 GPM 匹配负载值、但相对于直接  从   多个温度传感器采样的值 ADC 连接的 PWM 占空比、 最高值的传感器数据 必须始终优先于任何较低值的读取。

    任何 FYI;整数确实包括十进制数0-9、一个网页使用字十进制表示小数的一部分。 然而、十进制字通常也用于关联整数、 因为现在通过"Dewy Decimal System"、他首先不是计算机行业整数(范围)的定义、而是 经常忽略字段。   过去 的整数范围 Think.与 ALU 数学 能力有关。  

    https://www.mathplanet.com/education/algebra-1/exploring-real-numbers/integers-and-rational-numbers

    https://www.mathsisfun.com/whole-numbers.html  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="BP101"]示例:Int32value=(373 + 373 /100/3.5)或  Int32value = 2.1314285714285714285714285714285714285714286 但 CCS 调试变量 显示2作为答案、而不是一个整数十进制整数、 如2.13

    上面的引述又回到了海报  的第一个帖子-两次 (显然在上面)-声称 "整数" 是包含 "不合理"的数字。   (用小数点表示-在两个海报展示中都强调。)    不合理的数字不能被写为"整体"、"比率"或"分数"的数字。   (因此下降到小数点。)

    十进制定义十进数字系统-还有 "二进制、 八进制和十六进制"数字系统表示法。   

    再次-"整数"由整数(合理数字)组成-不会出现小数点表示(表示"不合理")。   (CB1/Dead Horse 上的棚舍门"摆动关闭")

    希望您解决此问题-并使您的功率级保持适当冷却。    我们已在自主车辆网络中部署(包括)珀耳帖和强制液体冷却- 都能够从  微妙/易受影响 的 FET 功率级中大量吸收并传输(致命)热量...   没有 PWM 冷却控制、甚至开始接近25KHz!  (完全没有针对您的25KHz (并且只有25KHz)要求做出任何选择...)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    "供参考的任何人..."

    上一个相当好的中等学校数学课将大大有助于清除问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     是否有人 试图将 发布的问题变为 与帖子相关的问题以外的其他问题。

    在( int32_t) 整数值除法 后、FPU 没有在解决方案中添加小数点、这违反了任何中学数学课中教授的数学惯例。 将分子除以分母的整个过程会在 解决方案中添加一个小数点、因为 数 世纪以来、数学除法已经由教师定义和教授。

    同样、整数也可以是 小数内的十进制数 、 FPU 也会连接一个求解、将 其舍入到最近的1位置。 发布的问题询问这是为什么发生的。

    供应商随后 提到、我们必须包含 类型(浮点) 来定义 (int32_t)值、以便 CCS 在 具有 小数点的调试变量视图中显示解决方案。  FPU (浮点) 解决方案仍四舍五入到 最近的-1位置!

    很抱歉、 我 看不出有什么大惊小怪的地方、也许有些 人拒绝接受 整数可以是没有小数点的十进制值 、因为 FPU 会将 十进制解决方案舍入到最接近的1位置、而不会将类型(浮点)添加到 Int32_t 定义 的变量中。 用讽刺或任性的方式来贬低海报是令人憎恶的行为!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尽量尝试-任何整数都不能表示为"2.13 "或 "2.13142 (无限)"-正如您所介绍的-不止一次!

    没有出现指称的"sarcasm"的证据,或者...   这里提出 了一个明确的 "事实陈述"。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    贬低任何人,无论其理由如何,这当然是错误的。

    但是,对于不了解整数和实际数字之间差异的人来说,事实是,去一所好的中学可以产生奇迹。 毕竟、这是教育的关键。

    人们可能会发现真相令人反感、但需要说、但对我们中的一些人来说、这可能是"冒犯性"。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Danny F"]人们可能会发现真相令人厌恶,但需要说,但它可能对我们中的一些人来说是“冒犯”。

    当 您的几篇帖子( 尤其是您的最后一篇帖子)中可能被视为讽刺时、此论坛不是任何人发表个人观点或贬损观点的场所。

    然而 、CB1或您自己都无法回答为什么 GPTM 无法加载(全部)从 FPU 派生的连接(Int32_t)值。 单是这一点 ,我认为 ,存在着贬低讽刺意味的意图。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="CB1_MOBIT"]尽量尝试-任何整数都不能表示为"2.13 "或 "2.13142 (无限量)"-正如您所介绍的那样-多次![/QUERT]

      这种想法似乎是错误        的、因为(float in32_t)类型在 CCS 调试变量视图中会产生浮点小数点、而(int32_t)变量在除法后定义、例如(N/10)在 GUI 显示数据中会产生浮点小数点。 最后一部分 N/10与(int32_t)定义的变量(作为预处理(N/10)值加载到小工具的文本框中)一起工作非常好。

    正确    的做法是、IEEE FPU 二进制精度(float)类型可能具有精度限制、因为它似乎会将值舍入到最近的-1或10'ths 位置。 这似乎 只能定义"单点精度" 、例如、在    值超过1位数占位符时、除了将小数点浮至右侧之外、所有这些都可以被考虑在内。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    "当您在几篇帖子中、尤其是您的最后一篇帖子中、您肯定会发现这个论坛是一个要揭露的问题时、任何人都不能在这个论坛上发表个人观点或贬损观点。"

    我觉得你不允许我说一个良好的中学教育可以帮助人们理解整数和实际数字之间的差异是非常令人厌恶的。

    因此,我将结束帮助你的努力,因为这已经成为浪费我的时间。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这就是你在这个过程中做一个很好的评论,而不是一次,而是两次。

    你的观点与 FPU 对整数的处理毫无关系,更具体地说,中学的评论在这一点上几乎不会成为“内向”。 信息者 BP101在除计算机整数具有固定范围之外没有特定差异时没有学习到差异。 我是否未明确表示数字0-9是代数、甚至是指除 Danny 以外的实数。 老实说,我不记得代数中被称为整数以外的任何数字,计算机使用整数来表示实际用户界面 GUI 中的数字,这是否会使整数变为实际数字?

    这些链接不是供您参考、而是供需要对抽取值和整数进行复习的所有人参考、我只需一个。 一个链接表示声明抽取率是分数的一部分、而分数则由 FPU 通过浮点整数表示。 以上 FPU IEEE 帖子也试图将其关联起来。