void Another_Read_ADC(void) { static int i, j, k, temp; for(i = 0; i < 5; i++) // 8??? { for(j = 0; j < 4; j++) { for(k = 0; k < 4-j; k++) { if(ad_valu[QAD[i]][k] > ad_valu[QAD[i]][k+1]) // ????????,????? { temp = ad_valu[QAD[i]][k+1]; ad_valu[QAD[i]][k+1] = ad_valu[QAD[i]][k]; ad_valu[QAD[i]][k] = temp; } } } } } for(i = 0; i < 5; i++) { adsum[QAD[i]] = ad_valu[QAD[i]][1] + ad_valu[QAD[i]][2] + ad_valu[QAD[i]][3]; ad_valu1[QAD[i]] = adsum[QAD[i]] / 3; } for(i = 0; i < 3; i++) // { AD_V[0][i] = AD_V[0][i + 1]; AD_V[1][i] = AD_V[1][i + 1]; AD_V[4][i] = AD_V[4][i + 1]; AD_V[5][i] = AD_V[5][i + 1]; AD_V[6][i] = AD_V[6][i + 1]; }提示错误,怎么修改
时间: 2023-10-12 15:04:48 浏览: 77
STC IAP15F2K61S2单片机i2c 接口PCF8591-ADC实验+DAC实验 KEIL例程源码+开发板硬件原理图
根据您提供的代码,错误信息可能是因为在函数 `Another_Read_ADC` 定之后直接出现循环语句,而 C 语言不允许在函数定义之后直接出现其他语句。要解决这个问题,您可以将循环语句放置在一个函数内部或者在主函数(`main` 函数)中进行调用。
以下是修改后的代码示例:
```c
void Another_Read_ADC(void)
{
static int i, j, k, temp;
for(i = 0; i < 5; i++) // 8个通道
{
for(j = 0; j < 4; j++)
{
for(k = 0; k < 4-j; k++)
{
if(ad_valu[QAD[i]][k] > ad_valu[QAD[i]][k+1]) // 前面的大于后面的,则进行交换
{
temp = ad_valu[QAD[i]][k+1];
ad_valu[QAD[i]][k+1] = ad_valu[QAD[i]][k];
ad_valu[QAD[i]][k] = temp;
}
}
}
}
}
int main() {
int i;
for(i = 0; i < 5; i++)
{
adsum[QAD[i]] = ad_valu[QAD[i]][1] + ad_valu[QAD[i]][2] + ad_valu[QAD[i]][3];
ad_valu1[QAD[i]] = adsum[QAD[i]] / 3;
}
for(i = 0; i < 3; i++)
{
AD_V[0][i] = AD_V[0][i + 1];
AD_V[1][i] = AD_V[1][i + 1];
AD_V[4][i] = AD_V[4][i + 1];
AD_V[5][i] = AD_V[5][i + 1];
AD_V[6][i] = AD_V[6][i + 1];
}
Another_Read_ADC(); // 调用 Another_Read_ADC 函数
// 其他代码...
return 0;
}
```
在修改后的代码中,我将循环语句放置在了 `main` 函数中,并在需要使用 `Another_Read_ADC` 函数时进行调用。
请根据您的实际需求,在适当的位置调用 `Another_Read_ADC` 函数,并确保 `QAD` 数组和其他相关变量都已正确定义和初始化。
如果您仍然遇到问题,请提供更多有关错误信息和上下文的详细信息,以便我可以更好地帮助您解决问题。
阅读全文