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.

[参考译文] 信号调节-除以0 -解决方案

Guru**** 2595780 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/638979/signal-conditioning---division-by-zero---solution

有一个对数规则:

log_a (b)+ log_a (c)= log_a (b * c)

log_a (b)- log_a (c)= log_a (b / c)

如果

LOG_10 (10)= 1

LOG_10 (0)=-无穷大

然后10/0 = 10 ^(1 -(-无穷大))= 10 ^(1 +无穷大)= 10 ^无穷大= 无穷大

因此,我希望所有TI的代数逻辑都能调整为在零除法条件下作为无穷大而不是错误的行为。

此致,

Alexey Bagaev

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    “TI的代数逻辑”的确切含义是什么? MSP430 CPU没有分割功能;MSP432的行为与ARM的规定相同。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您的问题是否属于该讨论的订阅形式? 我是否应该明确描述我的所有语法语义? (在wiki描述中总是有一种方法可以看到它的意思是什么'代 数逻辑'以及'division by zero '存在什么问题)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Wiki:“在计算中,试图除以零可能导致程序错误。 根据编程环境和数字类型(例如浮点,整数)除以零,它可能会产生正无穷大或负无穷大,产生异常,生成错误消息,导致程序终止,产生特殊的非数字值, 通过无限循环冻结,或崩溃。"
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    顺便提一下,
    0 ^ n = 0,
    但是
    N ^ 0 = 1,
    所以,甚至
    0 ^ 0 = 1。
    如果没有这种在代数逻辑中的简单原则,当前可用的数字计算机就无法正常工作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    要扩展我前面的回答:浮点计算在MSP430上的行为方式取决于用于模拟浮点计算的库。 所有默认值均符合IEEE 754 (ISO 6.0559万)。 MSP432硬件也符合IEEE 754标准。

    IEEE 754要求将除以0视为错误,但如果禁用异常陷阱,则结果为±infinity或NaN。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗯,您试图将我的观点放在MSP430硬件上,这是一个错误的方向,但计算除数为零的行为会影响许多库,编译器等。 尽管MSP432和TMS320浮点硬件在这种情况下工作正常,但相同架构的软件实施却不能产生相同的结果。 希望这一点得到澄清。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    还有一点,我非常喜欢MSP430FR599x硬件,它是一个可以实现令人惊叹的功能的平台。 但仍有一些小问题需要发展成为新产品。 (我仍然不理解MPY32和DMA之间的'reationship',同时使用它们会导致两者停止)。