switch test

Dependencies:   PID QEI USBHost mbed

main.cpp

Committer:
neoqased
Date:
2014-10-20
Revision:
0:3ed6d9ac83bc

File content as of revision 0:3ed6d9ac83bc:

#include "mbed.h"       //ああああ
#include "PID.h"
#include "USBHostMSD.h"
#include "QEI.h"

//1回転あたりのパルス
#define PULSE_PER_REVOLUTION 200
//PIDのウェイト ミリ秒
#define PID_RATE 10

DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);
DigitalIn dip1(p5);
DigitalIn dip2(p6);
DigitalIn dip3(p7);
DigitalIn dip4(p8);
DigitalIn startsw(p9);
DigitalOut buzzer(p18);     //電子ブザー用デジタル出力
AnalogIn volume(p20);
PwmOut pwm(p21);


Timer timer;                //タイマー

int DIPled(){       //DIPスイッチの状態によってledを光らせる関数
    if(dip1 == 1) led1 = 1;
    else led1 = 0;
    if(dip2 == 1) led2 = 1;
    else led2 = 0;
    if(dip3 == 1) led3 = 1;
    else led3 = 0;
    if(dip4 == 1) led4 = 1;
    else led4 = 0;
    return 0;
}

int SW(){        //スタートスイッチ用関数,押して離したらスタート
    int i = 0, j = 0;
    while(i < 3){       //チャタリング除去,15msにわたってスタートスイッチが押されていればbreak
        if(startsw == 1){
            i++;
        }else{
            i = 0;
        }
        DIPled();
        wait_ms(5);
    }
    while(j < 3){       //上に同じ,スタートスイッチが離されたことを検知
        if(startsw == 0){
            j++;
        }else{
            j = 0;
        }
        DIPled();
        wait_ms(5);
    }
    return 0;
}

int main() {
    float vol = 0;
    DIPled();
    USBHostMSD msc("usb");
    while(1) {
        SW();
        vol = 1.0 - volume;
        buzzer = 1;
        wait(0.1);
        buzzer = 0;
        wait(0.1);
        buzzer = 1;
        wait(2*vol);
        buzzer = 0;
        
    }
}