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.

[参考译文] MSP430FR2311:MSP430FR2311

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/932882/msp430fr2311-msp430fr2311

器件型号:MSP430FR2311

您好!

我的代码应在正弦值超过0时生成单个脉冲。 为了测试它、我使用的正弦电压具有直流偏移1.65V、将3.3V 减半。  我将其与比较器的1/2 VCC 内部基准进行比较、正弦振幅为35mV。 当我监控 P1.0输出时、我看到生成了几个脉冲、而不是一个脉冲。 如果我增加正弦振幅、则脉冲数 会减少、但仍然有多个脉冲、而不是一个脉冲。 我假设这可能是由1/2 VCC 基准上的噪声和正弦噪声引起的。 我添加了滤波、但它没有帮助。  是否还有其他东西可以清除它?

谢谢 Vadim

*****

#include

int main (空)

WDTCTL = WDTPW | WDTHOLD;//停止 WDT

//配置 GPIO
P1OUT &=~BIT0;//清除 P1.0输出锁存器以实现定义的加电状态
P1DIR |= BIT0;//将 P1.0设置为输出方向

//配置比较器输入和输出
P1SEL0 |= BIT1;//在 P1.1/C1上选择 eCOMP 输入功能
P1SEL1 |= BIT1;
P2DIR |= BIT0;
P2SEL1 |= BIT0;//在 P2.0/COUT 上选择 CPOUT 功能

PM5CTL0 &=~LOCKLPM5;//禁用 GPIO 上电默认高阻抗模式
//激活先前配置的端口设置

//配置引用
PMMCTL0_H = PMMPW_H;//解锁 PMM 寄存器
PMMCTL2 |= INTREFEN;//启用内部基准
while (!(PMMCTL2 & REFGENRDY));//轮询直到内部基准稳定

//设置 eCOMP
CPCTL0 = CPPSEL0;//选择 C1作为 V+端子的输入
CPCTL0 |= CPNSEL1 | CPNSEL2;//选择 DAC 作为 V-端子的输入
CPCTL0 |= CPPEN | CPNEN;//启用 eCOMP 输入
CPCTL1 |= CPIIE | CPIE;//启用 eCOMP 双边沿中断
CPDACCTL |= CPDACEN;//选择 VCC 作为基准并启用 DAC
CPDACDATA |= 0x0020;// CPDACBUF1=VCC *32/64
CPCTL1 |= CPEN;//在高速模式下打开 eCOMP
CPCTL1 |= CPFLT_1;
CPCTL1 |= CPFLTDLY_3;

_bis_SR_register (LPM3_bits | GIE);//输入 LPM3
__no_operation();//进行调试

// eCOMP 中断服务例程
#pragma vector=ECOMP0_vector
_interrupt void ECOMP0_ISR (void)

switch (__evo_in_range (CPUV、CPUV__CPIIFG))

案例 CPIV__NONE:
中断;
案例 CPIV__CPIFG:

P1OUT = BIT0;
_DELAY_CYCLES (100);
P1OUT =~BIT0;
中断;
案例 CPIV__CPIIFG:

P1OUT = BIT0;
_DELAY_CYCLES (100);
P1OUT =~BIT0;
中断;
默认值:
中断;

*****

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

    您好 Vadim

    FR2311 eCOMP 支持不同的步进迟滞配置、可实现更好的比较性能。 请考虑尝试 使用 CPxCTL1.CPHSEL 位启用可编程迟滞模式。 我认为这个函数可以使比较更加稳定。 谢谢!