MSP430 ADC10中断进不去,帮帮忙看看程序

anne82820 2008-10-13 12:02:41
我的程序如下
void main()
{
ADC10CTL0 &= ~ ENC; //在改变设置前停止转换
ADC10CTL0 = ADC10ON + ADC10SHT_2 + MSC + ADC10IE; //打开内核,采样保持时间,中断允许
ADC10CTL0 = SREF_4 + REFON; //参考电平设置
ADC10CTL1 = CONSEQ_2+ADC10SSEL_2; //单通道多次转换,时钟源
ADC10DTC1 = 0x02;
ADC10AE0 = 0x01; //使能A0
ADC10SA = (INT16U)A0_result; //A0通道值放入A0_result中
while(ADC10CTL0 & ADC10BUSY); //判断是否有其他的转换
ADC10CTL0 |= ENC + ADC10SC; //开始转换
_BIS_SR(GIE);

}

#pragma vector = ADC10_VECTOR
__interrupt void ADC_ISR(void)
{
INT8U channel;
INT8U i;
INT16U value1;

if(ADC10IFG & ADC10CTL0 == ADC10IFG) //有中断请求
{
//数据处理
}
}

为什么我的中断进不去,各位高手帮忙看看,很急
...全文
784 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
anne82820 2008-10-14
  • 打赏
  • 举报
回复
我用的430 2232的 我有四个通道,每个通道设置为单通道多次转换,四个通道之间的切换是通过调用一个功能函数切换的。
zyzhang365 2008-10-14
  • 打赏
  • 举报
回复
这种东西还是自己看文档吧,不知道lz使用什么样的单片机。

一般会有个寄存器用来配置是连续采样,还是逐个采样。
anne82820 2008-10-14
  • 打赏
  • 举报
回复
中断进去了。
另一个问题,我四个通道模拟输入都不一样,为什么我采样出来,四个通道的采样值都一样呢,很奇怪
zyzhang365 2008-10-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 anne82820 的帖子:]
我的程序如下
void main()
{
ADC10CTL0 &= ~ ENC; //在改变设置前停止转换
ADC10CTL0 = ADC10ON + ADC10SHT_2 + MSC + ADC10IE; //打开内核,采样保持时间,中断允许
ADC10CTL0 = SREF_4 + REFON; //参考电平设置
ADC10CTL1 = CONSEQ_2+ADC10SSEL_2; //单通道多次转换,时钟源
ADC10DTC1 = 0x02;
ADC10AE0 = …
[/Quote]

ADC10CTL0 / ADC10CTL1 后面的赋值把前面的覆盖了吧。
zyzhang365 2008-10-13
  • 打赏
  • 举报
回复
ADC10CTL0 = ADC10ON + ADC10SHT_2 + MSC + ADC10IE; //打开内核,采样保持时间,中断允许
ADC10CTL0 = SREF_4 + REFON; //参考电平设置


到此 ADC10CTL0 = SREF_4 + REFON;
前面的设置(ADC10CTL0 = ADC10ON + ADC10SHT_2 + MSC + ADC10IE;)可能已经不起作用了。

第二行应该用或运算符吧
ADC10CTL0 = ADC10ON + ADC10SHT_2 + MSC + ADC10IE; //打开内核,采样保持时间,中断允许
ADC10CTL0 |= SREF_4 + REFON; //参考电平设置
anne82820 2008-10-13
  • 打赏
  • 举报
回复
什么覆盖了,,说清楚点

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧