Project 3 - Marionette to Jitter code
DEFINE ADC_BITS 10
DEFINE ADC_CLOCK 3
DEFINE ADC_SAMPLEuS 50
TRISA = %11111111
ADCON1 = %10000010
txPin var portc.6
blinkyled var portb.6
SWright var portd.0
SWfront var portd.1
SWleft var portc.1
SWmiddle var portc.2
SWback var portc.3
minAccelerRangeY con 460
maxAccelerRangeY con 580
minAccelerRangeX con 490
maxAccelerRangeX con 620
'minAccelerRangeY con 490
'maxAccelerRangeY con 660
'minAccelerRangeX con 450
'maxAccelerRangeX con 600
minMidi con 0
maxMidi con 127
accelerRangeX var word
accelerRangeY var word
midiRange var word
midiX var word
midiY var word
accelerRangeX = maxAccelerRangeX - minAccelerRangeX
accelerRangeY = maxAccelerRangeY - minAccelerRangeY
midiRange = 128
LEFT con 144
RIGHT CON 145
MIDDLE con 146
FRONT CON 147
BACK CON 148
SITTING CON 149
xVar var word
yVar var word
posStatus var word
movStatus var word
oldPosStatus var word
oldMovStatus var word
oldMovStatus = 99
oldPosStatus = 151
movStatus = 100
posStatus = 150
i var byte
FOR i=0 to 5
high blinkyled
pause 500
low blinkyled
pause 500
NEXT
main:
adcin 0, xVar
adcin 1, yVar
if swleft = 1 then
posStatus = LEFT
endif
if swright = 1 then
posStatus = RIGHT
endif
if swmiddle = 1 then
posStatus = MIDDLE
endif
if swfront = 1 then
posStatus = FRONT
endif
if swback = 1 then
posStatus = BACK
endif
if (swfront = 1 and swmiddle = 1) OR (swback = 1 and swmiddle = 1) then
posStatus = SITTING
endif
if xvar < 700 then
midiX = (xVar - minAccelerRangeX) * midiRange
midiX = midiX / accelerRangeX
midiY = (yVar - minAccelerRangeY) * midiRange
midiY = midiY / accelerRangeY
else
if midix < 120 then
midiX = midiX + 1
else
midix = midiX - 10
endif
if midiY < 120 then
midiY = midiY + 1
else
midiY = midiY - 10
endif
endif
oldmovstatus = midiX
oldposstatus = posstatus
serout2 txpin, 12, [posstatus, midiX, midiY]
if (posstatus != oldposstatus) then
posStatus = 150
endif
pause 300 ' we must have a pause, otherwise jitter is crushing!!!!!
goto main
|