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

MSP430F5438A 程序跑飞问题

程序再运行一段时间后会异常跑飞,通过在线调试,发向程序再disassembly里一直是在0xA000000    jim   0xA000000,出现问题的操作是:
LED_Ctrl(CTRL_24V,ON);

Get_M26_Volt();

LED_Ctrl(CTRL_24V,OFF);

当只有Get_M26_Volt();时不跑飞,当只有LED_Ctrl时也不回跑飞,但是当同时执行时就会跑飞

另外补充一点,中断使可以正常进入的(定时器中断和IO中断) 

灰小子:

楼主你好,能贴出这两个函数的具体代码吗?

Lion chang:

回复 灰小子:

void Get_M26_Volt(void)
{u8 i=0;u32 average;u16 AD_value[8][5];//AD_value[N][M]N:通道M:次数ADC12CTL0|=ADC12ENC;//ADC12使能Delay_ms(1000);//AD采集采集5次,求平均值for(i=0;i<5;i++){ADC12CTL0 |= ADC12SC;//启动转换while (!(ADC12IFG & BIT7));AD_value[0][i] = ADC12MEM0;AD_value[1][i] = ADC12MEM1;AD_value[2][i] = ADC12MEM2;AD_value[3][i] = ADC12MEM3;AD_value[4][i] = ADC12MEM4;AD_value[5][i] = ADC12MEM5;AD_value[6][i] = ADC12MEM6;AD_value[7][i] = ADC12MEM7;}ADC12CTL0 &= ~ADC12ENC;//ADC12失能for(i=0;i<8;i++){//计算平均值average= (AD_value[i][0]+AD_value[i][1]+AD_value[i][2]+AD_value[i][3]+AD_value[i][4])/5;gParam.run_Param.analog[i] = (u16)((average*VREF)/4095);}
}
void LED_Ctrl(unsigned char name,unsigned char on_off)
{/************判断输入参数有效性************************/if(name > 2){return;}if(on_off!=0 && on_off!=1){return;}if(on_off == 0){switch (name){case 0:P9OUT &= ~BIT2;break;case 1:P6OUT &= ~BIT3;break;case 2:P4OUT &= ~BIT3;break;default:break;}}else{switch (name){case 0:P9OUT |= BIT2;break;case 1:P6OUT |= BIT3;break;case 2:P4OUT |= BIT3;break;default:break;}}
}

以上是这两个函数的代码下面是ADC初始化的代码

void ADC_Init(void)
{ADC12CTL0&=~ADC12ENC;//ADC12设置为初始状态,只有ENC为0时才能修改器参数REFCTL0 &= ~REFMSTR;// Reset REFMSTR to hand over control toADC12CTL0 |= ADC12ON + ADC12MSC + ADC12SHT0_2 + ADC12SHT1_2;//内置ADC打开选择多路采样模式ADC采样保持时间ADC12CTL0 |= ADC12REFON+ADC12REF2_5V;//内置参考电压开,内置参考电压2.5VADC12CTL1 = ADC12SHP+ADC12SSEL_3+ADC12CONSEQ_1;//取样信号来源,AD采样时钟序列通道单次转换模式ADC12MCTL0 = ADC12SREF_1+ADC12INCH_7;//内置参考负电压,AD通道选择ADC12MCTL1 = ADC12SREF_1+ADC12INCH_6;//内置参考负电压,AD通道选择ADC12MCTL2 = ADC12SREF_1+ADC12INCH_5;//内置参考负电压,AD通道选择ADC12MCTL3 = ADC12SREF_1+ADC12INCH_4;//内置参考负电压,AD通道选择ADC12MCTL4 = ADC12SREF_1+ADC12INCH_15;//内置参考负电压,AD通道选择ADC12MCTL5 = ADC12SREF_1+ADC12INCH_14;//内置参考负电压,AD通道选择ADC12MCTL6 = ADC12SREF_1+ADC12INCH_13;//内置参考负电压,AD通道选择ADC12MCTL7 = ADC12SREF_1+ADC12INCH_12+ADC12EOS;//内置参考负电压,AD通道选择序列结束
}

 

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F5438A 程序跑飞问题
分享到: 更多 (0)