
The final project of Embedde class.
Dependencies: C12832 LM75B ESP-call MMA7660
JOYSTICK/JOYSTICK.cpp@2:37756b51ccdb, 2021-06-03 (annotated)
- Committer:
- pkr7098
- Date:
- Thu Jun 03 07:09:55 2021 +0000
- Revision:
- 2:37756b51ccdb
- Parent:
- 1:ed1c6618f739
The final project of Embedde class.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pkr7098 | 1:ed1c6618f739 | 1 | #include "JOYSTICK.h" |
pkr7098 | 1:ed1c6618f739 | 2 | |
pkr7098 | 1:ed1c6618f739 | 3 | InterruptIn joystickU(A2); |
pkr7098 | 1:ed1c6618f739 | 4 | InterruptIn joystickD(A3); |
pkr7098 | 1:ed1c6618f739 | 5 | InterruptIn joystickL(A4); |
pkr7098 | 1:ed1c6618f739 | 6 | InterruptIn joystickR(A5); |
pkr7098 | 1:ed1c6618f739 | 7 | InterruptIn joystickC(D4); |
pkr7098 | 1:ed1c6618f739 | 8 | |
pkr7098 | 1:ed1c6618f739 | 9 | static int _joystickDataForISR = -1; |
pkr7098 | 1:ed1c6618f739 | 10 | |
pkr7098 | 1:ed1c6618f739 | 11 | static void _joystickBeep() |
pkr7098 | 1:ed1c6618f739 | 12 | { |
pkr7098 | 1:ed1c6618f739 | 13 | buzzerInstruction = BUZZER_INSTRUCTION_RINGING; |
pkr7098 | 1:ed1c6618f739 | 14 | buzzerDelay = JOYSTICK_BEEP_DELAY; |
pkr7098 | 1:ed1c6618f739 | 15 | buzzerCnt = JOYSTICK_BEEP_CNT; |
pkr7098 | 1:ed1c6618f739 | 16 | semaphoreBuzzerValues.release(); |
pkr7098 | 1:ed1c6618f739 | 17 | semaphoreBuzzer.release(); |
pkr7098 | 1:ed1c6618f739 | 18 | } |
pkr7098 | 1:ed1c6618f739 | 19 | |
pkr7098 | 1:ed1c6618f739 | 20 | static void _joystickPushedU() |
pkr7098 | 1:ed1c6618f739 | 21 | { |
pkr7098 | 1:ed1c6618f739 | 22 | if(semaphoreBuzzerValues.try_acquire() == true) { |
pkr7098 | 1:ed1c6618f739 | 23 | _joystickDataForISR = JOYSTICK_U; |
pkr7098 | 1:ed1c6618f739 | 24 | _joystickBeep(); |
pkr7098 | 1:ed1c6618f739 | 25 | } |
pkr7098 | 1:ed1c6618f739 | 26 | } |
pkr7098 | 1:ed1c6618f739 | 27 | static void _joystickPushedD() |
pkr7098 | 1:ed1c6618f739 | 28 | { |
pkr7098 | 1:ed1c6618f739 | 29 | if(semaphoreBuzzerValues.try_acquire() == true) { |
pkr7098 | 1:ed1c6618f739 | 30 | _joystickDataForISR = JOYSTICK_D; |
pkr7098 | 1:ed1c6618f739 | 31 | _joystickBeep(); |
pkr7098 | 1:ed1c6618f739 | 32 | } |
pkr7098 | 1:ed1c6618f739 | 33 | } |
pkr7098 | 1:ed1c6618f739 | 34 | static void _joystickPushedL() |
pkr7098 | 1:ed1c6618f739 | 35 | { |
pkr7098 | 1:ed1c6618f739 | 36 | if(semaphoreBuzzerValues.try_acquire() == true) { |
pkr7098 | 1:ed1c6618f739 | 37 | _joystickDataForISR = JOYSTICK_L; |
pkr7098 | 1:ed1c6618f739 | 38 | _joystickBeep(); |
pkr7098 | 1:ed1c6618f739 | 39 | } |
pkr7098 | 1:ed1c6618f739 | 40 | |
pkr7098 | 1:ed1c6618f739 | 41 | } |
pkr7098 | 1:ed1c6618f739 | 42 | static void _joystickPushedR() |
pkr7098 | 1:ed1c6618f739 | 43 | { |
pkr7098 | 1:ed1c6618f739 | 44 | if(semaphoreBuzzerValues.try_acquire() == true) { |
pkr7098 | 1:ed1c6618f739 | 45 | _joystickDataForISR = JOYSTICK_R; |
pkr7098 | 1:ed1c6618f739 | 46 | _joystickBeep(); |
pkr7098 | 1:ed1c6618f739 | 47 | |
pkr7098 | 1:ed1c6618f739 | 48 | } |
pkr7098 | 1:ed1c6618f739 | 49 | } |
pkr7098 | 1:ed1c6618f739 | 50 | static void _joystickPushedC() |
pkr7098 | 1:ed1c6618f739 | 51 | { |
pkr7098 | 1:ed1c6618f739 | 52 | if(semaphoreBuzzerValues.try_acquire() == true) { |
pkr7098 | 1:ed1c6618f739 | 53 | _joystickDataForISR = JOYSTICK_C; |
pkr7098 | 1:ed1c6618f739 | 54 | _joystickBeep(); |
pkr7098 | 1:ed1c6618f739 | 55 | |
pkr7098 | 1:ed1c6618f739 | 56 | } |
pkr7098 | 1:ed1c6618f739 | 57 | } |
pkr7098 | 1:ed1c6618f739 | 58 | static void _joystickReleased(void) |
pkr7098 | 1:ed1c6618f739 | 59 | { |
pkr7098 | 1:ed1c6618f739 | 60 | _joystickDataForISR = -1; |
pkr7098 | 1:ed1c6618f739 | 61 | } |
pkr7098 | 1:ed1c6618f739 | 62 | |
pkr7098 | 1:ed1c6618f739 | 63 | |
pkr7098 | 1:ed1c6618f739 | 64 | // ==================================================================================== |
pkr7098 | 1:ed1c6618f739 | 65 | |
pkr7098 | 1:ed1c6618f739 | 66 | void joystickInit(void) |
pkr7098 | 1:ed1c6618f739 | 67 | { |
pkr7098 | 1:ed1c6618f739 | 68 | printf("Init joysticks\r\n"); |
pkr7098 | 1:ed1c6618f739 | 69 | joystickU.rise(_joystickPushedU); |
pkr7098 | 1:ed1c6618f739 | 70 | joystickD.rise(_joystickPushedD); |
pkr7098 | 1:ed1c6618f739 | 71 | joystickL.rise(_joystickPushedL); |
pkr7098 | 1:ed1c6618f739 | 72 | joystickR.rise(_joystickPushedR); |
pkr7098 | 1:ed1c6618f739 | 73 | joystickC.rise(_joystickPushedC); |
pkr7098 | 1:ed1c6618f739 | 74 | |
pkr7098 | 1:ed1c6618f739 | 75 | joystickU.fall(_joystickReleased); |
pkr7098 | 1:ed1c6618f739 | 76 | joystickD.fall(_joystickReleased); |
pkr7098 | 1:ed1c6618f739 | 77 | joystickL.fall(_joystickReleased); |
pkr7098 | 1:ed1c6618f739 | 78 | joystickR.fall(_joystickReleased); |
pkr7098 | 1:ed1c6618f739 | 79 | joystickC.fall(_joystickReleased); |
pkr7098 | 1:ed1c6618f739 | 80 | } |
pkr7098 | 1:ed1c6618f739 | 81 | |
pkr7098 | 1:ed1c6618f739 | 82 | |
pkr7098 | 1:ed1c6618f739 | 83 | int joystickDir(void) |
pkr7098 | 1:ed1c6618f739 | 84 | { |
pkr7098 | 1:ed1c6618f739 | 85 | return _joystickDataForISR; |
pkr7098 | 1:ed1c6618f739 | 86 | } |