📄 main.h
字号:
/*
1。使用portc0-7作为8路舵机的脉冲信号
2。可调用控制函数HM_control()随时控制相应舵机的旋转角度,运行状态
3。角度控制精度为9度。
4。可根据需要,再添加可控舵机的路数,应可同时控制十六路,非同时控制更多路。
5。仅用了Timer0实现定时控制,通过对100us的中断个数进行软件计数来产生特定的控制脉冲
6。对不同类型的舵机,需要进行相应的修改。适合于周期20ms,脉宽0.5ms-2.5ms的舵机
*/
/**********************************************************************************
Main.h
**********************************************************************************/
#ifndef _MAIN_
#define _MAIN_
#define xtal 8 //定义延时函数所用到的晶振的频率
#define uint unsigned int
#define uchar unsigned char
#define Start 1
#define Stop 0
//八路舵机控制信号
#define HM0 0
#define HM1 1
#define HM2 2
#define HM3 3
#define HM4 4
#define HM5 5
#define HM6 6
#define HM7 7
//八路舵机运动状态量,初始为不给信号,舵机处于自由状态。
uchar HM0_state = Stop;
uchar HM1_state = Stop;
uchar HM2_state = Stop;
uchar HM3_state = Stop;
uchar HM4_state = Stop;
uchar HM5_state = Stop;
uchar HM6_state = Stop;
uchar HM7_state = Stop;
//舵机位置变量:各通道变量的取值范围是5-25,表示舵机控制要求的0.5ms-2.5ms的高电平脉冲,
uchar HM0_position = 0;
uchar HM1_position = 0;
uchar HM2_position = 0;
uchar HM3_position = 0;
uchar HM4_position = 0;
uchar HM5_position = 0;
uchar HM6_position = 0;
uchar HM7_position = 0;
//舵机控制函数,包括舵机通道选择变量num,状态设置变量state,舵机旋转角度变量angle。
void HM_control(uchar num, uchar state, uchar angle);
void Delay_ms(uint n); //较为精确地延时n×1ms。
#endif
/**************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -