
The final project of Embedde class.
Dependencies: C12832 LM75B ESP-call MMA7660
SWITCH/SWITCH_APPLICATION.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 "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 | } |