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.

[参考译文] TM4C123GH6PM:在同步采样后监控 ADC 的转换值

Guru**** 2609285 points
Other Parts Discussed in Thread: EK-TM4C123GXL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/757349/tm4c123gh6pm-monitoring-converted-values-of-adc-after-simultaneous-sampling

器件型号:TM4C123GH6PM
Thread 中讨论的其他器件:EK-TM4C123GXL

//
//
// project0.c -演示最小 TivaWare 设置的示例
//
//版权所有(c) 2012-2017 Texas Instruments Incorporated。  保留所有权利。
//软件许可协议
//
//德州仪器(TI)仅提供和使用此软件
//专门用于 TI 的微控制器产品。 该软件归其所有
// TI 和/或其供应商、受适用版权保护
//法律。 您不能将此软件与"病毒"开源软件结合使用
//软件,以便形成一个更大的程序。
//
//此软件按“原样”提供,且存在所有故障。
//不作任何明示、暗示或法定的保证,包括但
//不限于对适销性和适用性的暗示保证
//此软件的特定用途。 TI 不得以任何方式进行
//情况,对特殊、偶然或从属事件负责
//任何原因造成的损害。
//
//这是 EK-TM4C123GXL 固件包版本2.1.4.178的一部分。
//
//

#include
#include
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "inc/hw_adc.h"
#include "inc/hw_types.h"
#include "inc/hw_udma.h"
#include "driverlib/debug.h"
#include "driverlib/gpio.h"
#include "driverlib/interrupt.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/uart.h"
#include "driverlib/adc.h"
#include "driverlib/udma.h"
#include "driverlib/timer.h"
#include "driverlib/rom.h"
#include "driverlib/rom_map.h"
#include "driverlib/SysTick .h"
#include "utils/uartstdio.h"
//
//
//定义引脚到 LED 颜色映射。
//
//

//
//
//! \addtogroup example_list
//!

Project Zero (项目0)


//!
//! 此示例演示了如何使用 TivaWare 设置时钟和
//! 切换 GPIO 引脚以使 LED 闪烁。 这是一个很好的起点
//! 了解您的 LaunchPad 以及可用于对其进行编程的工具。
//
//

#define RED_LED  GPIO_PIN_1
#define BLED_LED GPIO_PIN_2
#define GREEN_LED GPIO_PIN_3

//
//
//驱动程序库遇到错误时调用的错误例程。
//
//
#ifdef 调试
无效
_error__(char * pcFilename、uint32_t ui32Line)


#endif

//
//
//主"C"语言入口点。  使用 TivaWare 切换 LED。
//
//
uint32_t adcbuffer[100];
uint32_t adcddata1[100];
uint32_t adcddata2[100];
uint32_t i、时基、triglvl、xpos;


void main(){

   SysCtlClockSet (SYSCTL_SYSDIV_10 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHz);//20MHz 时钟

   SysCtlPeripheralEnable (SYSCTL_Periph_ADC0);
   SysCtlPeripheralEnable (SYSCTL_Periph_ADC1);

   GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_3);
   GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_2);

           ADCSequenceConfigure (ADC0_BASE、3、ADC_TRIGGER_PROCESSOR、0);
           ADCSequenceConfigure (ADC1_base、3、ADC_TRIGGER_PROCESSOR, 0);

           ADCSequenceStepConfigure (ADC0_BASE、3、0、ADC_CTL_CH7 | ADC_CTL_IE | ADC_CTL_END);
           ADCSequenceStepConfigure (ADC1_base、3、0、ADC_CTL_CH6 | ADC_CTL_IE | ADC_CTL_END);
           ADCSequenceStepConfigure (ADC1_base、3、0、ADC_CTL_CH5 | ADC_CTL_IE | ADC_CTL_END);
           ADCSequenceStepConfigure (ADC1_base、3、0、ADC_CTL_CH4 | ADC_CTL_IE | ADC_CTL_END);
           ADCSequenceStepConfigure (ADC0_BASE、3、0、ADC_CTL_CH3 | ADC_CTL_IE | ADC_CTL_END);

           ADCSequenceEnable (ADC0_BASE、3);
           ADCSequenceEnable (ADC1_BASE、3);

           ADCIntClear (ADC0_BASE、3);


       while (1)
       {
           ADCSequenceStepConfigure (ADC1_base、3、0、ADC_CTL_CH5 | ADC_CTL_IE | ADC_CTL_END);
           ADCIntClear (ADC1_BASE、3);
           ADCProcessorTrigger (ADC1_base、3);                 //触发 ADC 转换。
           while (!ADCIntStatus (ADC1_base、3、false)){}        //等待转换完成。
           ADCIntClear (ADC1_base、3);                     //清除 ADC 中断标志。
           ADCSequenceDataGet (ADC1_base、3、adcbuffer);               //读取 ADC 值。
           时基= adcbuffer[0];

           ADCSequenceStepConfigure (ADC1_base、3、0、ADC_CTL_CH4 | ADC_CTL_IE | ADC_CTL_END);
           ADCIntClear (ADC1_BASE、3);
           ADCProcessorTrigger (ADC1_base、3);                 //触发 ADC 转换。
           while (!ADCIntStatus (ADC1_base、3、false)){}            //等待转换完成。
           ADCIntClear (ADC1_base、3);                     //清除 ADC 中断标志。
           ADCSequenceDataGet (ADC1_base、3、adcbuffer);               //读取 ADC 值。
           triglvl = adcbuffer[0];

           ADCSequenceStepConfigure (ADC0_BASE、3、0、ADC_CTL_CH3 | ADC_CTL_IE | ADC_CTL_END);
           ADCIntClear (ADC0_BASE、3);
           ADCProcessorTrigger (ADC0_BASE、3);                 //触发 ADC 转换。
           while (!ADCIntStatus (ADC0_BASE、3、false){}            //等待转换完成。
           ADCIntClear (ADC0_BASE、3);                     //清除 ADC 中断标志。
           ADCSequenceDataGet (ADC0_BASE、3、ADCbuffer);               //读取 ADC 值。
           xpos = adcbuffer[0];

           对于(i=0;i<=100;i++)
           {
               ADCSequenceStepConfigure (ADC0_BASE、3、0、ADC_CTL_CH7 | ADC_CTL_IE | ADC_CTL_END);
               ADCIntClear (ADC0_BASE、3);
               ADCProcessorTrigger (ADC0_BASE、3);             //触发 ADC 转换。
               while (!ADCIntStatus (ADC0_BASE、3、false){}        //等待转换完成。
               ADCIntClear (ADC0_BASE、3);                 //清除 ADC 中断标志。
               ADCSequenceDataGet (ADC0_BASE、3、ADCbuffer);           //读取 ADC 值。
               adcdata1[i]= adcbuffer[0];

               ADCSequenceStepConfigure (ADC1_base、3、0、ADC_CTL_CH6 | ADC_CTL_IE | ADC_CTL_END);
               ADCIntClear (ADC1_BASE、3);
               ADCProcessorTrigger (ADC1_base、3);             //触发 ADC 转换。
               while (!ADCIntStatus (ADC1_base、3、false)){}        //等待转换完成。
               ADCIntClear (ADC1_base、3);                 //清除 ADC 中断标志。
               ADCSequenceDataGet (ADC1_base、3、adcbuffer);           //读取 ADC 值。
               adcddata2[i]= adcbuffer[0];
           }
       }

尊敬的女士/先生:

我正在尝试使用以下代码同时对两个信号进行采样、输入将位于 PE3和 PE2。 我打算监控采样值、CCS 曲线图是否是一个不错的选择? 我想实时观察它们、因为我打算稍后重构信号并对其执行 FFT。

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

    我能够观察到这些值、但它不是预期的输出。

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

    我不熟悉 CCS 图形功能、但如果您想实时观察这些值、我建议先从 UART 开始、并确保您获得所需的值。 在该说明中、我不确定您发布的图片是什么、因为它没有正确上传。

    对于图形化等、使用 GUI 通常更有意义、在这种情况下、GUI 可以获取 UART 数据并构建图形。

    不过、如果您想了解有关 CCS 图形的更多详细信息、则需要在 CCS 论坛中发帖、那里的专家可以为您提供帮助: e2e.ti.com/.../81