Maybe try this instead:
Code:INCLUDE "modedefs.bas" 'Includes supoprt for PicBasic language @ DEVICE pic16F88, HS_OSC , CCPMX_ON DEFINE OSC 20 'use external 20mhz crystal PAUSE 100 ' start-up delay '///////////////////////// '// PIN configuration // '///////////////////////// DEFINE CCP1_REG PORTB 'Define output port of pulses out DEFINE CCP1_BIT 3 'Define output port of pulses out Define ADC_BITS 8 ' Set number of bits in result Define ADC_CLOCK 3 ' Set clock source (3=rc) Define ADC_SAMPLEUS 100 ' Set sampling time in uSec CMCON = 7 ' Disable analog comparator ANSEL = %00000010 ' set AN1 (RA1) as analog, others to digital ADCON1 = %00000000 ' Left justified results in 8 bits ADCON0 = %10000001 ' Configure and turn on A/D Module TRISB = %00000000 ' Set PORTB to all output TRISA = %11111111 ' Set PORTA to all input '/////////////////////////////////////////////// '// Variable Declaration and initialization // '/////////////////////////////////////////////// DutyCycle var byte 'Create adval to store result LastDutyCycle var byte 'hold last time around '////////////////////////// '// Program starts here // '////////////////////////// Mainloop: ADCON0.2 = 1 'Start Conversion ADCIN 1, DutyCycle 'analog pin 1 (RA1) get the 8 bit result pause 50 If dutycycle <> lastdutycycle then lastdutycycle = dutycycle HPWM 1,DutyCycle,10800 Endif GOTO Mainloop end




Bookmarks