?? 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 + -