#include "headfile.h" #include "car_adc.h" unsigned int adc_get(uint32_t adc_periph, uint8_t adc_ch); float Kp = 0.2; float Ki = 0.5; float Kd = 0.5; double error = 0; double lastError = 0; ad_valu[0][i]= adc_get(ADC0, ADC_CH_10); ad_valu[1][i] = adc_get(ADC0, ADC_CH_11); ad_valu[4][i]= adc_get(ADC0, ADC_CH_12); ad_valu[5][i]= adc_get(ADC0, ADC_CH_13); ad_valu[6][i]= adc_get(ADC0, ADC_CH_15); error = ad_valu[0][i]+ad_valu[1][i] - ad_valu[5][i]- ad_valu[6][i]; double lastOutput = 0; double lastDeltaError=0; double deltaError = error - lastError; double integral=0; integral += error; double deltaOutput = Kp *error +Ki * integral + Kd * deltaError; lastError = error; error=0; motor_forward(right,1000+deltaOutput); motor_forward(left,1000-deltaOutput); } 为什么提示没有定义car_get
时间: 2024-04-18 09:23:50 浏览: 15
根据提供的代码,我们可以看到您调用了一个名为`adc_get()`的函数,但是在代码中并没有定义这个函数。提示错误“没有定义car_get”是因为编译器无法找到该函数的定义。要解决这个问题,您需要确保在代码中提供了`adc_get()`函数的定义或者在代码之前包含了正确的头文件以便引入该函数的定义。请确认是否有名为`adc_get()`的函数定义或者检查头文件是否正确引入。
相关问题
unsigned int adc_get(uint32_t adc_periph, uint8_t adc_ch);是否为对car_get的定义
不,`unsigned int adc_get(uint32_t adc_periph, uint8_t adc_ch);` 是对函数 `adc_get 的定义,而不是对 `car_get` 的。所以如果您在代码中使用 `car_get` 而没有定义它,那么编译器会提示 "undefined symbol" 错误。您需要确认是否存在名为 `car_get` 的函数的定义或者是否有可能是一个拼写错误。如果 `adc_get` 是您想要使用的函数,请确保函数的定义和声明是一致的。
unsigned int adc_get(uint32_t adc_periph, uint8_t adc_ch);是否为对adc_get的定义
是的,`unsigned int adc_get(uint32_t adc_periph, uint8_t adc_ch);` 是对函数 `adc_get` 的定义。在这个定义中,函数 `adc_get` 接受两个参数 `adc_periph` 和 `adc_ch`,返回一个 `unsigned int` 类型的值。由于这是函数的定义,所以在代码中使用 `adc_get` 时,编译器将会知道该函数的签名和返回类型。请确保函数的实现与其定义一致,以免引起编译错误。