Mouse code for the MacroRat

Dependencies:   ITG3200 QEI

Committer:
vanshg
Date:
Sat May 06 22:49:31 2017 +0000
Revision:
10:810d1849da9d
Parent:
9:1d8e4da058cd
Child:
11:8fc2b703086b
Added interrupts for dip switch.; Added stm324xxx.h header; Began configuration for Tim2 and Tim5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kyleliangus 4:b5b7836ca2b0 1 #ifndef MAIN_H
kyleliangus 4:b5b7836ca2b0 2 #define MAIN_H
kyleliangus 4:b5b7836ca2b0 3
kyleliangus 4:b5b7836ca2b0 4 #include "mbed.h"
kyleliangus 4:b5b7836ca2b0 5 #include "ITG3200.h"
kyleliangus 9:1d8e4da058cd 6 #include "motor.h"
kyleliangus 4:b5b7836ca2b0 7
kyleliangus 4:b5b7836ca2b0 8 // Motors
kyleliangus 8:a0760acdc59e 9 /*
kyleliangus 4:b5b7836ca2b0 10 PwmOut left1(PB_7);
kyleliangus 4:b5b7836ca2b0 11 PwmOut left2(PB_8);
kyleliangus 4:b5b7836ca2b0 12 PwmOut right1(PA_10);
kyleliangus 4:b5b7836ca2b0 13 PwmOut right2(PA_11);
kyleliangus 4:b5b7836ca2b0 14
sahilmgandhi 7:6f5cb6377bd4 15 DigitalOut enableLeftMotor(PB_4);
sahilmgandhi 7:6f5cb6377bd4 16 DigitalOut enableRightMotor(PB_5);
kyleliangus 8:a0760acdc59e 17 */
sahilmgandhi 7:6f5cb6377bd4 18
kyleliangus 4:b5b7836ca2b0 19 // RGB LED
kyleliangus 4:b5b7836ca2b0 20 DigitalOut redLed(PC_0);
kyleliangus 4:b5b7836ca2b0 21 DigitalOut blueLed(PC_1);
kyleliangus 4:b5b7836ca2b0 22 DigitalOut greenLed(PC_2);
kyleliangus 4:b5b7836ca2b0 23
kyleliangus 9:1d8e4da058cd 24 // IRPairs
kyleliangus 9:1d8e4da058cd 25 IRPair IRP_4( PB_1, PC_5 );
kyleliangus 9:1d8e4da058cd 26 IRPair IRP_3( PB_13, PC_4 );
kyleliangus 9:1d8e4da058cd 27 IRPair IRP_2( PB_0, PA_6 );
kyleliangus 9:1d8e4da058cd 28 IRPair IRP_1( PB_14, PA_7 );
kyleliangus 9:1d8e4da058cd 29
kyleliangus 9:1d8e4da058cd 30 Motor left_motor( PB_7, PB_8, PB_4 );
kyleliangus 9:1d8e4da058cd 31 Motor right_motor( PA_10, PA_11, PB_5 );
kyleliangus 9:1d8e4da058cd 32
kyleliangus 9:1d8e4da058cd 33 /*
kyleliangus 4:b5b7836ca2b0 34 DigitalOut IR_1(PB_1);
kyleliangus 4:b5b7836ca2b0 35 DigitalOut IR_2(PB_13);
kyleliangus 4:b5b7836ca2b0 36 DigitalOut IR_3(PB_0);
kyleliangus 4:b5b7836ca2b0 37 DigitalOut IR_4(PB_14);
kyleliangus 4:b5b7836ca2b0 38 // Receivers
kyleliangus 4:b5b7836ca2b0 39 AnalogIn Rec_1(PC_5);
kyleliangus 4:b5b7836ca2b0 40 AnalogIn Rec_2(PC_4);
kyleliangus 4:b5b7836ca2b0 41 AnalogIn Rec_3(PA_6);
kyleliangus 4:b5b7836ca2b0 42 AnalogIn Rec_4(PA_7);
kyleliangus 9:1d8e4da058cd 43 */
kyleliangus 4:b5b7836ca2b0 44
kyleliangus 4:b5b7836ca2b0 45 // Doing DEBUGGING
kyleliangus 4:b5b7836ca2b0 46 #define DEBUGGING 1
kyleliangus 4:b5b7836ca2b0 47 Serial serial(PC_6, PC_7);
kyleliangus 4:b5b7836ca2b0 48
kyleliangus 4:b5b7836ca2b0 49 // Gyro
kyleliangus 4:b5b7836ca2b0 50 ITG3200 gyro(PC_9, PA_8);
kyleliangus 4:b5b7836ca2b0 51
kyleliangus 4:b5b7836ca2b0 52 volatile double reading = 0;
kyleliangus 4:b5b7836ca2b0 53
kyleliangus 4:b5b7836ca2b0 54 int gyroX = 0;
kyleliangus 4:b5b7836ca2b0 55 int gyroY = 0;
kyleliangus 4:b5b7836ca2b0 56 int gyroZ = 0;
kyleliangus 4:b5b7836ca2b0 57
vanshg 10:810d1849da9d 58 InterruptIn dipButton1(PB_15);
vanshg 10:810d1849da9d 59 InterruptIn dipButton2(PB_10);
vanshg 10:810d1849da9d 60 InterruptIn dipButton3(PB_9);
vanshg 10:810d1849da9d 61 InterruptIn dipButton4(PB_12);
vanshg 10:810d1849da9d 62
vanshg 10:810d1849da9d 63 void enableButton1();
vanshg 10:810d1849da9d 64 void enableButton2();
vanshg 10:810d1849da9d 65 void enableButton3();
vanshg 10:810d1849da9d 66 void enableButton4();
vanshg 10:810d1849da9d 67 void disableButton1();
vanshg 10:810d1849da9d 68 void disableButton2();
vanshg 10:810d1849da9d 69 void disableButton3();
vanshg 10:810d1849da9d 70 void disableButton4();
vanshg 10:810d1849da9d 71
vanshg 10:810d1849da9d 72 int dipFlags = 0;
vanshg 10:810d1849da9d 73 #define BUTTON1_FLAG 0x0001
vanshg 10:810d1849da9d 74 #define BUTTON2_FLAG 0x0010
vanshg 10:810d1849da9d 75 #define BUTTON3_FLAG 0x0100
vanshg 10:810d1849da9d 76 #define BUTTON4_FLAG 0x1000
vanshg 10:810d1849da9d 77
kyleliangus 4:b5b7836ca2b0 78 #endif