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.
main.cpp@1:4847c54eed20, 2020-02-11 (annotated)
- Committer:
- gitakichi
- Date:
- Tue Feb 11 05:55:21 2020 +0000
- Revision:
- 1:4847c54eed20
- Parent:
- 0:a3131d121a8f
- Child:
- 2:eca0702650ca
compare data length
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
gitakichi | 0:a3131d121a8f | 1 | //reference from |
gitakichi | 0:a3131d121a8f | 2 | //https://www.hiramine.com/physicalcomputing/mbed/irreceiver.html |
gitakichi | 0:a3131d121a8f | 3 | |
gitakichi | 0:a3131d121a8f | 4 | #include "mbed.h" |
gitakichi | 0:a3131d121a8f | 5 | |
gitakichi | 0:a3131d121a8f | 6 | DigitalIn g_dpinIrReceiver(D2); |
gitakichi | 0:a3131d121a8f | 7 | |
gitakichi | 0:a3131d121a8f | 8 | Serial g_serial(USBTX, USBRX); |
gitakichi | 0:a3131d121a8f | 9 | |
gitakichi | 0:a3131d121a8f | 10 | int main() |
gitakichi | 0:a3131d121a8f | 11 | { |
gitakichi | 0:a3131d121a8f | 12 | g_serial.baud(115200); |
gitakichi | 0:a3131d121a8f | 13 | |
gitakichi | 0:a3131d121a8f | 14 | Timer timer; |
gitakichi | 0:a3131d121a8f | 15 | timer.start(); |
gitakichi | 1:4847c54eed20 | 16 | //int iMicroSec_prev = timer.read_us(); |
gitakichi | 0:a3131d121a8f | 17 | int iState_prev = 1; |
gitakichi | 1:4847c54eed20 | 18 | int time_start,time_end; |
gitakichi | 1:4847c54eed20 | 19 | |
gitakichi | 1:4847c54eed20 | 20 | while(1) { |
gitakichi | 0:a3131d121a8f | 21 | int iState = g_dpinIrReceiver; |
gitakichi | 1:4847c54eed20 | 22 | |
gitakichi | 1:4847c54eed20 | 23 | //detect H signal |
gitakichi | 1:4847c54eed20 | 24 | if( iState != iState_prev ) { |
gitakichi | 1:4847c54eed20 | 25 | //timer start |
gitakichi | 1:4847c54eed20 | 26 | if(iState == 0) { |
gitakichi | 1:4847c54eed20 | 27 | //timer.start();//reset |
gitakichi | 1:4847c54eed20 | 28 | time_start = timer.read_us();//start(detect negedge |
gitakichi | 1:4847c54eed20 | 29 | } |
gitakichi | 1:4847c54eed20 | 30 | if(iState == 1) {//end (detect posedge |
gitakichi | 1:4847c54eed20 | 31 | time_end = timer.read_us();//over flow? |
gitakichi | 1:4847c54eed20 | 32 | //compare and output |
gitakichi | 1:4847c54eed20 | 33 | int delta_t = time_end - time_start; |
gitakichi | 1:4847c54eed20 | 34 | |
gitakichi | 1:4847c54eed20 | 35 | if(delta_t > 8430) g_serial.printf("flame,"); |
gitakichi | 1:4847c54eed20 | 36 | else g_serial.printf("data,"); |
gitakichi | 1:4847c54eed20 | 37 | |
gitakichi | 1:4847c54eed20 | 38 | //g_serial.printf( "%d, ", time_start - time_end); |
gitakichi | 1:4847c54eed20 | 39 | } |
gitakichi | 1:4847c54eed20 | 40 | } |
gitakichi | 1:4847c54eed20 | 41 | iState_prev = iState; |
gitakichi | 1:4847c54eed20 | 42 | |
gitakichi | 1:4847c54eed20 | 43 | //iState_prev = iState; |
gitakichi | 1:4847c54eed20 | 44 | //int iMicroSec = timer.read_us(); |
gitakichi | 1:4847c54eed20 | 45 | //g_serial.printf( "%d, ", iMicroSec - iMicroSec_prev ); |
gitakichi | 1:4847c54eed20 | 46 | //iMicroSec_prev = iMicroSec; |
gitakichi | 0:a3131d121a8f | 47 | } |
gitakichi | 0:a3131d121a8f | 48 | } |