📄 gfd_usb_rw.c
字号:
/*************************************************************************************************************
Module Name:
HA_GFDUSBRW.C
Description:
This is a file for usb READWRITE.
Revision History:
Version Date Author Comment
0.0 2003.7.23 lmq Initial Creation
0.1 2003.7.25 zl changed
***************************************************************************************************************/
//****************************************************************************************************************
//I N C L U D E S
//****************************************************************************************************************
#include "gfd_usb_irq.h"
#include "HA_TypeDef.h"
#include "hardware_reg.h"
#include "debug.h"
//***************************************************************************************************************
//函数原型声明
//***************************************************************************************************************
ER usb_write_reg(U32 reg, U32 val);
ER usb_read_reg(U32 reg);
U8 usb_chang_reg32_to_reg8(U32 reg);
U16 usb_change_reg32_to_reg16(U32 reg);
U8 usb_get_regbit15_to_8(U32 reg);
ER usb_RMW_reg(U32 reg, U32 val);
ER usb_lock_readreg(U32 reg);
//****************************************************************************************************************
//函数定义
//****************************************************************************************************************
ER usb_write_reg(U32 reg, U32 val)
{
U32 temp;
U8 i = 0;
*(RP)reg = val;
temp = *(RP)reg;
while((!((temp &= write_success) == write_success))&&((++i) < 100))
{ temp = *(RP)reg; }
return(0);
}
ER usb_read_reg(U32 reg)
{
U32 temp,t;
U8 i = 0;
*(RP)USB_READFLAG = 0x1;
temp = *(RP)reg;
do
{ temp = *(RP)reg;
t = temp; }
while((!(temp &= read_success)) && ((++i)< 100));
t &= 0x0fffffff;
return t;
}
U32 usb_write_read_reg(U32 reg, U32 val)
{
U32 data;
usb_write_reg(reg, val);
data = usb_read_reg(reg);
return data;
}
U8 usb_chang_reg32_to_reg8(U32 reg)
{
U8 reg8;
reg8 = (U8)(usb_read_reg(reg));
return reg8;
}
U16 usb_change_reg32_to_reg16(U32 reg)
{
U16 reg16;
reg16 = (U16)(usb_read_reg(reg));
return reg16;
}
U8 usb_get_regbit15_to_8(U32 reg)
{
U8 reg8;
reg8 = (U8)(usb_read_reg(reg)>>8);
return reg8;
}
ER usb_RMW_reg(U32 reg, U32 val)
{
U32 tmp;
*(RP)USB_APPLOCK = 0X01;
tmp = usb_read_reg(reg);
tmp |= val;
usb_write_reg(reg,tmp);
*(RP)USB_APPLOCK = 0X00;
return 0;
}
ER usb_RMW_clrreg(U32 reg, U32 val)
{
U32 tmp;
*(RP)USB_APPLOCK = 0X01;
tmp = usb_read_reg(reg);
tmp &= val;
usb_write_reg(reg,tmp);
*(RP)USB_APPLOCK = 0X00;
return 0;
}
ER usb_lock_readreg(U32 reg)
{
U32 tmp;
*(RP)USB_APPLOCK = 0X01;
tmp = usb_read_reg(reg);
*(RP)USB_APPLOCK = 0X00;
return tmp;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -