エレキジャックweb mbed入門 mbed CWデコーダ課題2です。短点長点の長さを計測して ・- で表示します。CWデコーダ基板が必要です。
main.cpp@0:c0a82f25d544, 2012-07-12 (annotated)
- Committer:
- takeuchi
- Date:
- Thu Jul 12 02:12:49 2012 +0000
- Revision:
- 0:c0a82f25d544
???????web mbed?? mbed CW??????2?????????-???????CW????????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
takeuchi | 0:c0a82f25d544 | 1 | // CW02 |
takeuchi | 0:c0a82f25d544 | 2 | // ._ hyouji |
takeuchi | 0:c0a82f25d544 | 3 | |
takeuchi | 0:c0a82f25d544 | 4 | #include "mbed.h" |
takeuchi | 0:c0a82f25d544 | 5 | #include "TextLCD0420.h" |
takeuchi | 0:c0a82f25d544 | 6 | |
takeuchi | 0:c0a82f25d544 | 7 | #define ON 1 |
takeuchi | 0:c0a82f25d544 | 8 | #define OFF 0 |
takeuchi | 0:c0a82f25d544 | 9 | #define XON 0 |
takeuchi | 0:c0a82f25d544 | 10 | #define XOFF 1 |
takeuchi | 0:c0a82f25d544 | 11 | #define XHI 0 |
takeuchi | 0:c0a82f25d544 | 12 | #define XLOW 1 |
takeuchi | 0:c0a82f25d544 | 13 | #define HI 1 |
takeuchi | 0:c0a82f25d544 | 14 | #define LOW 0 |
takeuchi | 0:c0a82f25d544 | 15 | #define OUBUN 1 |
takeuchi | 0:c0a82f25d544 | 16 | #define WABUN 0 |
takeuchi | 0:c0a82f25d544 | 17 | |
takeuchi | 0:c0a82f25d544 | 18 | DigitalOut mled1(LED1); |
takeuchi | 0:c0a82f25d544 | 19 | DigitalOut mled2(LED2); |
takeuchi | 0:c0a82f25d544 | 20 | DigitalOut mled3(LED3); |
takeuchi | 0:c0a82f25d544 | 21 | DigitalOut mled4(LED4); |
takeuchi | 0:c0a82f25d544 | 22 | DigitalIn CW(p5); |
takeuchi | 0:c0a82f25d544 | 23 | DigitalIn SP_SELECT(p6); |
takeuchi | 0:c0a82f25d544 | 24 | DigitalIn GENGO_MODE(p7); |
takeuchi | 0:c0a82f25d544 | 25 | DigitalIn GENGO_SELECT(p8); |
takeuchi | 0:c0a82f25d544 | 26 | |
takeuchi | 0:c0a82f25d544 | 27 | TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3 |
takeuchi | 0:c0a82f25d544 | 28 | |
takeuchi | 0:c0a82f25d544 | 29 | int min_ms,max_ms; |
takeuchi | 0:c0a82f25d544 | 30 | |
takeuchi | 0:c0a82f25d544 | 31 | void set_speed(){ |
takeuchi | 0:c0a82f25d544 | 32 | if(SP_SELECT==HI){ |
takeuchi | 0:c0a82f25d544 | 33 | min_ms=30; |
takeuchi | 0:c0a82f25d544 | 34 | max_ms=90; |
takeuchi | 0:c0a82f25d544 | 35 | lcd.locate(5,0); |
takeuchi | 0:c0a82f25d544 | 36 | lcd.printf("H"); |
takeuchi | 0:c0a82f25d544 | 37 | } |
takeuchi | 0:c0a82f25d544 | 38 | else if(SP_SELECT==LOW){ |
takeuchi | 0:c0a82f25d544 | 39 | min_ms=70; |
takeuchi | 0:c0a82f25d544 | 40 | max_ms=210; |
takeuchi | 0:c0a82f25d544 | 41 | lcd.locate(5,0); |
takeuchi | 0:c0a82f25d544 | 42 | lcd.printf("L"); |
takeuchi | 0:c0a82f25d544 | 43 | } |
takeuchi | 0:c0a82f25d544 | 44 | } |
takeuchi | 0:c0a82f25d544 | 45 | |
takeuchi | 0:c0a82f25d544 | 46 | int main() { |
takeuchi | 0:c0a82f25d544 | 47 | |
takeuchi | 0:c0a82f25d544 | 48 | int scount; |
takeuchi | 0:c0a82f25d544 | 49 | |
takeuchi | 0:c0a82f25d544 | 50 | lcd.cls(); |
takeuchi | 0:c0a82f25d544 | 51 | lcd.printf("*CW02 \n"); |
takeuchi | 0:c0a82f25d544 | 52 | set_speed(); |
takeuchi | 0:c0a82f25d544 | 53 | lcd.locate(0,1); |
takeuchi | 0:c0a82f25d544 | 54 | |
takeuchi | 0:c0a82f25d544 | 55 | while(1){ |
takeuchi | 0:c0a82f25d544 | 56 | |
takeuchi | 0:c0a82f25d544 | 57 | while(CW==XLOW){ |
takeuchi | 0:c0a82f25d544 | 58 | } |
takeuchi | 0:c0a82f25d544 | 59 | |
takeuchi | 0:c0a82f25d544 | 60 | scount=0; |
takeuchi | 0:c0a82f25d544 | 61 | mled1=ON; |
takeuchi | 0:c0a82f25d544 | 62 | while(CW==XHI){ |
takeuchi | 0:c0a82f25d544 | 63 | wait_ms(1); |
takeuchi | 0:c0a82f25d544 | 64 | scount++; |
takeuchi | 0:c0a82f25d544 | 65 | } |
takeuchi | 0:c0a82f25d544 | 66 | mled1=OFF; |
takeuchi | 0:c0a82f25d544 | 67 | |
takeuchi | 0:c0a82f25d544 | 68 | if(min_ms < scount && scount < max_ms){ |
takeuchi | 0:c0a82f25d544 | 69 | lcd.printf("."); |
takeuchi | 0:c0a82f25d544 | 70 | } |
takeuchi | 0:c0a82f25d544 | 71 | |
takeuchi | 0:c0a82f25d544 | 72 | else{ |
takeuchi | 0:c0a82f25d544 | 73 | lcd.printf("_"); |
takeuchi | 0:c0a82f25d544 | 74 | } |
takeuchi | 0:c0a82f25d544 | 75 | |
takeuchi | 0:c0a82f25d544 | 76 | }//while 1 |
takeuchi | 0:c0a82f25d544 | 77 | }//main |