Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 3634

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

$
0
0
在用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 Overflow
                break;
        case SD24BIV_SD24TRGIFG:            // SD24 Trigger IFG
                break;
        case SD24BIV_SD24IFG0:              // SD24MEM0 IFG
                break;
        case SD24BIV_SD24IFG1:              // SD24MEM1 IFG
                break;
        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;
}


Viewing all articles
Browse latest Browse all 3634

Trending Articles