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

main.cpp

Committer:
takeuchi
Date:
2012-07-12
Revision:
0:c0a82f25d544

File content as of revision 0:c0a82f25d544:

// CW02
// ._ hyouji

#include "mbed.h"
#include "TextLCD0420.h"

#define ON 1
#define OFF 0
#define XON 0
#define XOFF 1
#define XHI 0
#define XLOW 1
#define HI 1
#define LOW 0
#define OUBUN 1
#define WABUN 0

DigitalOut mled1(LED1);
DigitalOut mled2(LED2);
DigitalOut mled3(LED3);
DigitalOut mled4(LED4);
DigitalIn CW(p5);
DigitalIn SP_SELECT(p6);
DigitalIn GENGO_MODE(p7);
DigitalIn GENGO_SELECT(p8);

TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3

int min_ms,max_ms;

void set_speed(){
  if(SP_SELECT==HI){
    min_ms=30;
    max_ms=90;
    lcd.locate(5,0);
    lcd.printf("H");
  }
  else if(SP_SELECT==LOW){
    min_ms=70;
    max_ms=210;
    lcd.locate(5,0);
    lcd.printf("L");
  }
}  

int main() {      
  
  int scount; 

  lcd.cls();
  lcd.printf("*CW02 \n");
  set_speed();
  lcd.locate(0,1); 
  
  while(1){

        while(CW==XLOW){
        }
        
        scount=0;  
        mled1=ON;
        while(CW==XHI){
          wait_ms(1);
          scount++;
        }
        mled1=OFF;
        
        if(min_ms < scount && scount < max_ms){ 
          lcd.printf(".");
        }

        else{
          lcd.printf("_");
        }   
                 
  }//while 1
}//main