Second revision of test code for Polyathalon sensor board.

Dependencies:   mbed MODDMA

Committer:
mpanetta
Date:
Sat Nov 05 21:10:10 2011 +0000
Revision:
1:1e37eee8e1cf
Parent:
0:13a7de7ce046

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mpanetta 0:13a7de7ce046 1 #include "mbed.h"
mpanetta 0:13a7de7ce046 2 #include "m3pi.h"
mpanetta 0:13a7de7ce046 3 #include "tlc5916.h"
mpanetta 0:13a7de7ce046 4
mpanetta 0:13a7de7ce046 5 #define DARK_THRESHOLD 0x1A0
mpanetta 0:13a7de7ce046 6
mpanetta 0:13a7de7ce046 7
mpanetta 0:13a7de7ce046 8
mpanetta 0:13a7de7ce046 9 AnalogIn in1(p15);
mpanetta 0:13a7de7ce046 10 AnalogIn in2(p16);
mpanetta 0:13a7de7ce046 11 AnalogIn in3(p17);
mpanetta 0:13a7de7ce046 12 AnalogIn in4(p18);
mpanetta 0:13a7de7ce046 13 AnalogIn in5(p19);
mpanetta 0:13a7de7ce046 14 AnalogIn in6(p20);
mpanetta 0:13a7de7ce046 15
mpanetta 0:13a7de7ce046 16 DigitalOut led1(LED1);
mpanetta 0:13a7de7ce046 17 DigitalOut led2(LED2);
mpanetta 0:13a7de7ce046 18
mpanetta 0:13a7de7ce046 19 m3pi base;
mpanetta 0:13a7de7ce046 20 TLC5916 tlc5916(p6, p5, p7, p11);
mpanetta 0:13a7de7ce046 21
mpanetta 0:13a7de7ce046 22 int main() {
mpanetta 0:13a7de7ce046 23
mpanetta 0:13a7de7ce046 24 struct m3pi::LineSensors sensors;
mpanetta 0:13a7de7ce046 25 uint16_t val1 = 0;
mpanetta 0:13a7de7ce046 26 uint16_t val2 = 0;
mpanetta 0:13a7de7ce046 27 uint8_t leds = 0x01;
mpanetta 0:13a7de7ce046 28
mpanetta 0:13a7de7ce046 29 base.reset();
mpanetta 0:13a7de7ce046 30 wait(1);
mpanetta 0:13a7de7ce046 31
mpanetta 0:13a7de7ce046 32 base.locate(0, 0);
mpanetta 0:13a7de7ce046 33 base.printf("AIN: ");
mpanetta 0:13a7de7ce046 34
mpanetta 0:13a7de7ce046 35 while (1) {
mpanetta 0:13a7de7ce046 36 if (leds == 0x80)
mpanetta 0:13a7de7ce046 37 leds = 0x01;
mpanetta 0:13a7de7ce046 38 tlc5916.write_reg(leds);
mpanetta 1:1e37eee8e1cf 39
mpanetta 0:13a7de7ce046 40 tlc5916.enable();
mpanetta 0:13a7de7ce046 41 wait_us(25);
mpanetta 0:13a7de7ce046 42 led1 = 1;
mpanetta 0:13a7de7ce046 43 val1 = in4.read_u16();
mpanetta 1:1e37eee8e1cf 44 //val2 = in5.read_u16();
mpanetta 0:13a7de7ce046 45 led1 = 0;
mpanetta 0:13a7de7ce046 46 tlc5916.disable();
mpanetta 1:1e37eee8e1cf 47 wait(1);
mpanetta 0:13a7de7ce046 48 led2 = 1;
mpanetta 0:13a7de7ce046 49 base.locate(0, 0);
mpanetta 0:13a7de7ce046 50 base.printf("AIN:%4.4x", val1);
mpanetta 0:13a7de7ce046 51 base.locate(0, 1);
mpanetta 0:13a7de7ce046 52 base.printf("AIN:%4.4x", leds);
mpanetta 0:13a7de7ce046 53 led2 = 0;
mpanetta 1:1e37eee8e1cf 54 leds = leds << 1;
mpanetta 0:13a7de7ce046 55 }
mpanetta 0:13a7de7ce046 56
mpanetta 0:13a7de7ce046 57 #if 0
mpanetta 0:13a7de7ce046 58 base.sensor_auto_calibrate();
mpanetta 0:13a7de7ce046 59
mpanetta 0:13a7de7ce046 60 base.locate(0,0);
mpanetta 0:13a7de7ce046 61 base.printf("Sens 3:");
mpanetta 0:13a7de7ce046 62
mpanetta 0:13a7de7ce046 63
mpanetta 0:13a7de7ce046 64 while(1) {
mpanetta 0:13a7de7ce046 65
mpanetta 0:13a7de7ce046 66 sensors = base.get_raw_sensors();
mpanetta 0:13a7de7ce046 67 base.locate(0,1);
mpanetta 0:13a7de7ce046 68 base.printf("0x%4.4x", sensors.sensor3);
mpanetta 0:13a7de7ce046 69 if (sensors.sensor3 > DARK_THRESHOLD) {
mpanetta 0:13a7de7ce046 70 base.right_motor(0.2);
mpanetta 0:13a7de7ce046 71 base.left_motor(-0.2);
mpanetta 0:13a7de7ce046 72 } else {
mpanetta 0:13a7de7ce046 73 base.forward(0.2);
mpanetta 0:13a7de7ce046 74 }
mpanetta 0:13a7de7ce046 75 }
mpanetta 0:13a7de7ce046 76 #endif
mpanetta 0:13a7de7ce046 77 }