エレキジャックweb mbed入門 mbed CWデコーダ課題2です。短点長点の長さを計測して ・- で表示します。CWデコーダ基板が必要です。

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?

UserRevisionLine numberNew 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