motor.c

来自「it is a program that drive the motor for」· C语言 代码 · 共 65 行

C
65
字号
#include <delays.h>
#include <timers.h>

//***************define pins for motor***************//
#define		MF			PORTDbits.RD2
#define		MB			PORTDbits.RD3

//***************define motor variable***************//
#define		motor_period		40
#define		motor_forward()		MF=1,MB=0
#define		motor_backward()	MF=0,MB=1
#define		motor_stop()		MF=0,MB=0

//***************define function prototype***************//
void motor_isr(void);
void set_motor(unsigned char, unsigned char);

//***************define global variable***************//
enum mode{FORWARD=0,BACKWARD};
unsigned char motor_speed=0, motor_count=0, motor_mode=FORWARD;

#pragma interrupt timer_isr
void timer_isr(void)
{
	TMR1L=0x9B;	//250us
	TMR1H=0xFF;
	motor_isr();
}

/*
#pragma code low_vector=0x18
void low_interrupt(void)
{
	_asm goto timer_isr _endasm
}
*/

#pragma code

void motor_isr(void)
{
	if (motor_count < motor_period)
		motor_count++;
	else
		motor_count=0;
		
	if (motor_count < motor_speed)
	{
		if (motor_mode == FORWARD)
			motor_forward();
		if (motor_mode == BACKWARD)
			motor_backward();
	}
	else 
		motor_stop();
}



void set_motor(unsigned char mode, unsigned char speed)
{
	motor_mode = mode;
	motor_speed = speed;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?