📄 hutil.h
字号:
/*
* 文件名:HUtil.h HUtil.c
* 实现功能:
* 所有关于硬件部分的初始化以及控制函数
* 包括以下几个部分:
* SCI串口通信
* A/D转换接口
* 舵机控制(helm motor)
* 直流电机控制(back motor)
*/
#ifndef __HUTIL_H__
#define __HUTIL_H__
/* ------------------------- SCI 串口通信部分 -------------------------
* 配置串口通信(9600HZ),实现字符串的发送功能,用于单机调试
* 串口中断指定方式为 interrupt void sci_int(),然后在rpm中指定地址
*/
/*
* 串口通信初始化
*/
extern void uart_init(void);
/*
* 发送一个字节
*/
extern void print_byte(unsigned char data);
/*
* 发送二进制数据
*/
extern void print_hex(unsigned char* data,int size);
/*
* 发送字符串数据
*/
extern void print_string(char* str);
/*
* 接受一个字节
*/
#define RECEIVE_BYTE(b) \
do { \
while(!SCI0SR1_RDRF); \
(b) = SCI0DRL; \
} while(0)
/* -------------------------- 舵机控制部分 ----------------------------
* pwm输出口0,1合成一个16位的pwm发生器作为小车舵机的驱动信号(pwm 1 输出)
*/
/*
* 舵机初始化
*/
extern void helm_motor_init(void);
/*
* 用于测试舵机
*/
extern void helm_motor_test(void);
/*
* 舵机使能
*/
#define HMOTOR_ENABLE() PWME_PWME1 = 1;
#define HMOTOR_DISABLE() PWME_PWME1 = 0;
/*
* 设置和获得舵机的PWM计数
*/
#define HMOTOR_PWM_PE() (PWMDTY01)
#define SET_HM_PWM_PE(p) PWMDTY01 = (p)
/* -------------------------- A/D接口函数 ----------------------------
* AD0-AD7读入各个红外线传感器的输出电压,使用8bit的精度,共进行两次A/D转换
* PA0,PA1 控制CD4052的通路情况
*/
/*
* 初始化PA0,PA1以及单片机的AD模块
*/
extern void sensor_init(void);
/*
* 读入16个端口的数据
* dataout - 16字节的unsigned char数组,用于存放各个端口的电压输出
*/
extern void sensor_input(unsigned char* dataout);
/* -------------------------- 直流电机控制 -----------------------------
* 使用PWM3产生33886的控制信号,以及设定好IN2,D1,D2等控制引脚
*
* PA口参数:
* PA2 - IN2 - Output - Low
* PA4 - -D2 - Output - High
* PA5 - D1 - Output - Low
*/
/*
* 初始化后轮直流电机,包括pwm及PA口数据
*/
extern void back_motor_init(void);
/*
* 直流电机使能
*/
#define BMOTOR_ENABLE() PWME_PWME3 = 1;
#define BMOTOR_DISABLE() PWME_PWME3 = 0;
/*
* 设置和获得直流电机的PWM计数
*/
#define BMOTOR_PWM_PE() (PWMDTY23)
#define SET_BM_PWM_PE(p) PWMDTY23 = (p)
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -