嗨我有控制我的4servos功能的问题。我想要使用此代码来运行,但它不起作用。
volatile float servo1;
variable= uart_getchar();
_delay_ms(100);
variable=variable/10;
servo1=variable;
sprintf(bufor,"Servo_1= %4.1f\n",servo1);
uart_puts(bufor);
当这个代码不在函数中时,一切正常,伺服工作正常。问题在于我这样做:
void get(float Servo, char Number)
{
variable= uart_getchar();
_delay_ms(100);
variable=variable/10;
Servo=variable;
sprintf(bufor,"Serwo_%c= %4.1f\n",Number,Servo);
uart_puts(bufor);
}
当我打电话给get(servo1,'1');
时,伺服器一直停留在同一个地方......任何想法有什么不对?
答案 0 :(得分:1)
如果要更改传递给函数的变量,则必须使用pointers。
基本上它是这样用的:
void f(int* x){
*x = 5;
}
int main() {
int y = 7;
f(&y);
printf("%i\n", y);
return 0;
}
简而言之,&
获取变量的地址,*
获取地址的值