Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: libmDot mbed-rtos mbed
main.cpp@3:238fa32bcb32, 2016-05-26 (annotated)
- Committer:
- boddeke
- Date:
- Thu May 26 09:03:15 2016 +0000
- Revision:
- 3:238fa32bcb32
- Parent:
- 2:a2371a150758
working wakeup (reed between pa_0 and vss)
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| boddeke | 0:fc05a249a095 | 1 | #include "mbed.h" |
| boddeke | 0:fc05a249a095 | 2 | #include "rtos.h" |
| boddeke | 0:fc05a249a095 | 3 | #include "mDot.h" |
| boddeke | 0:fc05a249a095 | 4 | #include "MTSLog.h" |
| boddeke | 0:fc05a249a095 | 5 | #include "MTSText.h" |
| boddeke | 0:fc05a249a095 | 6 | |
| boddeke | 0:fc05a249a095 | 7 | using namespace mts; |
| boddeke | 0:fc05a249a095 | 8 | |
| boddeke | 0:fc05a249a095 | 9 | |
| boddeke | 0:fc05a249a095 | 10 | #define REED_PORT PA_0 |
| boddeke | 0:fc05a249a095 | 11 | |
| boddeke | 3:238fa32bcb32 | 12 | // PA_0 = WKUP |
| boddeke | 3:238fa32bcb32 | 13 | // wakeup on rising edge |
| boddeke | 3:238fa32bcb32 | 14 | // reeed on PA_0 to Vss (3.3V) |
| boddeke | 3:238fa32bcb32 | 15 | // no internal pull in sleep mode |
| boddeke | 3:238fa32bcb32 | 16 | DigitalIn reed_sensor(PA_0, PullNone); |
| boddeke | 2:a2371a150758 | 17 | |
| boddeke | 0:fc05a249a095 | 18 | RawSerial pc(PA_2,NC); |
| boddeke | 0:fc05a249a095 | 19 | |
| boddeke | 0:fc05a249a095 | 20 | volatile int reed_has_changed = 0; |
| boddeke | 0:fc05a249a095 | 21 | |
| boddeke | 0:fc05a249a095 | 22 | void isr_reed_sensor_change(void) { |
| boddeke | 0:fc05a249a095 | 23 | reed_has_changed++; |
| boddeke | 0:fc05a249a095 | 24 | } |
| boddeke | 0:fc05a249a095 | 25 | |
| boddeke | 0:fc05a249a095 | 26 | main() { |
| boddeke | 0:fc05a249a095 | 27 | |
| boddeke | 0:fc05a249a095 | 28 | pc.baud(115200); |
| boddeke | 0:fc05a249a095 | 29 | |
| boddeke | 0:fc05a249a095 | 30 | pc.printf("Build: " __DATE__ ", " __TIME__"\r\n"); |
| boddeke | 0:fc05a249a095 | 31 | |
| boddeke | 1:e504b1f72d05 | 32 | mDot* dot = mDot::getInstance(); |
| boddeke | 0:fc05a249a095 | 33 | dot->setLogLevel(MTSLog::TRACE_LEVEL); |
| boddeke | 0:fc05a249a095 | 34 | |
| boddeke | 3:238fa32bcb32 | 35 | // clear the EWUP state |
| boddeke | 2:a2371a150758 | 36 | if(dot->getStandbyFlag()){ |
| boddeke | 2:a2371a150758 | 37 | pc.printf("clearing standby flag\r\n"); |
| boddeke | 2:a2371a150758 | 38 | PWR->CSR &= ~PWR_CSR_EWUP; |
| boddeke | 2:a2371a150758 | 39 | } |
| boddeke | 2:a2371a150758 | 40 | |
| boddeke | 2:a2371a150758 | 41 | // DigitalIn reed_sensor(REED_PORT); |
| boddeke | 0:fc05a249a095 | 42 | // reed_sensor.mode(PullUp); |
| boddeke | 0:fc05a249a095 | 43 | |
| boddeke | 0:fc05a249a095 | 44 | InterruptIn reed_sensor_change(REED_PORT); |
| boddeke | 0:fc05a249a095 | 45 | reed_sensor_change.fall(&isr_reed_sensor_change); |
| boddeke | 0:fc05a249a095 | 46 | reed_sensor_change.rise(&isr_reed_sensor_change); |
| boddeke | 3:238fa32bcb32 | 47 | reed_sensor_change.mode(PullNone); |
| boddeke | 2:a2371a150758 | 48 | |
| boddeke | 0:fc05a249a095 | 49 | while(1) { |
| boddeke | 0:fc05a249a095 | 50 | |
| boddeke | 0:fc05a249a095 | 51 | for(int i=0;i<10;i++) { |
| boddeke | 0:fc05a249a095 | 52 | |
| boddeke | 2:a2371a150758 | 53 | pc.printf("Read %d, Changes: %d\r\n",reed_sensor.read(),reed_has_changed); |
| boddeke | 0:fc05a249a095 | 54 | wait(1.0); |
| boddeke | 0:fc05a249a095 | 55 | } |
| boddeke | 0:fc05a249a095 | 56 | |
| boddeke | 3:238fa32bcb32 | 57 | dot->sleep((int)30, mDot::RTC_ALARM_OR_INTERRUPT, true); |
| boddeke | 0:fc05a249a095 | 58 | } |
| boddeke | 0:fc05a249a095 | 59 | } |