Mouse code for the MacroRat

Dependencies:   ITG3200 QEI

main.h

Committer:
kyleliangus
Date:
2017-05-14
Revision:
15:b80555a4a8b9
Parent:
11:8fc2b703086b
Child:
17:f713758f6238

File content as of revision 15:b80555a4a8b9:

#ifndef MAIN_H
#define MAIN_H

#include "mbed.h"
#include "ITG3200.h"
#include "motor.h"
#include "QEI.h"
#define PULSES 3520
#define SAMPLE_NUM 100

// Motors
/*
PwmOut left1(PB_7);
PwmOut left2(PB_8);
PwmOut right1(PA_10);
PwmOut right2(PA_11);

DigitalOut enableLeftMotor(PB_4);
DigitalOut enableRightMotor(PB_5);
*/

// RGB LED
DigitalOut redLed(PC_0);
DigitalOut blueLed(PC_1);
DigitalOut greenLed(PC_2);

// IRPairs
IRPair IRP_4( PB_1, PC_5 );
IRPair IRP_3( PB_13, PC_4 );
IRPair IRP_2( PB_0, PA_6 );
IRPair IRP_1( PB_14, PA_7 );

Motor left_motor( PB_8, PB_7, PB_4 ); // forward, backwards, enable
Motor right_motor( PA_11, PA_10, PB_5 ); // forward, backwards, enable

/*
DigitalOut IR_1(PB_1);
DigitalOut IR_2(PB_13);
DigitalOut IR_3(PB_0);
DigitalOut IR_4(PB_14);
// Receivers
AnalogIn Rec_1(PC_5);
AnalogIn Rec_2(PC_4);
AnalogIn Rec_3(PA_6);
AnalogIn Rec_4(PA_7);
*/

// Doing DEBUGGING
#define DEBUGGING 1
Serial serial(PC_6, PC_7);

// Gyro
ITG3200 gyro(PC_9, PA_8);

volatile double reading = 0;

int gyroX = 0;
int gyroY = 0;
int gyroZ = 0;

InterruptIn dipButton1(PB_15);
InterruptIn dipButton2(PB_10);
InterruptIn dipButton3(PB_9);
InterruptIn dipButton4(PB_12);

void enableButton1();
void enableButton2();
void enableButton3();
void enableButton4();
void disableButton1();
void disableButton2();
void disableButton3();
void disableButton4();

int dipFlags = 0;
#define BUTTON1_FLAG 0x1
#define BUTTON2_FLAG 0x2
#define BUTTON3_FLAG 0x4
#define BUTTON4_FLAG 0x8

QEI encoder0( PA_5, PB_3, NC, PULSES, QEI::X4_ENCODING );
QEI encoder1( PA_1, PA_0, NC, PULSES, QEI::X4_ENCODING );

#endif