工具/软件:Code Composer Studio
你好。
我使用:
UCD3138128A;
Saurus SAU510-USB ISO Plus 仿真器;
CCS v.7.4。
我将前端模块配置为 SAR 模式或任何其他模式。 RAW_ERROR_VALUE 等于任何 AFE_GAIN 上可能的最大值、不依赖于 DAC 值或输出电压。
如果我没有在程序中寻址到模块的寄存器、那么在调试模式中、我会看到默认设置。 如果我在这个模式中手动配置模块、它在所有 FE 模式中工作。
但是、如果我在程序代码的帮助下配置模块、FE 模块的所有寄存器都将填充为0x0、之后所有必要的位都将被置位。
模块无法正常工作。 RAW_ERROR_VALUE = 0xf8、不依赖于 DAC 值或输出电压。
#define main (1)
#include "include.h"
uint32 PRD = 0x3FFFF;
空 DPWM0 (空)
{
Dpwm0Regs.DPWMCTRL0.bit.PWM_EN = 0;
Dpwm0Regs.DPWMCTRL0.bit.CLA_EN = 0;
Dpwm0Regs.DPWMPRD.ALL = PRD;
Dpwm0Regs.DPWMEV1.ALL = 0;
Dpwm0Regs.DPWMEV2.ALL = PRD/2;
Dpwm0Regs.DPWMEV3.ALL = PRD/2;
Dpwm0Regs.DPWMEV4.ALL = PRD;
Dpwm0Regs.DPWMSAMPTRIG1.ALL = PRD/2;
Dpwm0Regs.DPWMCTRL2.bit.sample_trig_1_EN = 1;
Dpwm0Regs.DPWMCTRL0.bit.PWM_EN = 1;
}
void eADC (void)
{
UNION EADCCTRL_REG EADC_Ctrl;
// eADC_Ctrl.all = 0;
eADC_Ctrl.bit.eADC_MODE = 2;
eADC_Ctrl.bit.AFE_GAIN = 0;
eADC_Ctrl.bit.SCFE_GAIN_FILTER_SEL = 1;
eADC_Ctrl.bit.SCFE_CLK_DIV_2 = 1;
eADC_Ctrl.bit.SCFE_ENA=1;
eADC_Ctrl.bit.eADC_ENA=1;
FeCtrl1Regs.EADCCTRL = eADC_Ctrl;
}
void LoopMux (void)
{
LoopMuxRegs.SAMPTRIGCTRL.bit.Fe1_TRIG_DPWM0_EN = 1;
LoopMuxRegs.FECTRL1MUX.bit.DPWM0_FRAME_SYNC_EN = 1;
UNION GLBEN_REG glben_store;
glben_store.all = 0;
glben_store.bit.DPWM0_EN = 1;
glben_store.bit.DPWM1_EN = 1;
glben_store.bit.FE_CTRL1_EN = 1;
LoopMuxRegs.GLBEN = glben_store;
}
void main()
{
//###################### 警告!!!! 请查看此####################
杂项 AnalogRegs.IOMUX.ALL = 0;
//##################################################
eADC();
DPWM0();
LoopMux();
while (1)
{
}
}
void c_int00 (void)
{
main();
}
我尝试在连续 SAR 模式下启动模块、这不需要样本触发器的参与。 但结果与前一种情况相同。
谢谢你。