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.

[参考译文] CCS/MSP432P401R:设置ADC14

Guru**** 2537220 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/582396/ccs-msp432p401r-setting-up-adc14

部件号:MSP432P401R

工具/软件:Code Composer Studio

您好,

我正在使用MSP432P401R板,我正在尝试设置一个简单的程序,用于单通道和单转换,并将其显示在诺基亚5110 LCD上(红色)。 电位计连接到ADC的PIN 5.1 上,但是我无法使此程序正常工作,如果有人可以指出我在该程序中缺少的内容。 仅供参考,我是MSP微处理器的新用户

#include <stdint.h>
包括"Nokia5110.c"
#include "ClockSystem.c"
包含"msp432.h"
#include "msp432p401r.h"
void ADC_setup(void);


内部主(无效)

WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
__enable_interrupt ();//启用全局中断
// p5->REN|=BIT1;//将端口1上的REN位设置为1
// p5->out |=BIT1;//将端口1上的位设置为1
nokia5110_Init();//初始化LCD
UINT32_t值;
ADC_setup();

// nokia5110_clear();//清除屏幕


同时(1)

ADC14->CTL0|=ADC14_CTL0_SC;//开始转换
//延迟(5000);
Value=ADC14->MEM[13];
nokia5110_clear();//清除屏幕
Nokia5110_SetCursor (4,2);//显示在LCD的第4行第1列
诺基亚5110_Outudec (数值);

}

}

void ADC_setup(void){
cs ->键|= 0x0.1111万;//解锁时钟的所有寄存器
CS->CTL1|=CS_CTL1_DIVM_1;
//将针脚映射的5_1上的针脚设置为输入
P5->SEL0 |=(BIT1);// SEL0和SEL1设置为1以启用模拟A4
p5->SEL1 ||(BIT1);
p5->DIR &=~(BIT1);//将引脚设置为输入

ADC14->CTL0|=ADC14_CTL0_On;//打开ADC核心
ADC14->CTL0|=ADC14_CTL0_CONSEQ_0;//使用模式单通道单转换
ADC14->CTL1|=ADC14_CTL1_RES_1;// 12位转换结果分辨率
ADC14->MCTL[13]|=ADC14_MCTLN_INICT_4;
ADC14->CTL0&=~(ADC14_CTL0_sel_0);
ADC14->CTL1|=0X0D0000;
ADC14->CTL0|= ADC14_CTL0_sel_3;
ADC14->CTL0|= ADC14_CTL0_DIV_1;
ADC14->CTL0|=ADC14_CTL0_ENC;//启用转换


}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否编译? 如果不是,错误是什么?
    如果运行,会发生什么情况? 什么不会发生?

    您是否可以在液晶屏上打印虚假值?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它编译并在屏幕上显示2078。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我更像是stdlib类的家伙,但您可能必须使值易失,因为编译器“知道”ADC14->MEM[13];在while循环中没有更改。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    赛义夫

    如有疑问,请从代码示例开始!
    导航至www.dev.ti.com-->资源管理器-->软件--> MSP432 SDK。
    在“Examples/Driverlib”下,您可以找到ADC模块上的大量示例。 ( )  

    同时,我将浏览粘贴在上面的代码示例片段,并告知您是否有任何问题。

    PS:快速测试以查看ADC输入通道是否正确连接,采样是将引脚绑定到Vcc和GND,并查看是否可以检测到达到最大值/最小值

    此致,
    Priya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Keith Barkley,我对代码进行了更改,它仍然显示相同的值。 我是否必须设置中断以启动新的转换以检查它是否工作?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    可能,如建议的那样,尝试使用driverlib示例。