历史上的今天
今天是:2024年10月29日(星期二)
2019年10月29日 | MSP430 AD 单通道单次转换
2019-10-29 来源:eefocus
今天学了一下msp430 ad转换,编程ad单通道单次转换。
首先顺一下思路:
adc12 :单通道单次转换流程,开了adc12on 后,shs (选择输入信号源)= 0,ENC上跳,adc12sc 上跳, 开始采样,经过采样保持时间,转换成功,值放在adc12MEMx中。发生中断,adcifg置位,读取后adc12mem 后,自动复位。
相关寄存器:
ADC12CTL0 : SHT0_2 + ADC12ON
设置采样保持时间,打开内核
ADC12CTL1 : SHS(DEFAULT) ,SHP(1) 定时器,
ADC12CTL0:ENC,ADC12SC 置位
while(1)
{
ADC12SC 置位;
diaplay(转换数据);
}
interrupt()
{
read ADC12MEM0;
}
参考程序:
#include #define uchar unsigned char #define uint unsigned int uchar table[16] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar position[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; uchar count=1,count1=0,i,j; uchar temp,result[4],index ; void show(uchar pos,uchar num) { P4OUT = 0x00; // tobe all turn off P6OUT |= 0x40; // DUAN open P4OUT = table[num]; //DUAN NUM P6OUT &= 0XBF; // DUAN close P4OUT = 0XFF; P5OUT |= 0X20; P4OUT &= position[pos]; P5OUT &= 0XDF; } void delayms(uint t) { uint i; while(t--) for(i=110;i>0;i--);//进过参数的调整 } //******************单通道单次转换***********/ void init_adc() { P6SEL |= 0X01; ADC12CTL0 = SHT0_2 + ADC12ON; ADC12CTL1 = SHP; ADC12CTL0 |=ENC; ADC12IE =0X01; ADC12CTL0 |= ADC12SC; } void change() { uchar i=0; while(temp) { result[4-i++] = temp%10; temp /= 10; } } void display() { uchar i; for(i=0;i<4;i++) { show(i,result[i]); delayms(2); } } void main(void) { WDTCTL = WDTPW + WDTHOLD; P6DIR |= BIT2; P6OUT |= BIT2; _EINT(); init_adc(); P6DIR |= 0X40; // p6^6 output P5DIR |=0X20; // P5^5 OUTPUT P4DIR = 0XFF; // P4 OUTPUT while(1) { ADC12CTL0 |= ADC12SC; //BEGAIN TRANSFER change(); display(); } } #pragma vector = ADC12_VECTOR __interrupt void adc12(void) { temp = ADC12MEM0; }
史海拾趣
|
信息产业部邮电工业产品质量监督检验中心移动通信手持机电池的市场空间巨大,但假冒伪劣电池泛滥成灾,用废旧电池芯生产的劣质电池在外观结构上不易被识破,这种电池不但容量不足、寿命短,而且对手持机的损害非常大,安全隐患严重。劣质充电器的线 ...… 查看全部问答> |
|
mobile c++关于关机事件 mobile c++ 程序正在运行,长按power键让mobile手机关机,关机事件能响应到程序中吗?我的程序是用其所callback回调函数机制...… 查看全部问答> |
|
MLCC贴片电容如何选型(参考资料) MLCC(片状多层陶瓷电容)现在已经成为了电子电路最常用的元件之一。MLCC表面看来,非常简单,可是,很多情况下,设计工程师对MLCC的认识却有不足的地方 ...… 查看全部问答> |
|
1电路原理图中电阻的注释为:0603-10K/J什么意思啊,我知道0603是封装。。。10K/J什么意思啊? 2 看电路原理图时,怎么知道电容是陶瓷电容还是钽电容呢?… 查看全部问答> |
|
小弟初学STM32,现想用定时器TIM1产生带死区的互补PWM脉宽 来驱动全桥逆变,之前是用调死区来调节占空比,但是这样占空比只能调节一点点,才几微妙,肯定各位大哥大姐指点一下,一个项目卡在这边折腾了好多天了。。 ...… 查看全部问答> |




