Class similar to InterruptIn which allows the LPC1114 to wake from deepsleep. (For other targets you can use InterruptIn).
Dependents: WakeUp WakeUp WakeUp WakeUp ... more
WakeInterruptIn.cpp@0:d726461bd0af, 2014-07-26 (annotated)
- Committer:
- Sissors
- Date:
- Sat Jul 26 15:02:43 2014 +0000
- Revision:
- 0:d726461bd0af
- Child:
- 1:128f3fe79240
v1.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Sissors | 0:d726461bd0af | 1 | #include "WakeInterruptIn.h" |
Sissors | 0:d726461bd0af | 2 | |
Sissors | 0:d726461bd0af | 3 | WakeInterruptIn* WakeInterruptIn::objects[NUM_CHANNEL] = {0}; |
Sissors | 0:d726461bd0af | 4 | |
Sissors | 0:d726461bd0af | 5 | WakeInterruptIn::WakeInterruptIn(PinName pin) : DigitalIn(pin) |
Sissors | 0:d726461bd0af | 6 | { |
Sissors | 0:d726461bd0af | 7 | if (pin < P1_0) |
Sissors | 0:d726461bd0af | 8 | channel = (pin >> PIN_SHIFT) & 0xF; |
Sissors | 0:d726461bd0af | 9 | else if (pin == P1_0) |
Sissors | 0:d726461bd0af | 10 | channel = 12; |
Sissors | 0:d726461bd0af | 11 | else |
Sissors | 0:d726461bd0af | 12 | error("Pin is not valid for WakeInterruptIn"); |
Sissors | 0:d726461bd0af | 13 | |
Sissors | 0:d726461bd0af | 14 | objects[channel] = this; |
Sissors | 0:d726461bd0af | 15 | switch (channel) { |
Sissors | 0:d726461bd0af | 16 | case 0: |
Sissors | 0:d726461bd0af | 17 | NVIC_SetVector((IRQn_Type)channel, (uint32_t)handler0); |
Sissors | 0:d726461bd0af | 18 | break; |
Sissors | 0:d726461bd0af | 19 | case 1: |
Sissors | 0:d726461bd0af | 20 | NVIC_SetVector((IRQn_Type)channel, (uint32_t)handler1); |
Sissors | 0:d726461bd0af | 21 | break; |
Sissors | 0:d726461bd0af | 22 | case 2: |
Sissors | 0:d726461bd0af | 23 | NVIC_SetVector((IRQn_Type)channel, (uint32_t)handler2); |
Sissors | 0:d726461bd0af | 24 | break; |
Sissors | 0:d726461bd0af | 25 | case 3: |
Sissors | 0:d726461bd0af | 26 | NVIC_SetVector((IRQn_Type)channel, (uint32_t)handler3); |
Sissors | 0:d726461bd0af | 27 | break; |
Sissors | 0:d726461bd0af | 28 | case 4: |
Sissors | 0:d726461bd0af | 29 | NVIC_SetVector((IRQn_Type)channel, (uint32_t)handler4); |
Sissors | 0:d726461bd0af | 30 | break; |
Sissors | 0:d726461bd0af | 31 | case 5: |
Sissors | 0:d726461bd0af | 32 | NVIC_SetVector((IRQn_Type)channel, (uint32_t)handler5); |
Sissors | 0:d726461bd0af | 33 | break; |
Sissors | 0:d726461bd0af | 34 | case 6: |
Sissors | 0:d726461bd0af | 35 | NVIC_SetVector((IRQn_Type)channel, (uint32_t)handler6); |
Sissors | 0:d726461bd0af | 36 | break; |
Sissors | 0:d726461bd0af | 37 | case 7: |
Sissors | 0:d726461bd0af | 38 | NVIC_SetVector((IRQn_Type)channel, (uint32_t)handler7); |
Sissors | 0:d726461bd0af | 39 | break; |
Sissors | 0:d726461bd0af | 40 | case 8: |
Sissors | 0:d726461bd0af | 41 | NVIC_SetVector((IRQn_Type)channel, (uint32_t)handler8); |
Sissors | 0:d726461bd0af | 42 | break; |
Sissors | 0:d726461bd0af | 43 | case 9: |
Sissors | 0:d726461bd0af | 44 | NVIC_SetVector((IRQn_Type)channel, (uint32_t)handler9); |
Sissors | 0:d726461bd0af | 45 | break; |
Sissors | 0:d726461bd0af | 46 | case 10: |
Sissors | 0:d726461bd0af | 47 | NVIC_SetVector((IRQn_Type)channel, (uint32_t)handler10); |
Sissors | 0:d726461bd0af | 48 | break; |
Sissors | 0:d726461bd0af | 49 | case 11: |
Sissors | 0:d726461bd0af | 50 | NVIC_SetVector((IRQn_Type)channel, (uint32_t)handler11); |
Sissors | 0:d726461bd0af | 51 | break; |
Sissors | 0:d726461bd0af | 52 | case 12: |
Sissors | 0:d726461bd0af | 53 | NVIC_SetVector((IRQn_Type)channel, (uint32_t)handler12); |
Sissors | 0:d726461bd0af | 54 | break; |
Sissors | 0:d726461bd0af | 55 | } |
Sissors | 0:d726461bd0af | 56 | } |