gpt4 book ai didi

c - 如何从一个变量中提取更多值(value)

转载 作者:行者123 更新时间:2023-11-30 20:37:38 25 4
gpt4 key购买 nike

从我的“for”循环的结果来看,已经存储了四个值。如何提取该值以显示该值(sprintf)?

请参阅随附的图像文件。

Extrac value in ADC1BUF0

这里是代码:

for( a = 4; a < 5; a = a++ )
{
AD1CHS0bits.CH0SA = a ; //select which ANI connect to channel 0
AD1CHS0bits.CH0NA = 0 ; //vref as channel 0 -ve input
AD1CON1bits.ADON = 1 ;
AD1CON1bits.SAMP = 1 ;
__delay32(50) ;
AD1CON1bits.SAMP = 0 ; //sampling bit to 0
while(!AD1CON1bits.DONE);
result = ADC1BUF0 ;
}

这是我的 sprinf 代码:

           sprintf(lala,"test: %d, %d, %d, %d\r\n",result);
sendString(lala);
__delay32(20000);

谢谢

问候,纳齐夫

最佳答案

如果我理解正确的话,你基本上已经:

for( a = 4; a < 5; a = a++ )
{
/* code to sample one channel and store
* the result in "result" */
}

...您希望对四个 channel 中的每一个进行采样,然后尝试使用以下命令打印所有四个结果:

sprintf(lala,"test: %d, %d, %d, %d\r\n",result);
sendString(lala);
__delay32(20000);

首先,您的循环当前仅执行一次迭代(将 a = a++ 更正为 a++ 后),其中 a 等于 4. 。您似乎需要它从 0 循环到 3(对于 AN0-AN3):

for ( a = 0; a < 4; a++ )

此外,result 一次仅保存一个值。每次循环时,赋值都会用新值替换旧的 result 值 - 它不会向 result 添加第二个、第三个等值,而是将它改变了 result 所保存的一个值。因此,您需要要么有四个单独的变量(例如数组的 4 个元素),要么对循环中的每个值执行所需的操作,以便在读取下一个值之前完成它。使用数组,您可能会:

int results[4];

/* ... */

for( a = 0; a < 4; a++ )
{
/* ... */
results[a] = ADC1BUF0;
}

/* ... */

sprintf(lala,"test: %d, %d, %d, %d\r\n",
results[0],results[1],results[2],results[3]);
sendString(lala);
__delay32(20000);

关于c - 如何从一个变量中提取更多值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32218945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com