导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→有关msp430f149 adc12频率问题请教[guest]

 *第12646篇: 有关msp430f149 adc12频率问题请教

  
楼 主:guest 2003年5月26日12:02
 有关msp430f149 adc12频率问题请教
-------以下是我对adc12频率的理解----------
ADC12CTL0=SHT1_8+SHT0_8+MSC+ADC12ON 
ADC12CTL1=SHS_0+SHP+ADC12DIV_1+ADC12SSEL_2+CONSEQ_3 

因ADC12SSEL_2=MCLK=8Mhz,ADC12DIV_1=2,SHT1_8=64
每次采样时间为:
T(sample)=4*SHT1*(ADC12DIV/ADC12SSEL)
故T(sample)=4*64*(2/8000000)=0.000064(s)
每次转换时间为:
T(convert)=13*(ADC12DIV/ADC12SSEL)
故T(convert)=13*(2/8000000)=0.00000325(s)

故采样/转换频率为
f=1/(T(sample)+T(convert))=1/(0.000064+0.00000325)=14869(hz)
------------------------------------------
---------以下是我的部分程序------
adc12设置始下:
  ADC12CTL0&=~ENC;  //关闭adc12转换允许位
  ADC12CTL1=SHS_0+SHP+ADC12DIV_1+ADC12SSEL_2+CONSEQ_3; 
  ADC12CTL0 = SHT0_8+SHT1_8+MSC+ADC12ON8; //开adc12内核,多次采样转换
  ADC12MCTL0 = INCH_0;                  // ref+=AVcc, channel = A0
  ADC12MCTL1 = EOS+INCH_0;                  // ref+=AVcc, channel = A0
  ADC12IE = 0x0003;                       // Enable ADC12IFG.0~ADC12IFG.1
  ADC12CTL0 |= ENC;                     // 使能ADC12转换允许位
  ADC12CTL0 |= ADC12SC;                 // 开始转换
中断处理程序中如下:
 ADtemp1=0;
 ADtemp1=ADtemp1+ADC12MEM0;  // Move results, IFG is cleared
 ADtemp1=ADtemp1+ADC12MEM1;  // Move results, IFG is cleared
 
----------问题如下---------
请教大虾,按以上所设,因为在中断处理程序中是连续读取ADC12MEM0和ADC12MEM1的,
1.是不是每个ADC12MEMx转换完就会发生中断进入中断服务程序??
2.如果是ADC12MEM0转换结束后而ADC12MEM1还未转换就进入中断,那在读ADC12MEM1时值应该是错的??
3.如果中断服务程序的处理时间较长,如超过T(sample)+T(convert),
  是否会对采样频率有影响??或者中断服务程序不会完整执行完??


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:[讨论]共同开发2.4G(DSSS)无线网络,找软件高手参加!!!

[下一篇主题]:求助