msp430工作笔记二
}
// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{
}
上面的例子是把存储结果存储在了uint型的数组中。也可以用指针直接指定要存放的地址,然后再用指针进行访问(理论上可以,但还没有试过)。也可以把存储结果直接存放在一个16位的寄存器中,如:
ADC10SA = (unsigned int)&TACCR1;
一般是50Hz,100Hz,1000Hz。方法是在交流信号的一个周期内采样多次(如40次,30次等),然后利用公式可以求出交流信号的有效值,平均值等。
ADC的A10通道接片上的温度传感器,MSP430内嵌的温度传感器实际上就是一个输出电压随环境温度而变化的温度二极管。
当使用片上温度传感器时,采样周期必须大于30us
进行校准。选择片上温度传感器INCH_10,ADC其他的设置都和外部通道的设置相同,包括参考电压源的选择和转换存储的选择
选择了片上温度传感器,会自动地打开片上参考电压源发生器作为温度传感器的电压源,但是这并不会时能VREF+输出,也不会
影响AD转换参考源的选择,转换参考源的选择和其他通道的选择相同
公式为:VTEMP=0.00355(TEMPC)+0.986
片上温度传感器的校准,可以参见我的温度传感器校准程序,也可以参考其他的论文。下面只给出程序的一部分:
void ADC_init()
{
ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // ADC10ON, interrupt enabled 参考电压选默认值VCC和VSS
//采样保持时间为16 x ADC10CLKs,ADC开,中断使能
ADC10CTL1 = INCH_10;
//其他是默认,采样触发输入源选择为ADC10SC,采样输入信号不翻转,转换时钟选择内部时钟源:ADC10OSC,3.7~6.3MHz
//不分频,单通道单次转换
//ADC10AE0 |= 0x02;
//P1DIR |= 0x01;
}
(五),通用串行通信接口(USCI)
#include
unsigned char rev;
char *string1="Helloworld!";
char string2[]="Get it!\n";
void putchar(unsigned char c)
{
while (!(IFG2&UCA0TXIFG));
UCA0TXBUF = c;
}
void putstr(char *s)
{
IE2 &= ~UCA0RXIE;
while((*s)!=\0)
{
putchar(*s);
// putchar(\n);
s++;
}
IE2 |= UCA0RXIE;
}
void main(void)
{
//
//
//
//
msp430工作笔 相关文章:
- msp430工作笔记3(11-13)
- msp430工作笔记4(11-13)
- MSP430 工作笔记一(转)(11-13)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)