主题中讨论的其他器件:TM4C123
工具/软件:Code Composer Studio
大家好、
我正在尝试使用 CPU 计时器控制 ADC 触发。
我的时钟设置为80MHz
"SysCtlClockSet (SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHz | SYSCTL_OSC_MAIN);"
我尝试以1MHz 的频率触发计时器 int
"TimerLoadSet (TIMER0_BASE、TIMER_A、SysCtlClockGet ()/80);"
SysCtlClockSet (SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHz | SYSCTL_OSC_MAIN);//时钟设置为80MHz //SysCtlClockSet (SYSCTL_OSC_MAIN); //初始化 ADC SysCtlPeripheralEnable (SYSCTL_Periph_GPIOE);// ADC 输入引脚 SysCtlPeripheralEnable (SYSCTL_Periph_ADC0);//ADC 外设 SysCtlPeripheralEnable (SYSCTL_Periph_TIMER0); 用于 ADC 通道的//引脚 GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_3);//设置通道1的 GPIO_E3 ADCSequenceConfigure (ADC0_BASE、3、ADC_TRIGGER_TIMER、0);//序列发生器0 ADCSequenceStepConfigure (ADC0_BASE、3、0、ADC_CTL_CH0 | ADC_CTL_IE | ADC_CTL_END); TimerConfigure (TIMER0_BASE、TIMER_CFG_PERIODICASE); TimerLoadSet (TIMER0_BASE、TIMER_A、SysCtlClockGet ()/80);//1MHz TimerEnable (TIMER0_BASE、TIMER_A); TimerControlTrigger (TIMER0_BASE、TIMER_A、TRUE); ADCSequenceEnable (ADC0_BASE、3); ADCIntEnable (ADC0_BASE、3); while (1) { TimerEnable (TIMER0_BASE、TIMER_A); ADCIntClear (ADC0_BASE、3); ADCIntEnable (ADC0_BASE、3); //ADCIntClear (ADC0_BASE、3); while (!ADCIntStatus (ADC0_BASE、3、0)); ADCSequenceDataGet (ADC0_BASE、3、&value); ADCIntDisable (ADC0_BASE、3); if (i<2048) { Data0[i++]=值; } }
这是正确的方法吗?
如何检查计时器的触发频率?
我尝试使用 ADC 输出填充2048尺寸的数组-我的 ADC 输入是由频率为100KHz 的函数发生器生成的正弦波
因此、理想情况下、每个正弦周期应具有10个样本。 因此、每个周期在数组中应占据10个位置。 整个2048个数组应包含204个"理想"正弦周期。 这不是发生的。
我很困惑我是否以1MHz 的频率触发 ADC?:(