MSP430程序

MSP430程序,第1张

ADC12CTL0 &= ~ENC//关闭转换允许位,进行ADC初始化设置

P6SEL = 0x7F //管脚功能选择成ADC

ADC12CTL0=ADC12ON+MSC+SHT0_2+REFON+REF2_5V//打开ADC内核/连续采样/采样率设置/打开内部参考电压源/选择2.5V参考电压

ADC12CTL1 = SHP+CONSEQ_1 //采样信号来自采样定时器/序列通道单次转换模式

ADC12MCTL0 = INCH_0+SREF_1 //通道0/参考电压源选择内部参考电压

ADC12MCTL1 = INCH_1+SREF_1

ADC12MCTL2 = INCH_2+SREF_1

ADC12MCTL3 = INCH_3+SREF_1

ADC12MCTL4 = INCH_4+SREF_1

ADC12MCTL5 = INCH_5+SREF_1

ADC12MCTL6 = INCH_6+SREF_1+EOS//EOS序让雀列转换结束

ADC12IE = 0x40 //使能ADC中断

ADC12CTL0 |= ENC//允许转换

ADC12CTL0 |= ADC12SC//消滑亮开始转换

_EINT() //全局中断使能 }

interrupt[ADC_VECTOR] void ADC12ISR (void)

{

results[0] = ADC12MEM0 //将通拿宽道0采样结果读出,赋给RESULTS数组

results[1] = ADC12MEM1

results[2] = ADC12MEM2

results[3] = ADC12MEM3

results[4] = ADC12MEM4

results[5] = ADC12MEM5

results[6] = ADC12MEM6

IE2|=UCA0RXIE//开接收使能

这行 *** 作没变吗?可能性有几个,第一是你看寄存器值的时间不对,要在这条指令做完,也就是游标已经移到下一条指令时,才能看到IE2的变化;第二是,|= *** 作是只改埋扒败变UCA0RXIE对应位的此仔,只有相关的位改变,弯颤而如果原来就已经是这个值,它就不会发生改变。

OUT_7模式应该是到搏漏CCR1的时候复位然后到CCR0的时候置位触发中断。

你的CCR1和CCRO只是差了1.不解。难道因为1就忽略不计了么?

所以周期是(1/375)*(1/32768).默认的32768HZ.

你的触发AD是不是孙枝在TB的中断函数里,

CCRO,CCR1是个值,程序运行后,TBR开则银敏始计数,增计数模式下到CCRO产生CCIFG0.然后CCRO计数到0,产生TBIFG,产生中断。书上是这么说的。所以不是计数到CCR1触发的中断。我的认为。

你的程序也没说是什么计数模式。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12459775.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存