虽然移植完毕,但是不work。需要细调……

Dependencies:   mbed

SomeTest.cpp

Committer:
lixianyu
Date:
2016-06-07
Revision:
3:c6caae712d5d
Parent:
2:99785a1007a4

File content as of revision 3:c6caae712d5d:

#include "SomeTest.h"
#include "mbed.h"

extern DigitalOut myled;
Ticker myTicker;
Ticker myTicker1;
Serial mpc(P0_4,P0_0);
#if 0
#include "RollPitch.h"

extern MPU6050 mpu;
extern Timer g_Timer;

float ypr[3];             //Yaw,Pitch,Roll三个轴的角度值
void testMPU6050(void)
{
    mpc.baud(115200);
    bool ret = dmpSetup();
    if (ret == true) {
        mpc.printf("dmp ready\r\n");
    } else {
        mpc.printf("dmp not ready\r\n");
    }
    dmpGetYPR(ypr);
    mpc.printf("ypr[0] = %f, ypr[1] = %f, ypr[2] = %f\r\n", ypr[0], ypr[1], ypr[2]);
    while (1) {
        wait(0.5);
        dmpGetYPR(ypr);
        mpc.printf("ypr[0] = %f, ypr[1] = %f, ypr[2] = %f\r\n", ypr[0], ypr[1], ypr[2]);
#if 0
        if (mpu.testConnection() == true)
            mpc.printf("connect ok\r\n");
#endif
    }
}
#endif

static void flip()
{
    static uint32_t c = 0;
    c++;
    if ((c % 2000) == 0) {
        myled = !myled;
    }
}
void testTicker(void)
{
    myTicker.attach_us(&flip, 25);
    while (1) {}
}
#if 0
#define PIN_EN      4      //PORTB,0
#define PIN_DIRA    A0    //PORTA,7
#define PIN_STEPA   5   //PORTB,1
#define PIN_DIRB    A1    //PORTA,6
#define PIN_STEPB   6   //PORTB,2
#define PIN_DIRC    A2    //PORTA,5
#define PIN_STEPC   7   //PORTB,3
#define PIN_DIRD    A3    //PORTA,4
#define PIN_STEPD   8   //PORTD,6
#else
#define PIN_EN      P0_25
#define PIN_DIRA    P0_7
#define PIN_STEPA   P0_24

#define PIN_DIRB    P0_6
#define PIN_STEPB   P0_1

#define PIN_DIRC    P0_14
#define PIN_STEPC   P0_20
#define PIN_DIRD    P0_23
#define PIN_STEPD   P0_19
#endif
#if 0
//Stepper stepperL(PIN_DIRB, PIN_STEPB);              //左电机,使用stepper底板A接口
//Stepper stepperR(PIN_DIRA, PIN_STEPA);              //右电机,使用stepper底板D接口
DigitalOut LdirB(PIN_DIRB);
DigitalOut LstepB(PIN_STEPB);
DigitalOut RdirB(PIN_DIRA);
DigitalOut RstepB(PIN_STEPA);
DigitalOut SteperE(PIN_EN);
static void timeHandle_left(void)
{
    //LstepB = !LstepB;
    LstepB = 1;
    wait_us(1);
    LstepB = 0;
}

static void timeHandle_right(void)
{
    //LstepB = !LstepB;
    RstepB = 1;
    wait_us(1);
    RstepB = 0;
}

void testStepper(void)
{
    SteperE = 1;
    LdirB = 0;
    RdirB = 0;
    LstepB = 0;
    RstepB = 0;
    myTicker.attach_us(&timeHandle_left, 510);
    myTicker1.attach_us(&timeHandle_right, 2500);
    SteperE = 0;
    while (1) {}
}
#endif

#if 0
DigitalOut SteperE(PIN_EN);
DigitalOut Rdir(PIN_DIRA);
PwmOut rstep(PIN_STEPA);//P0_24, D5
#if 1
DigitalOut Ldir(PIN_DIRB);
PwmOut lstep(PIN_STEPB);//P0_1, D6
#endif

void testStepper1(void)
{
    int widthL = 1;
    int widthR = 1;
    int period = 410; // 2500Hz
    myled = 0;
    SteperE = 0;
    
    Rdir = 1;
    rstep.period_us(period);
    rstep.pulsewidth_us(widthR);
    
    #if 1
    Ldir = 1;
    lstep.period_us(period);
    lstep.pulsewidth_us(widthL);
    #endif
    
    //wait(2.0);
    //SteperE = 0;
    while (1) {
        #if 0
        wait(0.1);
        widthR += 50;
        if (widthR >= 1500) {
            widthR = 0;
        }
        rstep.pulsewidth_us(widthR);
        
        widthL += 50;
        if (widthL >= 500) {
            widthL = 0;
        }
        lstep.pulsewidth_us(widthL);
        #else
        period += 20;
        lstep.period_us(period);
        rstep.period_us(period);
        //myled = !myled;
        wait(0.5);
        #endif
    }
}
#endif