Jag har en 10k Ohm Linjär pot kopplad till AN1 på PICen (pinne 1 --> +5V, Pinne 2 --> AN1, Pinne 3 --> 0V) samt åtta lysdioder med 100 Ohm motstånd i serie med varje till hela PortB.
Sen såklart +5V till VDD och 0V till VSS samt en 100nF kondensator mellan.
Nu vad som händer:
När jag vrider på poten så ska datan speglas rakt ut på LED'arna. Men när jag vrider, så ungefär halva varvet närmst jord ger ingenting alls på LED'arna, och sedan andra hälften ger hela skalan 0-255, men det går fortare och fortare, som att poten va logaritmisk.
Någon som varit med om något liknande?

Jag har resistansmätt poten, och det ger ett linjärt värde, har även testat med andra pottar (Annan 10k ohm, en 5k ohm samt en 25k ohm) och alla ger samma resultat.
Kod:
Kod: Markera allt
list p=16f886
#include <p16f886.inc>
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V
cblock 0x20
Delay1
endc
org 0
Start
bsf STATUS,RP0
clrf TRISB
movlw b'10000000'
movwf TRISA
movlw b'00000000'
movwf ADCON1
bsf STATUS,RP1
movlw b'00000010'
movwf ANSEL
bcf STATUS,RP0
bcf STATUS,RP1
movlw b'01000101'
movwf ADCON0
Main
call Delay
bsf ADCON0,GO
btfsc ADCON0,GO
goto $-1
movfw ADRESH
movwf PORTB
goto Main
Delay
Delayloop
decfsz Delay1
goto Delayloop
Return
END