已经做了相应的修改。。。
#include <msp430.h>
//#include <in430.h>
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
ADC12CTL0 = SHT0_2 + ADC12ON; // Set sampling time, turn on ADC12
ADC12CTL1 = SHP; // Use sampling timer
ADC12IE = 0x01; // Enable interrupt
ADC12CTL0 |= ENC; // Conversion enabled
ADC12MCTL0 =INCH_1;
P6SEL |= 0x02; // P6.0 ADC option select
P4DIR |= 0x01; // P1.0 output
ADC12CTL0 |=ADC12SC;
_EINT();
for (;;)
{
ADC12CTL0 |= ADC12SC; // Sampling open
_BIS_SR(CPUOFF + GIE); // LPM0, ADC12_ISR will force exit
}
}
// ADC12 interrupt service routine
#pragma vector=ADC12_VECTOR
__interrupt void ADC12_ISR (void)
{
if (ADC12MEM1 < 0x7FF)
P4OUT &= ~0x01; // Clear P1.0 LED off
else
P4OUT |= 0x01; // Set P1.0 LED on
_BIC_SR_IRQ(CPUOFF); // Clear CPUOFF bit from 0(SR)
}
我的开发板电位器接的是P6.1,八个发光二极管接的是P4口,好像连中断都进不去
Eric Fu:
你好,
中断函数中的“if(ADC12MEM1<0x7FF)” 改成if(ADC12MEM0<0x7FF) 试试能否得到你要的效果。
jianbo qin:
回复 Eric Fu:
这个试过了,还是不行。。。。
Xutong Han2:
你先用仿真器看程序是否可以跳进ADC中断服务子程序中,如果可以跳入中断,再去查看ADC12MEM1中的值是否和你测量的模拟值对应。
jianbo qin:
回复 Xutong Han2:
debug protocol灰色的,现在连仿真器都用不了。用的是XP。。
Shi JianHua:
回复 jianbo qin:
不会这么难吧,在xp下使用iar4.11没问题,首先编译环境可以排除,我现在就是这个环境。再有,我但是就是用ti的历程调试,可以的,如果不成功,考虑ad启动后的等待延时是否足够。
jianbo qin:
回复 Shi JianHua:
你的电位器也是接在P61吗?感觉也没什么难的,可惜就是困扰了好几天。。。。
仿真器坏了。。。。
jianbo qin:
回复 Xutong Han2:
用jtag硬件调试,无法进入中断。。。
Shi JianHua:
回复 jianbo qin:
苦命的人,我当时直接采8路。一次采出。你还没调试成功,郁闷呐。
jianbo qin:
回复 Shi JianHua:
已经弄好了,但是是在单通道多次采集模式下完成的
单通道单次采集不知道是什么问题。。。。。