PIC24H POT输入控制LED闪烁延迟不是线性的

时间:2013-04-08 03:09:47

标签: c microcontroller led analog-digital-converter

您好我正在使用PIC24H微处理器,我写了一个简单的程序,它使用模拟输入从POT获取输入,然后将其设置为延迟的模数值。它似乎设置了延迟,但从左到右的进展似乎是随机的和不一致的。帮助太棒了!谢谢!

int main (void){
    AD1CON1bits.ADON=0;
    AD1CON1=0x00E0;
    AD1CON1bits.AD12B=1;
    AD1CON3=0x8000;
    AD1CON2=0x8000;
    AD1CHS0=0x0000;
    AD1CON1bits.ADON=1;

    int wtdState;
    int delay;
    int temp;

// Set Analog Input Pin
    _CN2PUE=0;
    _TRISA0=1;
    _PCFG0=0;

//Set Digital Output Pins
    _ODCB15=0;
    _TRISB15=0;
    _LATB15=0;

    _ODCB14=0;
    _TRISB14=0;
    _LATB14=1;

    while(1){

    wtdState = _SWDTEN;
    _SWDTEN=1;
    AD1CON1bits.SAMP=1;
    Nop();
    while(!AD1CON1bits.DONE){}

    _SWDTEN = wtdState;

    temp = ADC1BUF0;
    delay = temp%225+25;

    __delay_ms(delay);
    _LATB15=1;
    __delay_ms(delay);
    _LATB15=0;
    }
}

1 个答案:

答案 0 :(得分:2)

似乎通过采用mod你会使噪音显着,也许你应该分开。