Mouse code for the MacroRat

Dependencies:   ITG3200 QEI

Committer:
kyleliangus
Date:
Fri May 26 03:46:03 2017 +0000
Revision:
32:69acb14778ea
Parent:
29:ec2c5a69acd6
Child:
33:68ce1f74ab5f
PID values still wonky. IR PID vs Encoder PID also wonky

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kyleliangus 6:3d68fedd6fd9 1 #include "irpair.h"
kyleliangus 4:b5b7836ca2b0 2 #include "mbed.h"
kyleliangus 4:b5b7836ca2b0 3
kyleliangus 32:69acb14778ea 4 //Ticker toggleIr;
kyleliangus 32:69acb14778ea 5
kyleliangus 32:69acb14778ea 6 #define dark_samples 10
kyleliangus 32:69acb14778ea 7 #define busy_wait 10
sahilmgandhi 29:ec2c5a69acd6 8
kyleliangus 6:3d68fedd6fd9 9 void IRPair::calibrateSensor() {
kyleliangus 4:b5b7836ca2b0 10
kyleliangus 9:1d8e4da058cd 11 ir.write( 1 );
kyleliangus 32:69acb14778ea 12 wait_us(55);
kyleliangus 9:1d8e4da058cd 13
kyleliangus 4:b5b7836ca2b0 14 for (int i = 0; i < samplesToTake; ++i)
kyleliangus 5:7e1e4cc19044 15 sensorAvg += recv.read();
kyleliangus 4:b5b7836ca2b0 16
kyleliangus 9:1d8e4da058cd 17 ir.write( 0 );
kyleliangus 4:b5b7836ca2b0 18 sensorAvg /= samplesToTake;
kyleliangus 32:69acb14778ea 19 wait_us(5);
kyleliangus 4:b5b7836ca2b0 20 }
kyleliangus 4:b5b7836ca2b0 21
kyleliangus 32:69acb14778ea 22 double IRPair::getSamples( int samples )
kyleliangus 4:b5b7836ca2b0 23 {
kyleliangus 32:69acb14778ea 24 double z = 0;
kyleliangus 32:69acb14778ea 25
kyleliangus 32:69acb14778ea 26 ir.write( 0 );
kyleliangus 32:69acb14778ea 27 //for( int i = 0; i < dark_samples; i++ )
kyleliangus 32:69acb14778ea 28 // z1 += recv.read();
kyleliangus 32:69acb14778ea 29
kyleliangus 5:7e1e4cc19044 30 ir.write( 1 );
kyleliangus 32:69acb14778ea 31 wait_us(55);
sahilmgandhi 29:ec2c5a69acd6 32
kyleliangus 4:b5b7836ca2b0 33 for( int i = 0; i < samples; ++i )
kyleliangus 5:7e1e4cc19044 34 z += recv.read();
kyleliangus 5:7e1e4cc19044 35 ir.write( 0 );
kyleliangus 32:69acb14778ea 36 wait_us(5);
kyleliangus 4:b5b7836ca2b0 37 return z / samples;
kyleliangus 15:b80555a4a8b9 38 }