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@2:eca0702650ca, 2020-02-11 (annotated)
- Committer:
- gitakichi
- Date:
- Tue Feb 11 06:28:36 2020 +0000
- Revision:
- 2:eca0702650ca
- Parent:
- 1:4847c54eed20
- Child:
- 3:31c005437fa5
can receive data
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 | 2:eca0702650ca | 18 | int time_start,time_end,time_data,delta_t; |
gitakichi | 2:eca0702650ca | 19 | int data_en = 0; |
gitakichi | 2:eca0702650ca | 20 | |
gitakichi | 1:4847c54eed20 | 21 | while(1) { |
gitakichi | 0:a3131d121a8f | 22 | int iState = g_dpinIrReceiver; |
gitakichi | 2:eca0702650ca | 23 | |
gitakichi | 1:4847c54eed20 | 24 | //detect H signal |
gitakichi | 1:4847c54eed20 | 25 | if( iState != iState_prev ) { |
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 | 2:eca0702650ca | 29 | |
gitakichi | 2:eca0702650ca | 30 | if(data_en == 1) { |
gitakichi | 2:eca0702650ca | 31 | //time_data = timer.read_us(); |
gitakichi | 2:eca0702650ca | 32 | //delta_t = time_data - time_end; |
gitakichi | 2:eca0702650ca | 33 | delta_t = time_start - time_end; |
gitakichi | 2:eca0702650ca | 34 | data_en = 0; |
gitakichi | 2:eca0702650ca | 35 | if(delta_t > 1523) g_serial.printf("H");//625*2.5 |
gitakichi | 2:eca0702650ca | 36 | else g_serial.printf("L"); |
gitakichi | 2:eca0702650ca | 37 | } |
gitakichi | 2:eca0702650ca | 38 | } else if(iState == 1) { //end (detect posedge |
gitakichi | 2:eca0702650ca | 39 | |
gitakichi | 2:eca0702650ca | 40 | |
gitakichi | 1:4847c54eed20 | 41 | time_end = timer.read_us();//over flow? |
gitakichi | 1:4847c54eed20 | 42 | //compare and output |
gitakichi | 2:eca0702650ca | 43 | delta_t = time_end - time_start; |
gitakichi | 2:eca0702650ca | 44 | |
gitakichi | 2:eca0702650ca | 45 | if(delta_t > 8430) g_serial.printf("flame,");//625*15 |
gitakichi | 2:eca0702650ca | 46 | else { |
gitakichi | 2:eca0702650ca | 47 | data_en = 1; |
gitakichi | 2:eca0702650ca | 48 | //g_serial.printf("data,"); |
gitakichi | 2:eca0702650ca | 49 | //g_serial.printf( "%d, ", time_start - time_end); |
gitakichi | 2:eca0702650ca | 50 | } |
gitakichi | 1:4847c54eed20 | 51 | } |
gitakichi | 2:eca0702650ca | 52 | } |
gitakichi | 1:4847c54eed20 | 53 | iState_prev = iState; |
gitakichi | 2:eca0702650ca | 54 | |
gitakichi | 1:4847c54eed20 | 55 | //iState_prev = iState; |
gitakichi | 1:4847c54eed20 | 56 | //int iMicroSec = timer.read_us(); |
gitakichi | 1:4847c54eed20 | 57 | //g_serial.printf( "%d, ", iMicroSec - iMicroSec_prev ); |
gitakichi | 1:4847c54eed20 | 58 | //iMicroSec_prev = iMicroSec; |
gitakichi | 0:a3131d121a8f | 59 | } |
gitakichi | 0:a3131d121a8f | 60 | } |