主题中讨论的其他器件:ADS131M08、
大家好、
我们使用 ADS131M08 AFE 测量连接到 MSP430F47177的电压、电流值。
之前、我们使用 MSP430F47177的内置 ADC 进行了同样的操作。 使用内部 ADC 时、使用了 ADC 中断和硬件乘法器。 (代码中存在硬件乘法器的 asm 代码)
现在、当我们要使用外部 ADC ADS131M08时、我们不需要 ADC 中断。 但是、我们需要计算 我们在 ADC 中断中执行的操作。
因此、我们禁用了 ADC 中断、并调用了一个函数(例如 ADC_Read)、该函数具有与 ADC 中断中存在的计算代码相同的计算代码。
在 ADC 中断代码中、有一个用于硬件乘法的汇编代码、用于计算平方和值。
当我们通过调用 ADC_Read 函数来运行代码时、代码 执行到硬件乘法器部分、但随后进入 NMI 中断并进行复位。
如果我没有调用函数 ADC_Read、代码工作正常、但未进行复位。
这种情况发生的原因。
这是因为 ADC 中断未被正确禁用、我是否需要更改硬件乘法器项目中的设置?
注:-
我更改了以下设置
1。
更早的版本:- Project->Properties->MSP430 Compiler->Optimization -> Inline Hardware 乘法 RTS mpy 例程(--use_hw_mpy)=32
更改为:-无
结果:-代码仍在重置。
2.
更早版本:- Project->Properties->MSP430 Compiler->ULP Advisor -> Hardware Multiplier
已更改为 :-“硬件乘法器”的“取消标记为”复选框
结果:-代码仍在重置。
谢谢、此致