TI中文支持网
TI专业的中文技术问题搜集分享网站

28335 ADC初始化程序问题 InitAdc(); 有问题

我用ccs6做了一个ADC采集程序,在烧写调试模式的时候是能够运行的,但是下载模式的时候,程序在运行到 InitAdc(); 时候就卡那了,我单步执行发现是 InitAdc(); 里面的 DELAY_US(ADC_usDELAY);  有问题,运行到这一步他自动跳到下面这个非法ISR中去了,然后死循环了

interrupt void ILLEGAL_ISR(void) // Illegal operation TRAP
{
// Insert ISR Code here

// Next two lines for debug only to halt the processor here
// Remove after inserting ISR Code
asm(" ESTOP0");
for(;;);

}

lu lu2:

回复 Eric Ma:

是的,没有在RAM中运行,改一下就好了,谢谢!不过现在有个新问题,就是,我的ADC采集数据右移四位之后为什么不准确,0V输入,显示RESULT0是800多,加电压发现还不线性啊

我用ccs6做了一个ADC采集程序,在烧写调试模式的时候是能够运行的,但是下载模式的时候,程序在运行到 InitAdc(); 时候就卡那了,我单步执行发现是 InitAdc(); 里面的 DELAY_US(ADC_usDELAY);  有问题,运行到这一步他自动跳到下面这个非法ISR中去了,然后死循环了

interrupt void ILLEGAL_ISR(void) // Illegal operation TRAP
{
// Insert ISR Code here

// Next two lines for debug only to halt the processor here
// Remove after inserting ISR Code
asm(" ESTOP0");
for(;;);

}

lu lu2:

回复 Hardy Zhou:

嗯,你说的对,改好了,谢谢!不过我ADC采集数据不准确,0V输入右移四位后显示800多,太偏了,加压后发现也不线性,这是怎么回事那

我用ccs6做了一个ADC采集程序,在烧写调试模式的时候是能够运行的,但是下载模式的时候,程序在运行到 InitAdc(); 时候就卡那了,我单步执行发现是 InitAdc(); 里面的 DELAY_US(ADC_usDELAY);  有问题,运行到这一步他自动跳到下面这个非法ISR中去了,然后死循环了

interrupt void ILLEGAL_ISR(void) // Illegal operation TRAP
{
// Insert ISR Code here

// Next two lines for debug only to halt the processor here
// Remove after inserting ISR Code
asm(" ESTOP0");
for(;;);

}

Eric Ma:

回复 lu lu2:

导入历程C:\ti\controlSUITE\device_support\f2833x\v141\DSP2833x_examples_ccsv5\adc_soc

先用历程跑一下先。

ERIC

我用ccs6做了一个ADC采集程序,在烧写调试模式的时候是能够运行的,但是下载模式的时候,程序在运行到 InitAdc(); 时候就卡那了,我单步执行发现是 InitAdc(); 里面的 DELAY_US(ADC_usDELAY);  有问题,运行到这一步他自动跳到下面这个非法ISR中去了,然后死循环了

interrupt void ILLEGAL_ISR(void) // Illegal operation TRAP
{
// Insert ISR Code here

// Next two lines for debug only to halt the processor here
// Remove after inserting ISR Code
asm(" ESTOP0");
for(;;);

}

lu lu2:

回复 Eric Ma:

也是800多,不知道怎么回事,输入就是0V啊,好惆怅

我用ccs6做了一个ADC采集程序,在烧写调试模式的时候是能够运行的,但是下载模式的时候,程序在运行到 InitAdc(); 时候就卡那了,我单步执行发现是 InitAdc(); 里面的 DELAY_US(ADC_usDELAY);  有问题,运行到这一步他自动跳到下面这个非法ISR中去了,然后死循环了

interrupt void ILLEGAL_ISR(void) // Illegal operation TRAP
{
// Insert ISR Code here

// Next two lines for debug only to halt the processor here
// Remove after inserting ISR Code
asm(" ESTOP0");
for(;;);

}

Hardy Zhou:

回复 lu lu2:

建议采用官方的例程,使用示波器或者万用表测试下芯片ADC管脚处的电压值,然后对比ADC的采样结果,确定硬件是否ok先

我用ccs6做了一个ADC采集程序,在烧写调试模式的时候是能够运行的,但是下载模式的时候,程序在运行到 InitAdc(); 时候就卡那了,我单步执行发现是 InitAdc(); 里面的 DELAY_US(ADC_usDELAY);  有问题,运行到这一步他自动跳到下面这个非法ISR中去了,然后死循环了

interrupt void ILLEGAL_ISR(void) // Illegal operation TRAP
{
// Insert ISR Code here

// Next two lines for debug only to halt the processor here
// Remove after inserting ISR Code
asm(" ESTOP0");
for(;;);

}

lu lu2:

回复 Hardy Zhou:

还是不行,八个AD口的数据都不一样

我用ccs6做了一个ADC采集程序,在烧写调试模式的时候是能够运行的,但是下载模式的时候,程序在运行到 InitAdc(); 时候就卡那了,我单步执行发现是 InitAdc(); 里面的 DELAY_US(ADC_usDELAY);  有问题,运行到这一步他自动跳到下面这个非法ISR中去了,然后死循环了

interrupt void ILLEGAL_ISR(void) // Illegal operation TRAP
{
// Insert ISR Code here

// Next two lines for debug only to halt the processor here
// Remove after inserting ISR Code
asm(" ESTOP0");
for(;;);

}

Eric Ma:

回复 lu lu2:

如果这样子,你要检查一下你的硬件原理图,

C:\ti\controlSUITE\development_kits\~controlCARDs\CC2833xHWdevPkg

去对比一下。

ERIC

赞(0)
未经允许不得转载:TI中文支持网 » 28335 ADC初始化程序问题 InitAdc(); 有问题
分享到: 更多 (0)