L A B 7 C O D E
T A L K I N G T O M I D I D E V I C E
DEFINE osc 20 DEFINE ADC_BITS 10 DEFINE ADC_CLOCK 3 DEFINE ADC_SAMPLEUS 15 DEFINE HSER_RCSTA 90h DEFINE HSER_TXSTA 20h DEFINE HSER_BAUD 31250 TRISA = %11111111 ' SET PORTA to all input ADCON1 = %10000010 ylLED var portd.1 note var byte ADCVAR var word pitch VAR BYTE(12) OUTPUT ylLed ' Initialize by blinking HIGH ylLEd PAUSE 300 LOW ylLED PAUSE 300 HIGH ylLEd PAUSE 300 LOW ylLED PAUSE 300 HIGH ylLEd PAUSE 300 LOW ylLED PAUSE 300 HIGH ylLED 'initialize pitch array pitch(0) = 60 'middle C pitch(1) = 61 'C# pitch(2) = 62 'D pitch(3) = 63 'D# pitch(4) = 64 'E pitch(5) = 65 'F pitch(6) = 66 'F# pitch(7) = 67 'G pitch(8) = 68 'G# pitch(9) = 69 'A pitch(10) = 70 'A# pitch(11) = 71 'B main: ' READ in pot value - ADCIN 0, ADCVAR '' PREVIOUS TRIAL - TEST RANGE OF POT 'serout2 portc.6, 16468, ["ADC VAR = ", DEC ADCVAR, 13, 10] ' RANGE = 0 to 1023 'CONVERT hardcoded pot range to note Note = ADCVAR/100 'play note hserout[$90, pitch(note), $40] pause 250 hserout[$90, pitch(note), $00] goto main