The final project of Embedde class.

Dependencies:   C12832 LM75B ESP-call MMA7660

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?

UserRevisionLine numberNew 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 }