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 "SWITCH_APPLICATION.h"
pkr7098 1:ed1c6618f739 2
pkr7098 1:ed1c6618f739 3 Thread threadSwitches[2];
pkr7098 1:ed1c6618f739 4
pkr7098 1:ed1c6618f739 5 static void _threadSwitchLeft(void)
pkr7098 1:ed1c6618f739 6 {
pkr7098 1:ed1c6618f739 7 while(1) {
pkr7098 1:ed1c6618f739 8 if(switchValueWait(SWITCH_LEFT) == 1) {
pkr7098 1:ed1c6618f739 9 semaphoreModify.acquire();
pkr7098 1:ed1c6618f739 10 if(MODE_MODIFY_TIME == ABLE_TO_MODIFY_TIME) {
pkr7098 1:ed1c6618f739 11 MODE_MODIFY_TIME = UNABLE_TO_MODIFY_TIME;
pkr7098 1:ed1c6618f739 12 semaphoreModify.release();
pkr7098 1:ed1c6618f739 13 applicationChangeMode();
pkr7098 1:ed1c6618f739 14 } else {
pkr7098 1:ed1c6618f739 15 MODE_MODIFY_TIME = ABLE_TO_MODIFY_TIME;
pkr7098 1:ed1c6618f739 16 semaphoreModify.release();
pkr7098 1:ed1c6618f739 17 applicationChangeMode();
pkr7098 1:ed1c6618f739 18 }
pkr7098 1:ed1c6618f739 19
pkr7098 1:ed1c6618f739 20 while(switchValue(SWITCH_LEFT) == 1) {
pkr7098 1:ed1c6618f739 21 thread_sleep_for(SWITCH_DEBOUNCING_DELAY);
pkr7098 1:ed1c6618f739 22 }
pkr7098 1:ed1c6618f739 23 }
pkr7098 1:ed1c6618f739 24 }
pkr7098 1:ed1c6618f739 25 }
pkr7098 1:ed1c6618f739 26 static void _threadSwitchRight(void)
pkr7098 1:ed1c6618f739 27 {
pkr7098 1:ed1c6618f739 28 while(1) {
pkr7098 1:ed1c6618f739 29 if(switchValueWait(SWITCH_RIGHT) == 1) {
pkr7098 1:ed1c6618f739 30 semaphoreAlarmData.acquire();
pkr7098 1:ed1c6618f739 31 if(alarmState == ALARM_ENABLED) {
pkr7098 1:ed1c6618f739 32 alarmState = ALARM_DISABLED;
pkr7098 1:ed1c6618f739 33 semaphoreAlarmData.release();
pkr7098 1:ed1c6618f739 34 } else {
pkr7098 1:ed1c6618f739 35 alarmState = ALARM_ENABLED;
pkr7098 1:ed1c6618f739 36 semaphoreAlarmData.release();
pkr7098 1:ed1c6618f739 37 }
pkr7098 1:ed1c6618f739 38
pkr7098 1:ed1c6618f739 39 while(switchValue(SWITCH_RIGHT) == 1) {
pkr7098 1:ed1c6618f739 40 thread_sleep_for(SWITCH_DEBOUNCING_DELAY);
pkr7098 1:ed1c6618f739 41 }
pkr7098 1:ed1c6618f739 42 }
pkr7098 1:ed1c6618f739 43 }
pkr7098 1:ed1c6618f739 44 }
pkr7098 1:ed1c6618f739 45 void switchApplicationInit(void)
pkr7098 1:ed1c6618f739 46 {
pkr7098 1:ed1c6618f739 47 threadSwitches[SWITCH_LEFT].start(_threadSwitchLeft);
pkr7098 1:ed1c6618f739 48 threadSwitches[SWITCH_RIGHT].start(_threadSwitchRight);
pkr7098 1:ed1c6618f739 49 }