Files
resy/project/motor.c
2017-04-25 07:33:04 +02:00

87 lines
1.4 KiB
C
Executable File

#include<stdio.h>
#include<fcntl.h>
#include<string.h>
#include<unistd.h>
#include<string.h>
#include "gpio.h"
#define PIN_MOTOR1_FORWARD "20"
#define PIN_MOTOR1_REVERSE "13"
#define PIN_MOTOR2_FORWARD "19"
#define PIN_MOTOR2_REVERSE "26"
#define MOTOR_ON 1
#define MOTOR_OFF 0
void forward(int motorNumber)
{
if(motorNumber == 1)
{
writeOutput(PIN_MOTOR1_FORWARD, MOTOR_ON);
}
else if(motorNumber == 2)
{
writeOutput(PIN_MOTOR2_FORWARD, MOTOR_ON);
}
else if(motorNumber == 3)
{
writeOutput(PIN_MOTOR1_FORWARD, MOTOR_ON);
writeOutput(PIN_MOTOR2_FORWARD, MOTOR_ON);
}
}
void reverse(int motorNumber)
{
if(motorNumber == 1)
{
writeOutput(PIN_MOTOR1_REVERSE, MOTOR_ON);
}
else if(motorNumber == 2)
{
writeOutput(PIN_MOTOR2_REVERSE, MOTOR_ON);
}
else if(motorNumber == 3)
{
writeOutput(PIN_MOTOR1_REVERSE, MOTOR_ON);
writeOutput(PIN_MOTOR2_REVERSE, MOTOR_ON);
}
}
int main(int argc, char* argv[])
{
registerOutput(PIN_MOTOR1_FORWARD);
registerOutput(PIN_MOTOR1_REVERSE);
registerOutput(PIN_MOTOR2_FORWARD);
registerOutput(PIN_MOTOR2_REVERSE);
if(strcmp(argv[1],"1")==0)
{
forward(1);
}
else if(strcmp(argv[1],"2")==0)
{
forward(2);
}
else if(strcmp(argv[1],"3")==0)
{
reverse(1);
}
else if(strcmp(argv[1],"4")==0)
{
reverse(2);
}
else if(strcmp(argv[1],"0")==0)
{
freePin(PIN_MOTOR1_FORWARD);
freePin(PIN_MOTOR1_REVERSE);
freePin(PIN_MOTOR2_FORWARD);
freePin(PIN_MOTOR2_REVERSE);
}
return 0;
}