Class used to interface with the handheld gamepad.

Fork of Gamepad by Craig Evans

Committer:
eencae
Date:
Sat Feb 04 16:13:18 2017 +0000
Revision:
1:6d25cd49059b
Parent:
0:a6288c29b936
Child:
3:964a6d95acdd
Added more methods. Still untested.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eencae 0:a6288c29b936 1 #ifndef GAMEPAD_H
eencae 0:a6288c29b936 2 #define GAMEPAD_H
eencae 0:a6288c29b936 3
eencae 0:a6288c29b936 4 #include "mbed.h"
eencae 0:a6288c29b936 5 #include "N5110.h"
eencae 0:a6288c29b936 6 #include "Joystick.h"
eencae 0:a6288c29b936 7
eencae 0:a6288c29b936 8 class Gamepad
eencae 0:a6288c29b936 9 {
eencae 0:a6288c29b936 10
eencae 0:a6288c29b936 11 public:
eencae 0:a6288c29b936 12
eencae 0:a6288c29b936 13 Gamepad();
eencae 1:6d25cd49059b 14 ~Gamepad();
eencae 0:a6288c29b936 15 N5110 *lcd;
eencae 0:a6288c29b936 16 Joystick *joystick;
eencae 0:a6288c29b936 17
eencae 0:a6288c29b936 18 void init();
eencae 0:a6288c29b936 19 void leds_on();
eencae 0:a6288c29b936 20 void leds_off();
eencae 1:6d25cd49059b 21 void fade_leds(float val);
eencae 1:6d25cd49059b 22
eencae 1:6d25cd49059b 23 float read_pot();
eencae 1:6d25cd49059b 24 void tone(float frequency, float duration);
eencae 1:6d25cd49059b 25
eencae 1:6d25cd49059b 26 bool a_pressed();
eencae 1:6d25cd49059b 27 bool b_pressed();
eencae 1:6d25cd49059b 28 bool x_pressed();
eencae 1:6d25cd49059b 29 bool y_pressed();
eencae 1:6d25cd49059b 30 bool l_pressed();
eencae 1:6d25cd49059b 31 bool r_pressed();
eencae 1:6d25cd49059b 32 bool back_pressed();
eencae 1:6d25cd49059b 33 bool start_pressed();
eencae 0:a6288c29b936 34
eencae 0:a6288c29b936 35 private:
eencae 0:a6288c29b936 36
eencae 0:a6288c29b936 37 PwmOut *led_1;
eencae 0:a6288c29b936 38 PwmOut *led_2;
eencae 0:a6288c29b936 39 PwmOut *led_3;
eencae 0:a6288c29b936 40 PwmOut *led_4;
eencae 0:a6288c29b936 41 PwmOut *led_5;
eencae 0:a6288c29b936 42 PwmOut *led_6;
eencae 0:a6288c29b936 43
eencae 1:6d25cd49059b 44 InterruptIn *button_A;
eencae 1:6d25cd49059b 45 InterruptIn *button_B;
eencae 1:6d25cd49059b 46 InterruptIn *button_X;
eencae 1:6d25cd49059b 47 InterruptIn *button_Y; // changed pin
eencae 1:6d25cd49059b 48 InterruptIn *button_back;
eencae 1:6d25cd49059b 49 InterruptIn *button_start;
eencae 1:6d25cd49059b 50 InterruptIn *button_L;
eencae 1:6d25cd49059b 51 InterruptIn *button_R;
eencae 1:6d25cd49059b 52
eencae 1:6d25cd49059b 53 PwmOut *buzzer;
eencae 1:6d25cd49059b 54 AnalogIn *pot;
eencae 1:6d25cd49059b 55
eencae 1:6d25cd49059b 56 Timeout *timeout;
eencae 1:6d25cd49059b 57
eencae 1:6d25cd49059b 58 void init_buttons();
eencae 1:6d25cd49059b 59 void tone_off();
eencae 1:6d25cd49059b 60 void a_isr();
eencae 1:6d25cd49059b 61 void b_isr();
eencae 1:6d25cd49059b 62 void x_isr();
eencae 1:6d25cd49059b 63 void y_isr();
eencae 1:6d25cd49059b 64 void l_isr();
eencae 1:6d25cd49059b 65 void r_isr();
eencae 1:6d25cd49059b 66 void back_isr();
eencae 1:6d25cd49059b 67 void start_isr();
eencae 1:6d25cd49059b 68
eencae 1:6d25cd49059b 69 bool a_flag,b_flag,x_flag,y_flag,l_flag,r_flag,back_flag,start_flag;
eencae 0:a6288c29b936 70
eencae 0:a6288c29b936 71 };
eencae 0:a6288c29b936 72
eencae 0:a6288c29b936 73 #endif