我在通过AD采集到一个数组(长度768)的数据时,想将这个数组的值重新赋给另一个数组,但在我赋值完成后,不仅目标数组值没有赋值正确,且原数组里的值也发生变化。通过调试发现,当我赋值到一定数目时,即完成N个数的赋值之后,每进行一次赋值,目标数组和原数组的值都会发生错误的变化,这是什么原因?下面是我的代码,就是一个简单的赋值运算
for(i=0; i<ADC_BUFF_LEN; i++){data[i] = ADC_BUFF_Ana[i+Index*ADC_BUFF_LEN];}Index = (Index+1)%3;for(i=0; i<ADC_BUFF_LEN; i++){data[i+ADC_BUFF_LEN] = ADC_BUFF_Ana[i+Index*ADC_BUFF_LEN];}Index = (Index+1)%3;for(i=0; i<ADC_BUFF_LEN; i++){data[i+2*ADC_BUFF_LEN] = ADC_BUFF_Ana[i+Index*ADC_BUFF_LEN];}for(i=0; i<3*ADC_BUFF_LEN; i++){data[i] = ADC_BUFF_Ana[i+Index*ADC_BUFF_LEN];}
user6378692:
这个问题我刚刚调试了一下,发现是两个数组中有重复的地址,就导致了对一个数组赋值就会使另一个数组的值变化,如果我想定义两个没有地址重复的数组,我该怎么办?这里一个数组是全局变量,另一个只是函数里面声明的。
,
Susan Yang:
您可以使用DATA_SECTION 给变量分配固定地址
具体可以参考
www.ti.com/…/spnu151r.pdf
5.10.8 The DATA_SECTION Pragma
TI中文支持网




