您好、
我正在使用 MSP430FR2311 微控制器... 10位 ADC
任何人都可以告诉我如何计算采样频率… ??
我何时可以实现200ksps 的最大转换速率...?
Wright 现在我已经配置了 ADC... 时钟= MODOSC
采样时间= 16个 ADC10CLK 周期
REF:1.5VREF + VSS (内部基准)
分辨率:10位
现在、我仅实现了23.86kSPS
我已附上我的代码... 如果有任何错误,请通知我… 谢谢大家
我的代码:
int main (void) { P1DIR |= BIT0; //配置 ADC A1引脚 P1SEL0 |= BIT1; P1SEL1 |= BIT1; PM5CTL0 &=~LOCKLPM5; //配置 ADC10 ADCCTL0 |= ADCSHT_2 | ADCON; // ADCON、S&H=16 ADC 时钟 ADCCTL1 |= ADCSHP; // ADCCLK = MODOSC;采样定时器 ADCCTL2 |= ADCRES; // 10位转换结果 ADCMCTL0 |= ADCINCH_1 | ADCSREF_1; // A1 ADC 输入选择;Vref=1.5v ADCIE |= ADCIE0; //启用 ADC 转换完成中断 //配置参考 PMMCTL0_H = PMMPW_H; //解锁 PMM 寄存器 PMMCTL2 |= INTREFEN; //启用内部基准 __delay_cycles (400); //基准趋稳延迟 while (1) { ADCCTL0 |= ADCENC | ADCSC; //采样和转换开始 _bis_SR_register (GIE); // LPM0、ADC_ISR 将强制退出 } } // ADC 中断服务例程 #if defined (__TI_Compiler_version__)|| defined (__IAR_systems_ICC__) #pragma vector=adc_vector __interrupt void adc_isr (void) #elif defined (__GNU__) void __attribute__((interrupt (adc_vector))))) adc_isr #else error 编译器#void (void)! #endif { switch (__evo_in_range (ADCIV、ADCIV_ADCIFG)) { 案例 ADCIV_NONE: 中断; ADCIV_ADCOVIFG 案例: 中断; 案例 ADCIV_ADCTOVIFG: 中断; ADCIV_ADCHIIFG 案例: 中断; ADCIV_ADCLOIFG 案例: 中断; ADCIV_ADCINIFG 案例: 中断; 案例 ADCIV_ADCIFG: P1DIR ^= BIT0; 中断; 默认值: 中断; }