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

用CCS仿真MSP430F6733的SD24_B功能时总是出现No source available for "0x4" 的错误

在用CCS6.1仿真MSP430F6733的SD24_B的功能时,总是出现No source available for "0x4" 的错误,然后仿真就跑不了了。
在出现错误之前,24bit AD转换出来的结果都是对的。
无论是用我自己的程序还是TI给的例程,都有这种错误出现。
请问是什么原因呢?是软件,还是CCS仿真设置,还是硬件上的问题啊?
下面贴上我的SD24_B的代码

void initSD24_B(void)
{
	SD24BCTL0 = SD24DIV0 | SD24PDIV1 | SD24SSEL_1;		// Select external REF, SMCLK as SD24_B Clock Source

	SD24BCCTL0 = SD24ALGN | SD24SCS_4;			// Continue Conversion, Left-aligned, Group 0
	SD24BCCTL1 = SD24ALGN | SD24SCS_4;			// Continue Conversion, Left-aligned, Group 0
	SD24BCCTL2 = SD24ALGN | SD24SCS_4;			// Continue Conversion, Left-aligned, Group 0

	SD24BIE = SD24IE2;			// Enable channel 2 interrupt

	START_SD24_B						// Set bit to start conversion
}

unsigned int g_SD24_B0Results[SD24_B_SIZE];
unsigned int g_SD24_B1Results[SD24_B_SIZE];
unsigned int g_SD24_B2Results[SD24_B_SIZE];
unsigned int g_SD24_BIndex = 0;
volatile int g_SD24_BFlag;

int getSD24_BFlag(void)					{ return g_SD24_BFlag; }
void setSD24_BFlag(int flag){ g_SD24_BFlag = flag; }
unsigned int * getSD24_B0Result(void)  	{ return &g_SD24_B0Results[0]; }
unsigned int * getSD24_B1Result(void){ return &g_SD24_B1Results[0]; }
unsigned int * getSD24_B2Result(void)	{ return &g_SD24_B2Results[0]; }

#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=SD24B_VECTOR
__interrupt void SD24BISR(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(SD24B_VECTOR))) SD24BISR (void)
#else
#error Compiler not supported!
#endif
{
	unsigned int result;switch (SD24BIV){case SD24BIV_SD24OVIFG:// SD24MEM Overflowbreak;case SD24BIV_SD24TRGIFG:// SD24 Trigger IFGbreak;case SD24BIV_SD24IFG0:// SD24MEM0 IFGbreak;case SD24BIV_SD24IFG1:// SD24MEM1 IFGbreak;case SD24BIV_SD24IFG2:// SD24MEM2 IFG
		if((g_SD24_BIndex) >= SD24_B_SIZE)
		{
			g_SD24_BIndex = 0;
			g_SD24_BFlag = SD24_B_FLAG_FINISH;
			__bic_SR_register_on_exit(LPM0_bits | GIE);
		}	if(g_SD24_BFlag == SD24_B_FLAG_EXCUTE)	{
				g_SD24_B0Results[g_SD24_BIndex] = SD24BMEMH0; 	// Save CH0 results (clears IFG)
				g_SD24_B1Results[g_SD24_BIndex] = SD24BMEMH1; 	// Save CH1 results (clears IFG)
				g_SD24_B2Results[g_SD24_BIndex] = SD24BMEMH2; 	// Save CH2 results (clears IFG)
				g_SD24_BIndex++;	}	else	{		result = SD24BMEMH0;		result = SD24BMEMH0;		result = SD24BMEMH0;	}break;}SD24BIFG = 0;
}

Hardy Hu:

你好:

仅用例程会有问题没有?

你是指仿真到哪个位置时出的错?从你给的信息上看,很像开了中断,被触发后没有中断服务函数。

Jianyang Qin:

回复 Hardy Hu:

仅用例程也会出错。也是一样的No source available的错误,但有时候不是0x4,而是0x4000或者其他的数值

SD24_B的中断服务函数我上面应该写了吧,SD24_B中断是进了,有几分钟的时间是可以正常工作的

灰小子:

回复 Jianyang Qin:

好奇怪,为啥是0x4这个地址?看看哪里用到这个地址?

rujun chen:

请问楼主解决了吗/我也遇到同样的问题了。

赞(0)
未经允许不得转载:TI中文支持网 » 用CCS仿真MSP430F6733的SD24_B功能时总是出现No source available for "0x4" 的错误
分享到: 更多 (0)