微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MSP430学习笔记(4)ADC12

MSP430学习笔记(4)ADC12

时间:11-27 来源:互联网 点击:

  1. mes-0为单次转换,1为多次转换,
  2. ucharTube-0为单通告转换,1为多通道转换
  3. ucharn-待转换的通道(只有在Tube为0的时候有用)
  4. ucharV-0为内部参考电压,1为外部参考电压
  5. //返回值:无
  6. //功能:完成ADC12Init的初始化
  7. *************************************************************************/
  8. voidADC12Init(ucharTimes,ucharTube,ucharn,unsignedcharv)
  9. {
  10. if(Tube==0)//单通道转换
  11. {
  12. if(v==0)
  13. {
  14. ADC12CTL0=ADC12ON+SHT0_8+MSC+REFON+REF2_5V;//使用内部电压,打开ADC12内核,8分频,内部参考电压2.5V
  15. ADC12MCTL0=SREF_0;//使用内部电压,参考位为AVCC和AVSS
  16. }
  17. if(v==1)
  18. {
  19. ADC12CTL0=ADC12ON+SHT0_8;//使用外部电压,打开ADC12内核,8分频
  20. ADC12MCTL0=SREF_2;//使用外部电压,参考为为VeREF+和AVSS
  21. }
  22. if(Times==0)ADC12CTL1=SHP+CONSEQ_0;//单通道单次转换,采样信号来自采样定时器
  23. if(Times==1)ADC12CTL1=SHP+CONSEQ_2;//单通道多次转换,采样信号来自采样定时器
  24. switch(n)//选择通道
  25. {
  26. case0:ADC12MCTL0|=INCH_0;break;
  27. case1:ADC12MCTL0|=INCH_1;break;
  28. case2:ADC12MCTL0|=INCH_2;break;
  29. case3:ADC12MCTL0|=INCH_3;break;
  30. case4:ADC12MCTL0|=INCH_4;break;
  31. case5:ADC12MCTL0|=INCH_5;break;
  32. case6:ADC12MCTL0|=INCH_6;break;
  33. case7:ADC12MCTL0|=INCH_7;break;
  34. }
  35. ADC12IE=n;//使能待转换通道的中断
  36. ADC12CTL0|=ENC;//开启软件使能
  37. }
  38. if(Tube==1)//多通道转换
  39. {
  40. if(v==0)
  41. {
  42. ADC12CTL0=ADC12ON+SHT0_8+MSC+REFON+REF2_5V;//使用内部电压,打开ADC12内核,8分频,内部参考电压2.5V
  43. ADC12MCTL0=SREF_0;//使用内部电压,参考位为AVCC和AVSS
  44. }
  45. if(v==1)
  46. {
  47. ADC12CTL0=ADC12ON+SHT0_8;//使用外部电压,打开ADC12内核,8分频
  48. ADC12MCTL0=SREF_2;//使用外部电压,参考为为VeREF+和AVSS
  49. }
  50. if(Times==0)ADC12CTL1=SHP+CONSEQ_1;//多通道单次转换,采样信号来自采样定时器
  51. if(Times==1)ADC12CTL1=SHP+CONSEQ_3;//多通道多次转换,采样信号来自采样定时器
  52. ADC12IE=0xff;//使能待转换通道的中断
  53. ADC12CTL0|=ENC;//开启软件使能
  54. }
  55. }


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top