430中为什么在AD中断中ADC12IFG一直为1,即使在中断中读完数据也不清0,一直在执行中断采集?跳不出中断?

作者&投稿:丙视 (若有异议请与网页底部的电邮联系)
为什么msp430 ADC12转换时显示的数据一直在变化~

因为被测的信号未必是稳定的,而且ADC自身受电源以及参考源波动的影响,都会产生变化,通常,ADC的末位有1-2位的跳动是正常的,MSP430也是如此,所以12位的ADC有效精度最多只有11位,一些差的ADC跳动甚至达到3位,就是说,16位的ADC一般只有13、4位是有效的。
针对这种问题,可以配置过采样,就是说对同一个源重复采样N次,比如16次,然后再取平均就可以了。

中断产生的时候,CPU会自动进入相应的中断服务程序,如果需要开发者确定到底是那一种中断发生(也就是说多种中断对应了一个中断向量,你就需要判断到底是哪个中断发生),这个时候就要用到IFG标识位,通过读取IFG标识来确定是哪一种中断。MSP430在进入中断时就把总中断GIE关掉,如果你不人为的打开GIE,是不会有中断嵌套的。

主程序是空的当然进不去,你再次AD转换应该能进,主循环里放ADC12CTL0 |= ADC12SC;
不需要自己清除采样中断标志!! MSP430的ADC模块具有16个采样通道,中断使能寄存器的16位分别用于使能和关闭对应通道的中断功能。中断标志寄存器ADC12IFG的16位分别对应16个采样通道,当对应通道采样结束后,采样结果存于相应的ADC12MEMx中后,相应的中断标志位被置位,待读取采样结果ADFC12MEMx后,采样中断标志位被硬件自动清零!! 因此,在发生采样中断后,必须读取采样结果(同时自动清除采样中断标志),然后才能继续进行采样!

msp430我不太了解,不过你的问题我可以告诉你,中断是有一个管脚,这个管脚在AD转换完成后ADC12中有个寄存器叫ADC12IFG,里面16位对应每一个ADC12,Vzscug

一直为1是因为一直有数据进行转换或者数据转换还没有完成,又或者是它是一个多源中断需要你手动清楚


...若角C=30度,D为AC上一点,DB垂直BC,已知AD:DC=1:2,求tan角ABD。(要...
因为角C=30度 DB垂直BC 所以bd\/dc=1\/2 因为AD:DC=1:2 所以ad=bd 因为角bdc=60=角dab+角dba 所以角abd=30 所以tan角abd=根号3\/3 要好评

为什么∵△adc中,∠c=90∘,∠dac=30∘,∴ad=2cd=2x,
本题主要考查解直角三角形的应用和等腰三角形的性质。因为∠C=90∘,∠ABC=60∘,所以∠A=90∘−60∘=30∘,因为BD平分∠ABC,所以∠CBD=∠ABD=12∠ABC=30∘,所以∠A=∠DBA,所以BD=AD=6,所以CD=BDsin∠CBD=6×sin30∘=3。故 ...

在等腰三角形ABC中,AD是底边上的中线,三角形ABC的周长为36厘米,三角...
解:C△ABC=AB+AC+BC=36cm C△ABD=AB+AD+BD=30cm ∵BD=1\/2BC,AB=AC ∴C△ABC =AB+AC+BC =2AB+2BD =36cm ∴AB+BD=18cm ∴AD=30cm-18cm=12cm

在三角形ABC中AB=AC,AD是中线,三角形ABC的周长为34厘米,三角形ABD...
三角形ABC的周长=AB+AC+BC 因为AD是中线 所以ABC的周长=AB+AC+BD+CD 三角形ABD的周长=AB+AD+BD 三角形ACD的周长=AC+AD+CD=AB+AD+BD 2倍的三角形ABD周长=60 (60-34)\/2=13

已知在三角形ABC中,角B=30度,AD是BC边上的高,AC与AD的夹角为15度,求...
因∠B=30° 且AD是BC边上的高 所以 ∠ADB=90° 所以∠BAD=60° 若三角形ABC是锐角三角形 则∠BAC=∠BAD+∠DAC=60°+15°=75° 若三角形ABC是钝角三角形 则∠BAC=∠BAD-∠DAC=60°-15°=45° 所以∠=75°或45° 望采纳

如图,在ΔABC中,∠B=30º,AD是BC边上的高线,AE平分∠BAD,BE=2,求DE...
在ΔABC中,∠B=30º,AD是BC边上的高线 所以AD\/AB=1\/2,AE平分∠BAD,所以DE\/EB=AD\/AB=1\/2,BE=2,所以DE=1.

在半圆中AOB中,AD=DC 角CAB等于30度 AC等于2倍根号3 求 AD
解:连接OD;∵D是AC的中点,∴OD垂直平分AC;∴∠AOD=90°-∠CAB=60°;又∵OA=OD,∴△OAD是等边三角形;∴OA=AD;Rt△ABC中,∠CAB=30°,AC=23;∴AB=ACcos30°=4,OA=2;即:AD=OA=2.故AD的长为2.

为什么在AD里对人员设置进行了调整,比如部门,但是在Exchange里却不能自...
你说的是Outlook中看不到刚更新的信息吧?那是因为Exchange通讯簿服务不是随时收集信息的,每天一次,可以手工强制。不做的话,第二天就能同步到了

如图,在△ABC中,AB=AC,∠BAD=30°,AE=AD,则∠EDC=__
设∠EDC=x, ∠B=∠C=y ∠AED=∠EDC+∠C=x+y 又因为AD=AE, 所以∠ADE=∠AED=x+y 则∠ADC=∠ADE+∠EDC=2x+y 又因为∠ADC=∠B+∠BAD 所以 2x+y=y+30 解得x=15 所以∠EDC的度数是15度

如图,△ABC中,∠C = 30°,AC =4 cm ,点D在AC上,且AD =1 cm,点E是BC...
易证明A'E=AE,所以A'D=AE+DE。由于两点之间直线最短,所以A'D为AE+DE的最小值。因为∠C=30°,AC=4cm,所以AF=A'F=2cm。因为DG⊥A'A,BC⊥A'A,所以∠ADG=30°。因为AD=1cm,所以AG=0.5cm,DG=根号3\/2cm,A'G=A'A-AG=3.5cm。因为△DGA'为直角三角形,所以DG²+A'G&...

英吉沙县18312117399: 430中为什么在AD中断中ADC12IFG一直为1,即使在中断中读完数据也不清0,一直在执行中断采集?跳不出中断? -
隗曲甲磺: 主程序是空的当然进不去,你再次AD转换应该能进,主循环里放ADC12CTL0 |= ADC12SC; 不需要自己清除采样中断标志!! MSP430的ADC模块具有16个采样通道,中断使能寄存器的16位分别用于使能和关闭对应通道的中断功能.中断标志寄存器ADC12IFG的16位分别对应16个采样通道,当对应通道采样结束后,采样结果存于相应的ADC12MEMx中后,相应的中断标志位被置位,待读取采样结果ADFC12MEMx后,采样中断标志位被硬件自动清零!! 因此,在发生采样中断后,必须读取采样结果(同时自动清除采样中断标志),然后才能继续进行采样!

英吉沙县18312117399: 有关msp430中AD转换时有一个寄存器
隗曲甲磺: 430上,ADC10SA是16位的数据寄存器,ADC10DTC1是控制寄存器ADC10DTC1 = 0x01或者ADC10DTC1 = 0x0;

英吉沙县18312117399: MSP430采样中断后为什么要清除中断标志位 -
隗曲甲磺: 不需要自己清除采样中断标志!! MSP430的ADC模块具有16个采样通道,中断使能寄存器的16位分别用于使能和关闭对应通道的中断功能.中断标志寄存器ADC12IFG的16位分别对应16个采样通道,当对应通道采样结束后,采样结果存于相应的ADC12MEMx中后,相应的中断标志位被置位,待读取采样结果ADFC12MEMx后,采样中断标志位被硬件自动清零!! 因此,在发生采样中断后,必须读取采样结果(同时自动清除采样中断标志),然后才能继续进行采样!

英吉沙县18312117399: msp430中断 -
隗曲甲磺: MSP430中,不同的型号拥有不同的硬件配置,因此中断源也有所差别,TIMER1_A0_VECTOR表示定时器1 A0的中断源,1代表硬件上的定时器,有定时器0 定时器1等;A0代表定时器n内的A0寄存器,通常会有A0 A1等,他们都计数源都来自同一个定时器,但对计数源的数据可以进行不同的处理,从而产生不同的中断.

英吉沙县18312117399: MSP430的USART串口通信中断和ADC12转换中断设置顺序影响吗 -
隗曲甲磺: 这个有个优先级的问题,我估计你是在ADC12_INIT,没有进行中断标识清零处理,你再查看一下你有没有进行清零处理,个人认为你设置清零后应该转换顺序不会有你说的情况出现,还有就是然后你在确定一下总的中断使能要打开——EINT()要打开……

英吉沙县18312117399: 中断ADC12中断服务程序里面只放 - EINT();会中断溢出不能解决,但再加一句,即可.....要加什么语句? -
隗曲甲磺: 你好,以下是单片机实践团为您解答:1、MSP430的中断默认不支持嵌套的,嵌套中断你懂的吧:就是一个中断发生的时候另外一个高优先级的中断到来的时候会进入高优先级的中断,并保护现场等待结束再继续之前的中断.2、你说中断ADC12中断服务程序里面只放_EINT();会中断溢出不能解决,是什么意思.我猜你是没有清中断标志的缘故吧,仔细检查下.3、msp430默认进入中断之前已经_DINT();了这个代码你看不到的,所以他不能够在中断里面再次中断.4、有问题随时hi我.

英吉沙县18312117399: stm32中adc转换里有一句是ADC1 - >CR2|=1<<0,我知道是开启AD转换,这句话该怎么理解呢? -
隗曲甲磺: ADC1是ADC1的一个结构体的指针,里面的成员就是与ADC1相关的寄存器地址.CR2就是一个寄存器的地址,类似于*(volatile unsigned int *)的结构,将其bit0写1.具体你需要看STM32的数据手册.应该有个ADC1的寄存器Control register2.

英吉沙县18312117399: 关于MSP430单片机的ADC寄存器的问题,在头文件里的ADC12CTL1中定义了CONSEQ0,CONSEQ1和CONSEQ - 0 -
隗曲甲磺: 以下是单片机实践团为您解答:1、#define ADC12CONSEQ0 (0x0002u) /* ADC12 Conversion Sequence Select Bit: 0 */#define ADC12CONSEQ1 (0x0004u) /* ADC12 Conversion Sequence Select Bit: 1 */2、#define ADC12CONSEQ_0 (0*2u) ...

英吉沙县18312117399: 为什么在使用msp430的ADC12采样出来的数据不能进行运算? -
隗曲甲磺: 主程序是空的当然进不去,你再次AD转换应该能进,主循环里放ADC12CTL0 |= ADC12SC; 不需要自己清除采样中断标志!! MSP430的ADC模块具有16个采样通道,中断使能寄存器的16位分别用于使能和关闭对应通道的中断功能.中断标志寄存器ADC12IFG的16位分别对应16个采样通道,当对应通道采样结束后,采样结果存于相应的ADC12MEMx中后,相应的中断标志位被置位,待读取采样结果ADFC12MEMx后,采样中断标志位被硬件自动清零!! 因此,在发生采样中断后,必须读取采样结果(同时自动清除采样中断标志),然后才能继续进行采样!

英吉沙县18312117399: msp430F149里,AD采样点数怎么设置? -
隗曲甲磺: 你用定时器产生一个2.5ms间隔的中断,在中断中启动ADC采样,就可以了. 是发一次指令采一次吗?还是发一次就一直采?如果是前者,在指令解析函数中软件触发就可以了.后者就在指令解析函数中初始化定时器,并开启.然后产生2.5ms间隔的中断,在中断中启动ADC采样.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网