1、
unsigned int ADC_buff0[6]={0,0,0,0,0,0};//缓冲区定义
unsigned int ADC_buff1[6]={0,0,0,0,0,0};//缓冲区定义
2、
void ADC_vaule()
{
CHS1=0;
CHS0=0;
delay_10us();delay_10us();delay_10us();delay_10us();
GODONE=1;//选择通道后经过几个us的延时,供单片机进行AD采集然后打开转换开关开始转换
while(!ADIF);//等待转换结束
while(GODONE);
ADC_location0=ADRESH;
ADC_location0=(ADC_location0<<8)+ADRESL;//ADFM=1,右对齐。读取转换结果当前值
ADC_buff0[0]=ADC_location0;
AN0_data=Average_ADC_buff(ADC_buff0);//转换结果平均值 程序停在此处
ADIF=0;
}
3、
unsigned int Average_ADC_buff(unsigned int *p)
{
unsigned int m,average=0;
unsigned int Temporary_Buffer[6]={0,0,0,0,0,0};//排序用缓冲区
unsigned char a,b;
for(a=0;a<6;a++) //将专用数据缓冲区内容拷贝到临时缓冲区
{
Temporary_Buffer[a]=*(p+a); //程序停在此处
}
……
}
以前正常运行的程序,现在修改了一下就不能正常运行了,经过测试程序停在了红色字体行。其中1是变量定义。3子函数被2调用。程序停在3子函数的红色字体行。分析应该是Temporary_Buffer[6]的问题 但是不知道问题出在哪。求指教! |