ECE 2035 final project

Dependencies:   mbed wave_player 4DGL-uLCD-SE MMA8452

Committer:
npatel387
Date:
Mon Apr 15 12:25:08 2019 +0000
Revision:
2:22d36e7740f1
Parent:
1:399033d39feb
final;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rconnorlawson 0:35660d7952f7 1 // This header has all the (extern) declarations of the globals.
rconnorlawson 0:35660d7952f7 2 // "extern" means "this is instantiated somewhere, but here's what the name
rconnorlawson 0:35660d7952f7 3 // means.
rconnorlawson 0:35660d7952f7 4 #include "globals.h"
rconnorlawson 0:35660d7952f7 5
rconnorlawson 0:35660d7952f7 6 #include "hardware.h"
rconnorlawson 0:35660d7952f7 7
rconnorlawson 0:35660d7952f7 8 // We need to actually instantiate all of the globals (i.e. declare them once
rconnorlawson 0:35660d7952f7 9 // without the extern keyword). That's what this file does!
rconnorlawson 0:35660d7952f7 10
rconnorlawson 0:35660d7952f7 11 // Hardware initialization: Instantiate all the things!
rconnorlawson 0:35660d7952f7 12 uLCD_4DGL uLCD(p9,p10,p11); // LCD Screen (tx, rx, reset)
npatel387 2:22d36e7740f1 13 SDFileSystem sd(p5, p6, p7, p8, "sd"); // SD Card(mosi, miso, sck, cs)
rconnorlawson 0:35660d7952f7 14 Serial pc(USBTX,USBRX); // USB Console (tx, rx)
rconnorlawson 0:35660d7952f7 15 MMA8452 acc(p28, p27, 100000); // Accelerometer (sda, sdc, rate)
rconnorlawson 0:35660d7952f7 16 DigitalIn button1(p21); // Pushbuttons (pin)
rconnorlawson 0:35660d7952f7 17 DigitalIn button2(p22);
rconnorlawson 0:35660d7952f7 18 DigitalIn button3(p23);
rconnorlawson 0:35660d7952f7 19 AnalogOut DACout(p18); // Speaker (pin)
rconnorlawson 1:399033d39feb 20 PwmOut speaker(p26);
rconnorlawson 0:35660d7952f7 21 wave_player waver(&DACout);
rconnorlawson 0:35660d7952f7 22
rconnorlawson 0:35660d7952f7 23 // Some hardware also needs to have functions called before it will set up
rconnorlawson 0:35660d7952f7 24 // properly. Do that here.
rconnorlawson 0:35660d7952f7 25 int hardware_init()
rconnorlawson 0:35660d7952f7 26 {
rconnorlawson 0:35660d7952f7 27 // Crank up the speed
rconnorlawson 0:35660d7952f7 28 uLCD.baudrate(3000000);
rconnorlawson 0:35660d7952f7 29 pc.baud(115200);
rconnorlawson 0:35660d7952f7 30
rconnorlawson 0:35660d7952f7 31 //Initialize pushbuttons
rconnorlawson 0:35660d7952f7 32 button1.mode(PullUp);
rconnorlawson 0:35660d7952f7 33 button2.mode(PullUp);
rconnorlawson 0:35660d7952f7 34 button3.mode(PullUp);
rconnorlawson 0:35660d7952f7 35
rconnorlawson 0:35660d7952f7 36 return ERROR_NONE;
rconnorlawson 0:35660d7952f7 37 }
rconnorlawson 0:35660d7952f7 38
rconnorlawson 0:35660d7952f7 39 GameInputs read_inputs()
rconnorlawson 0:35660d7952f7 40 {
rconnorlawson 0:35660d7952f7 41 GameInputs in;
npatel387 2:22d36e7740f1 42 in.b1 = button1;
npatel387 2:22d36e7740f1 43 in.b2 = button2;
npatel387 2:22d36e7740f1 44 in.b3 = button3;
npatel387 2:22d36e7740f1 45 if(!acc.isXYZReady())
npatel387 2:22d36e7740f1 46 {
npatel387 2:22d36e7740f1 47 wait(0.01);
npatel387 2:22d36e7740f1 48 }
npatel387 2:22d36e7740f1 49 acc.readXYZGravity(&in.ax, &in.ay, &in.az);
rconnorlawson 0:35660d7952f7 50 return in;
rconnorlawson 0:35660d7952f7 51 }