⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 motor.c

📁 it is a program that drive the motor for the PIC18f4520 that support large current
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -