c-Mikroc中的函数声明



我在Mikroc中编写了一个直流电机速度控制代码但在构建过程中,它会将错误作为所有变量的"未声明标识符"。有人能帮我代码中有什么问题吗。我用的是pic18f8722。我用Java编写过代码,但很少用c编写变量和函数的声明有问题吗??下面是代码。。。。

float pid(int actualOut){
    error=setPoint-actualOut;
    pOut=error*p;
    iOut=iOut+error*i;
    if(iOut>255)
        iOut=255;
    else if(iOut<0)
        iOut=0;
    dOut=(error-lastError)*d;
    out = pOut+iOut+dOut;
    lastError=error;
    if(out>255)
        out=255;
    else if(out<0)
        out=0;
    return out;
}
void pwm(short duty){
    short dutyCycle=duty;
    PWM1_Init(5000);
    PWM1_Start();
    PWM1_Set_Duty(dutyCycle);
    delay_ms(500);
}
Int feedback(){
    T0CON=0xC2;
    TMR0l=193;
    INTCON=0xA0;
    TMR1l=0;
    TMR1H=0;
    T1CON=0x87;
    s=1;
    while(s==1){}
    actualOut=(60*2*TMR1L)/24;
    return actualOut;
}
void interrupt(){
    T1CON=0x00;
    s=0;
}
void main() {
    float p=100,i=200,d=10;
    int setPoint=100,s=1;
    int actualOut=0;
    float pOut=0,iOut=0,dOut=0;
    float out=16;
    int error=0,lastError=0;
    short duty;
    TRISC = 1;
    TRISG = 0;

    while(1){
        float out = pid(actualOut);
        duty=(short)out;
        pwm(duty);
        int actualOut = feedback();
    }
}

由于使用PIC处理器,您应该阅读:http://www.microcontrollerboard.com/pic_interrupt.html详细介绍了如何设置中断处理程序等

http://ww1.microchip.com/downloads/en/AppNotes/00937a.pdf讨论了PIC 上PID软件的概念

http://www.microchip.com/wwwAppNotes/AppNotes.aspx?appnote=en020434其中包含适当的源代码和其他文档关于pic18f8722

源代码(在程序集中)显示需要使用某些.inc文件(#include文件)。

将部件文件转换为C文件的过程将是对C 编码的一次极好的复习

注意:这些文件太长,无法插入此处

您在#define和引脚分配等下面声明函数。对于函数pwm,您可以将其写成:

void pwm(short);

上面的声明可能会解决一些问题,但我仍在声明函数的返回类型。

最新更新