a

Dependencies:   mbed mbed-STM32F103C8T6

main.cpp

Committer:
AK1412
Date:
2018-12-29
Revision:
0:0cb42d74d475

File content as of revision 0:0cb42d74d475:

#include "stm32f103c8t6.h"
#include "mbed.h"

#define pow1 0.5
#define pow2 0.7
#define time 0.7

DigitalOut led( LED1);
CANMessage msg;
CAN Reseive ( PA_11, PA_12);

PwmOut dcY( PA_8);//Y軸のpwmピン
DigitalOut motordcY1( PB_15);
DigitalOut motordcY2( PB_14);

PwmOut dcZ( PB_3);//Z軸のpwmピン
DigitalOut motordcZ1( PA_15);
DigitalOut motordcZ2( PA_12);

DigitalIn switch1( PA_1);
DigitalIn switch2( PA_2);
DigitalIn switch3( PA_3);
DigitalIn switch4( PA_4);//micro switch x 4

int mode = 0;

void motorForward()
{
    dcY.period_us( 50);
    dcY = pow1;
    motordcY1 = 1;
    motordcY2 = 0;
}
void motorBack()
{
    dcY.period_us( 50);
    dcY = pow1;
    motordcY1 = 0;
    motordcY2 = 1;
}
void motorDown()
{
    dcZ.period_us( 50);
    dcZ = pow2;
    motordcZ1 = 0;
    motordcZ2 = 1;
}
void motorUp()
{
    dcZ.period_us( 50);
    dcZ = pow2;
    motordcZ1 = 1;
    motordcZ2 = 0;
}
void motorStopY()//Y軸が止まる
{
    motordcY1 = 0;
    motordcY2 = 0;
}
void case0(){
    if( switch1.read() == 0){
        motorBack();
        if( switch1.read() == 1)
            motorStopY();
        }
    else if( switch1.read() == 1)
        motorStopY();
    mode = 1;
}
void case1(){
    motorForward();
    motorUp();
    //wait( time);
    mode = 2;
}
void case2(){
    motorForward();
    motorDown();
    //wait( time);
    mode = 3;
}
void case3(){
    motorBack();
    motorDown();
    //wait( time);
    mode = 4;
}
void case4(){
    motorBack();
    motorUp();
    //wait( time);
    mode = 1;
}

int main(){
    /*led.write(0);
    
    while( true){
        if( Reseive.id == 1 ){
            data
            }
        wait( 0.1);
        }*/

    while(1){      
        switch( mode){
            case 0:
            case0();
            break;
            case 1:
            case1();
            break;
            case 2:
            case2();
            break;
            case 3:
            case3();
            break;
            case 4:
            case4();
            break;
        }
        
        if( switch1.read() == 0)
            led.write(0);
        else if( switch1.read() == 1)
            led.write(1);
            
        wait( time);
        }
}