Undertale

Dependencies:   mbed wave_player 4DGL-uLCD-SE MMA8452

Committer:
cdong49
Date:
Sat Apr 13 21:11:27 2019 +0000
Revision:
3:ab8f2b4b44b0
Parent:
2:3caab2cc0476
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)
rconnorlawson 0:35660d7952f7 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);
cdong49 3:ab8f2b4b44b0 19 DigitalIn button4(p24);
rconnorlawson 0:35660d7952f7 20 AnalogOut DACout(p18); // Speaker (pin)
rconnorlawson 1:399033d39feb 21 PwmOut speaker(p26);
rconnorlawson 0:35660d7952f7 22 wave_player waver(&DACout);
rconnorlawson 0:35660d7952f7 23
rconnorlawson 0:35660d7952f7 24 // Some hardware also needs to have functions called before it will set up
rconnorlawson 0:35660d7952f7 25 // properly. Do that here.
rconnorlawson 0:35660d7952f7 26 int hardware_init()
rconnorlawson 0:35660d7952f7 27 {
rconnorlawson 0:35660d7952f7 28 // Crank up the speed
rconnorlawson 0:35660d7952f7 29 uLCD.baudrate(3000000);
rconnorlawson 0:35660d7952f7 30 pc.baud(115200);
rconnorlawson 0:35660d7952f7 31
rconnorlawson 0:35660d7952f7 32 //Initialize pushbuttons
rconnorlawson 0:35660d7952f7 33 button1.mode(PullUp);
rconnorlawson 0:35660d7952f7 34 button2.mode(PullUp);
rconnorlawson 0:35660d7952f7 35 button3.mode(PullUp);
cdong49 3:ab8f2b4b44b0 36 button3.mode(PullUp);
cdong49 2:3caab2cc0476 37 acc.activate();
rconnorlawson 0:35660d7952f7 38 return ERROR_NONE;
rconnorlawson 0:35660d7952f7 39 }
rconnorlawson 0:35660d7952f7 40
rconnorlawson 0:35660d7952f7 41 GameInputs read_inputs()
rconnorlawson 0:35660d7952f7 42 {
rconnorlawson 0:35660d7952f7 43 GameInputs in;
cdong49 2:3caab2cc0476 44
cdong49 2:3caab2cc0476 45 in.b1 = button1; // top button
cdong49 2:3caab2cc0476 46 in.b2 = button2; // second button
cdong49 2:3caab2cc0476 47 in.b3 = button3; // third button
cdong49 3:ab8f2b4b44b0 48 in.b4 = button4; // fourth, run button
cdong49 2:3caab2cc0476 49 acc.readXGravity(&in.ax); // x axis acce
cdong49 2:3caab2cc0476 50 acc.readYGravity(&in.ay); // y axis acce
cdong49 2:3caab2cc0476 51 acc.readZGravity(&in.az); // z axis acce
rconnorlawson 0:35660d7952f7 52 return in;
rconnorlawson 0:35660d7952f7 53 }