' Define ADCIN parameters DEFINE OSC 4 start: INCLUDE "modedefs.bas" DEFINE ADC_BITS 10 ' Set number of bits in result DEFINE ADC_CLOCK 3 ' Set clock source (3=rc) DEFINE ADC_SAMPLEUS 50 ' Set sampling time in uS TRISA = %11111111 ' Set PORTA to all input TRISB = %00000000 TRISC = %00000000 TRISD = %00000000 ADCON1 = %10000010 ' Set PORTA analog and right justify result PAUSE 500 ' Wait .5 second ADCLightvar VAR WORD ' Create variable to store result ADCSOUNDVar VAR WORD pitchvar VAR WORD CLEAR main: 'ADCIN 0, ADCLightvar ' Read channel 0 to adval ADCIN 0, ADCSOUNDVar ' Read channel 0 to adval ADCIN 0, ADCLightvar pitchvar = ADCSOUNDVar * 14 FREQOUT portc.5, 40, pitchvar IF ADCLightvar <= 50 THEN HIGH portb.7 ELSE LOW portb.7 ENDIF IF ADCLightvar <= 100 THEN HIGH portb.6 ELSE LOW portb.6 ENDIF IF ADCLightvar <= 150 THEN HIGH portb.5 ELSE LOW portb.5 ENDIF IF ADCLightvar <= 200 THEN HIGH portb.4 ELSE LOW portb.4 ENDIF IF ADCLightvar <= 250 THEN HIGH portb.3 ELSE LOW portb.3 ENDIF IF ADCLightvar <= 300 THEN HIGH portb.2 ELSE LOW portb.2 ENDIF IF ADCLightvar <= 350 THEN HIGH portb.1 ELSE LOW portb.1 ENDIF IF ADCLightvar <= 400 THEN HIGH portc.4 ELSE LOW portc.4 ENDIF IF ADCLightvar <= 450 THEN HIGH portd.7 ELSE LOW portd.7 ENDIF IF ADCLightvar <= 500 THEN HIGH portd.6 ELSE LOW portd.6 ENDIF IF ADCLightvar <= 550 THEN HIGH portd.5 ELSE LOW portd.5 ENDIF IF ADCLightvar <= 600 THEN HIGH portd.4 ELSE LOW portd.4 ENDIF IF ADCLightvar <= 650 THEN HIGH portd.3 ELSE LOW portd.3 ENDIF IF ADCLightvar <= 700 THEN HIGH portd.2 ELSE LOW portd.2 ENDIF IF ADCLightvar <= 750 THEN HIGH portd.1 ELSE LOW portd.1 ENDIF IF ADCLightvar <= 800 THEN HIGH portd.0 ELSE LOW portd.0 ENDIF IF ADCLightvar <= 850 THEN HIGH portc.3 ELSE LOW portc.3 ENDIF IF ADCLightvar <= 900 THEN HIGH portc.2 ELSE LOW portc.2 ENDIF IF ADCLightvar <= 950 THEN HIGH portc.1 ELSE LOW portc.1 ENDIF IF ADCLightvar <= 950 THEN HIGH portc.0 ELSE LOW portc.0 ENDIF SEROUT2 PORTC.6, 16468, [DEC ADCLightvar, 13, 10] ' print it to serial out, ' with linefeed and carriage return (10, 13) GOTO main ' Do it forever