历史上的今天
今天是:2024年09月06日(星期五)
2019年09月06日 | msp430ADC程序
2019-09-06 来源:eefocus

上图是ADC的内部工作原理图,通过这个图,我们可以知道430有16个转化通道,16个转化结果寄存器和16个控制寄存器
其中ADC12MEMX与ADC12MCTLX是一一对应的,但是要注意的一点是通道Ax并不与ADC12MEMX相对应,也就是说A1的转化结果不一定非得放到ADC12MEM1当中,
ADC12MCTLX中的INCHx可以确定ADC12MEMX存放哪个通道的转化结果。
下面附一个单通道单次转化的程序:
#include #include"lcd.h" void int2charsLcdshow(int value); void DelayXms(unsigned int i); //delay about x ms void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT // LcdReset(); //LCD1602³õʼ»¯ ADC12CTL0 = SHT0_2 + ADC12ON; // ÉèÖòÉÑù±£³ÖµÄʱ¼äΪ8¸ö£¨4n¸ö£©Ê±ÖÓÖÜÆÚ£¬´ò¿ªADC12 ADC12CTL1 = SHP; // ʹÓòÉÑù¶¨Ê±Æ÷¾ö¶¨²ÉÑùʱ¼ä ADC12IE = 0x01; // ADC12CTL0 |= ENC; // ADת»¯Ê¹ÄÜ P6SEL |= BIT0; // P6.0 ×÷ΪADת»¯µÄA0 P2DIR |= BIT0; // P1.0 output for (;;) { DelayXms(500); ADC12CTL0 |= ADC12SC; // ¿ªÊ¼×ª»¯ _BIS_SR(CPUOFF + GIE); // LPM0, ADC12_ISR will force exit } } // ADC12 interrupt service routine #pragma vector=ADC_VECTOR __interrupt void ADC12_ISR (void) { // int2charsLcdshow(ADC12MEM0); if (ADC12MEM0 < 0x7FF) //×î´óÖµÊÇ0xFFF£¬ÔòËüµÄÒ»°ë¾ÍÊÇ0x7FF P2OUT &= ~0x01; // Clear P1.0 LED off else P2OUT |= 0x01; // Set P1.0 LED on _BIC_SR_IRQ(CPUOFF); // Clear CPUOFF bit from 0(SR) } void int2charsLcdshow(int value){ int bits=0,ten = 0,hundred = 0,thousand = 0; //ÕâËÄλ·Ö±ð´æ´¢¸ö¡¢Ê®¡¢°Ù¡¢Ç§Î»¡£ thousand = value/1000; hundred = value%1000/100; ten = value%100/10; bits = value%10; Disp1Char(0,0,thousand+'0'); Disp1Char(1,0,hundred+'0'); Disp1Char(2,0,ten+'0'); Disp1Char(3,0,bits+'0'); } void DelayXms(unsigned int i){ unsigned int j; for( ; i>0; i--){ for(j=0;j<200;j++); } }
上一篇:MSP430切换主时钟
史海拾趣
|
实验室,最常用的示波器,大家很熟悉了,但有谁知道示波器也有使用范围和使用方向的问题,比如数电,模电实验用的示波器常是低频的,在通信,高频实验室用的示波器才是频率很大的示波器,下面讲示波器的知识吧。 什么样的示波器适合你? 示 ...… 查看全部问答> |
|
我想在ARM-Linux上做图形界面,是用Qt做简单还是MiniGUI做简单? 来自EEWORLD合作群:arm linux fpga 嵌入0(49900581) 群主:wangkj 我以前只在没有操作系统的单片机上写过程序,用C写的,还没学过C++.不知道以上哪个入门简单啊?… 查看全部问答> |
|
我现在有一个35M的nk.bin文件,想下到FLASH上,可总是不能下载,之前大于30M后,串口会给出“无效映像”的消息,后来改了EBOOT的一个参数后,倒是不出现这个消息了,但还是不能下载,EBOOT好像是卡在VerifyChecksum这个函数就不动了,想请问各位高 ...… 查看全部问答> |
|
遥控是TC9012,它采用的38kHz的载波(一个载波周期35us),载波占空比1/3,经过调制后发送波形是9ms的引导码(前4.5ms由载波构成,后4.5ms是载波关断)和33bit的数据构成。比特1是0.56ms的载波和1.69ms的载波关断构成,比特0是0.56ms的载波和0.565ms的 ...… 查看全部问答> |
|
在做片选或是别的问题的时候遇到过延时问题。我用的是 for (s=0;s<50;s++); 或 for (s=0;s<50;s++) { 。 。 。 。 } 我想问的是这个时间间隔怎么 来算,不用定时器,就只是一个简单的时间延时 谢谢!!… 查看全部问答> |




