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: ComparatorIn mbed
Fork of ComparatorIn_demo by
main.cpp@0:e5deffde916d, 2013-06-05 (annotated)
- Committer:
- frankvnk
- Date:
- Wed Jun 05 18:07:02 2013 +0000
- Revision:
- 0:e5deffde916d
- Child:
- 1:fb35e688f9f4
Initial version
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| frankvnk | 0:e5deffde916d | 1 | #include "ComparatorIn.h" |
| frankvnk | 0:e5deffde916d | 2 | #include "mbed.h" |
| frankvnk | 0:e5deffde916d | 3 | |
| frankvnk | 0:e5deffde916d | 4 | DigitalOut myled(LED1); // Blue |
| frankvnk | 0:e5deffde916d | 5 | DigitalOut cmpled(LED2); // Green |
| frankvnk | 0:e5deffde916d | 6 | DigitalOut cmp_en (PTD5); |
| frankvnk | 0:e5deffde916d | 7 | AnalogIn cmp_lvl (PTB0); |
| frankvnk | 0:e5deffde916d | 8 | ComparatorIn compi(PTC8, NC); // light sensor comparator input |
| frankvnk | 0:e5deffde916d | 9 | |
| frankvnk | 0:e5deffde916d | 10 | // Comparator callback function |
| frankvnk | 0:e5deffde916d | 11 | void cmp_ISR(unsigned int cmp_ret) |
| frankvnk | 0:e5deffde916d | 12 | { |
| frankvnk | 0:e5deffde916d | 13 | printf("\n%02X - Light sensor : %7.5f Volt - ",cmp_ret,cmp_lvl*3.3); |
| frankvnk | 0:e5deffde916d | 14 | if ((cmp_ret & CMP_SCR_CFR_MASK)==CMP_SCR_CFR_MASK) |
| frankvnk | 0:e5deffde916d | 15 | { |
| frankvnk | 0:e5deffde916d | 16 | printf("<INT=Rising edge on HSCMP0>\n"); |
| frankvnk | 0:e5deffde916d | 17 | } |
| frankvnk | 0:e5deffde916d | 18 | if ((cmp_ret & CMP_SCR_CFF_MASK)==CMP_SCR_CFF_MASK) |
| frankvnk | 0:e5deffde916d | 19 | { |
| frankvnk | 0:e5deffde916d | 20 | printf("<INT=Falling edge on HSCMP0>\n "); |
| frankvnk | 0:e5deffde916d | 21 | } |
| frankvnk | 0:e5deffde916d | 22 | } |
| frankvnk | 0:e5deffde916d | 23 | |
| frankvnk | 0:e5deffde916d | 24 | |
| frankvnk | 0:e5deffde916d | 25 | |
| frankvnk | 0:e5deffde916d | 26 | int main() |
| frankvnk | 0:e5deffde916d | 27 | { |
| frankvnk | 0:e5deffde916d | 28 | cmp_en = 1; |
| frankvnk | 0:e5deffde916d | 29 | |
| frankvnk | 0:e5deffde916d | 30 | compi._callbackISR(&cmp_ISR); // Set comparator callback to cmp_ISR |
| frankvnk | 0:e5deffde916d | 31 | compi.treshold(0x20); // Set copmarator threshold to 1.03V = 20 * 3.3V / 64 |
| frankvnk | 0:e5deffde916d | 32 | |
| frankvnk | 0:e5deffde916d | 33 | while(1) |
| frankvnk | 0:e5deffde916d | 34 | { |
| frankvnk | 0:e5deffde916d | 35 | // printf("InP : %02X - InM : %02X - DACCR : %02X\n",(CMP0->MUXCR & 0x38)>>3,(CMP0->MUXCR & 0x07),(CMP0->DACCR & 0x3f)); |
| frankvnk | 0:e5deffde916d | 36 | printf("Light sensor : %7.5f Volt\n",cmp_lvl*3.3); |
| frankvnk | 0:e5deffde916d | 37 | myled = 1; |
| frankvnk | 0:e5deffde916d | 38 | wait(1); |
| frankvnk | 0:e5deffde916d | 39 | myled = 0; |
| frankvnk | 0:e5deffde916d | 40 | wait(0.2); |
| frankvnk | 0:e5deffde916d | 41 | if (compi.status() == 0x01) |
| frankvnk | 0:e5deffde916d | 42 | { |
| frankvnk | 0:e5deffde916d | 43 | cmpled = 0; |
| frankvnk | 0:e5deffde916d | 44 | } |
| frankvnk | 0:e5deffde916d | 45 | else |
| frankvnk | 0:e5deffde916d | 46 | { |
| frankvnk | 0:e5deffde916d | 47 | cmpled = 1; |
| frankvnk | 0:e5deffde916d | 48 | } |
| frankvnk | 0:e5deffde916d | 49 | } |
| frankvnk | 0:e5deffde916d | 50 | } |
| frankvnk | 0:e5deffde916d | 51 |
