for Bertl2014 HTL-Graz-Göoesting
Steuerung_PWM.cpp
- Committer:
- hemmer_matthias
- Date:
- 2016-01-18
- Revision:
- 2:738a1372c90a
File content as of revision 2:738a1372c90a:
#include "mbed.h" // decleration for left engine PwmOut MotorL_EN(P1_15); DigitalOut MotorL_FORWARD(P1_1); DigitalOut MotorL_REVERSE(P1_0); // decleration for right engine PwmOut MotorR_EN(P0_21); DigitalOut MotorR_FORWARD(P1_3); DigitalOut MotorR_REVERSE(P1_4); void period_us(int periode) // underprogramm fot the periode { MotorL_EN.period_us(periode); // declaration for the Periode of the left egngine MotorR_EN.period_us(periode); // declaration for the Periode of the right egngine } void bertl_engine(int left, int right) { int index_Engine = 0; // agrument for the Switch // decleration for left and right engine if (left > 0 && right > 0) // all arguments are positive index_Engine = 1; else if (left < 0 && right > 0) // left argument is negative and right is positive index_Engine = 2; else if (left > 0 && right < 0) // left argument is positive and right is negative index_Engine = 3; else if (left < 0 && right < 0) // left argument is negative and right is negative index_Engine = 4; else if (left == 0 && right < 0) // left argument is zero and right is negative index_Engine = 5; else if (left == 0 && right > 0) // left argument is zero and right is positive index_Engine = 6; else if (left < 0 && right == 0) // left argument is negative and right is is zero index_Engine = 7; else if (left > 0 && right == 0) // left argument is positive and right is is zero index_Engine = 8; else // all egines are zero index_Engine = 9; switch (index_Engine) //begin Switch { case 1: MotorR_EN.pulsewidth_us(right); // to declratate the speed of the right engine (-us - +us) MotorL_EN.pulsewidth_us(left); // to declratate the speed of the left engine (-us - +us) MotorL_REVERSE = 0; MotorR_REVERSE = 0; MotorL_FORWARD = 1; MotorR_FORWARD = 1; break; case 2: MotorR_EN.pulsewidth_us(right); MotorL_EN.pulsewidth_us(-left); MotorL_FORWARD = 0; MotorR_REVERSE = 0; MotorL_REVERSE = 1; MotorR_FORWARD = 1; break; case 3: MotorR_EN.pulsewidth_us(-right); MotorL_EN.pulsewidth_us(left); MotorL_REVERSE = 0; MotorR_FORWARD = 0; MotorL_FORWARD = 1; MotorR_REVERSE = 1; break; case 4: MotorR_EN.pulsewidth_us(-right); MotorL_EN.pulsewidth_us(-left); MotorL_FORWARD = 0; MotorR_FORWARD = 0; MotorL_REVERSE = 1; MotorR_REVERSE = 1; break; case 5: MotorL_EN = 0; MotorR_EN.pulsewidth_us(-right); MotorR_FORWARD = 0; MotorR_REVERSE = 1; break; case 6: MotorL_EN = 0; MotorR_EN.pulsewidth_us(right); MotorR_REVERSE = 0; MotorR_FORWARD = 1; break; case 7: MotorR_EN = 0; MotorL_EN.pulsewidth_us(-left); MotorL_FORWARD = 0; MotorL_REVERSE = 1; break; case 8: MotorR_EN = 0; MotorL_EN.pulsewidth_us(left); MotorL_REVERSE = 0; MotorL_FORWARD = 1; break; case 9: MotorR_EN = 0; MotorL_EN = 0; break; }//end Switch }//end bertl_engine