📄 motor.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 + -