📄 upsd3200.c
字号:
/******************************************************************
** 文件名: UPSD3200.C
** Copyright (c) 昊元科技技术开发部
** 创建人: 马 亮
** 日 期: 2005/04/5
** 修改人:
** 日 期:
** 描 述: 对upsd3200的 PA---PD口进行位操作的函数
** 版 本:
******************************************************************/
#include "include.h"
/**************************************************************************
*函数名称: InitalIoPort()
*输入参数: void
*输出参数: void
*函数功能: 对upsd3200 PA--PD端口初始化
**************************************************************************/
#if 0
void InitalIoPort()
{
/*********设置PB口属性**************/
PSD8xx_reg.DATAIN_B = 0x00;
PSD8xx_reg.DATAOUT_B = 0x00;
PSD8xx_reg.CONTROL_B = 0x00; // 普通IO
PSD8xx_reg.DIRECTION_B = 0xdf; // PB5为输入
PSD8xx_reg.DRIVE_B = 0x00; // 脚配置成CMOS方式
}
/****************对位控制的函数********************/
/**************************************************************************
*函数名称: BitOn(U8 volatile *target, U8 scr)
*输入参数: U8 *target --- 要操作数据指针
* U8 scr --- 要操作的数据位
*输出参数: void
*函数功能: 对输入的数据指针的值的相应位置 1
**************************************************************************/
void BitOn(U8 volatile *target, U8 scr)
{
(*target) |= scr;
}
/**************************************************************************
*函数名称: BitOff(U8 volatile *target, U8 scr)
*输入参数: U8 *target --- 要操作数据指针
* U8 scr --- 要操作的数据位
*输出参数: void
*函数功能: 对输入的数据指针的值的相应位置 0
**************************************************************************/
void BitOff(U8 volatile *target, U8 scr)
{
(*target) &= (~scr);
}
#endif
/**************************************************************************
*函数名称: BitReverse(U8 volatile *target, U8 scr)
*输入参数: U8 *target --- 要操作数据指针
* U8 scr --- 要操作的数据位
*输出参数: void
*函数功能: 对输入的数据指针的值的相应位 取反
**************************************************************************/
#if 0
void BitReverse(U8 volatile *target, U8 scr)
{
(*target) ^= scr;
}
/**************************************************************************
*函数名称: RdBit(U8 volatile *target, U8 scr)
*输入参数: U8 *target --- 要操作数据指针
* U8 scr --- 要操作的数据位
*输出参数: 0 输入的数据指针的值的相应位 为 0
1 输入的数据指针的值的相应位 为 1
*函数功能: 返回输入的数据指针的值的相应位的逻辑
**************************************************************************/
U8 RdBit(U8 volatile *target, U8 scr)
{
U8 rDataStatus;
rDataStatus = *target;
rDataStatus &= scr;
if(rDataStatus)
rDataStatus = 1;
else
rDataStatus = 0;
return rDataStatus;
}
#endif
/**************************************************************************
*函数名称: SetupPortB()
*输入参数: U8 EnableBit --- 输入引脚名称
* logic --- 输入逻辑
* 0 对应引脚置0
* 1 对应引脚置1
*输出参数: void
*函数功能: 对Pb端口进行位操作
**************************************************************************/
void SetupPortB(U8 EnableBit, U8 logic)
{
PSD8xx_reg.DIRECTION_B |= EnableBit;//设置B端口对应位的方向为输出
if(logic)
PSD8xx_reg.DATAOUT_B |= EnableBit;
else
PSD8xx_reg.DATAOUT_B &= (~EnableBit);
}
/**************************************************************************
*函数名称: ReadPortB()
*输入参数: U8 EnableBit --- 输入引脚名称
*输出参数:
* 0 对应引脚状态为 0
* 1 对应引脚状态为 1
*函数功能: 返回端口B对应位的逻辑
**************************************************************************/
U8 ReadPortB(U8 EnableBit)
{
U8 PinStatus;
PSD8xx_reg.DIRECTION_B &= ~EnableBit; //设置b端口对应位的方向为输入
// PinStatus = RdBit(&PSD8xx_reg.DATAIN_B, EnableBit);
PinStatus = PSD8xx_reg.DATAIN_B&EnableBit;
return PinStatus;
}
/**************************************************************************
*函数名称: SetupPortA()
*输入参数: U8 EnableBit --- 输入引脚名称
* logic --- 输入逻辑
* 0 对应引脚置0
* 1 对应引脚置1
*输出参数: void
*函数功能: 对PA端口进行位操作
**************************************************************************/
void SetupPortA(U8 EnableBit, U8 logic)
{
PSD8xx_reg.DIRECTION_A |= EnableBit;//设置B端口对应位的方向为输出
if(logic)
PSD8xx_reg.DATAOUT_A |= EnableBit;
else
PSD8xx_reg.DATAOUT_A &= (~EnableBit);
}
/**************************************************************************
*函数名称: SetupPortA()
*输入参数: U8 EnableBit --- 输入引脚名称
* logic --- 输入逻辑
* 0 对应引脚置0
* 1 对应引脚置1
*输出参数: void
*函数功能: 对PA端口进行位操作
**************************************************************************/
void SetupPortD(U8 EnableBit, U8 logic)
{
PSD8xx_reg.DIRECTION_D |= EnableBit;//设置B端口对应位的方向为输出
if(logic)
PSD8xx_reg.DATAOUT_D |= EnableBit;
else
PSD8xx_reg.DATAOUT_D &= (~EnableBit);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -