📄 basic_function.c
字号:
/***********************************************************
* Company : 3ALOGICS *
************************************************************/
#include "common.h"
#include "base.h"
void Delay(DWORD t)
{
while(t--)
{
_nop_();
}
}
void DelayIdleTime(WORD time)
{
WORD i;
for(i=0;i<time;i++)
{
Delay(5); // 20 or 10 or 5
}
}
///////////////////////////////////////
//----------Reset Operation----------//
///////////////////////////////////////
void Reset_TRH031M (void)
{
RST = 0;
Delay_ms(100);
RST = 1;
Delay_ms(100);
RST = 0;
Delay_ms(100);
}
void Write(BYTE Address, BYTE Command)
{
CSB = 0;
ADBus = Address;
PALE = 1;
PALE = 0;
ADBus = Command;
WRB = 0;
WRB = 1;
CSB = 1;
// Line1_Display();
// String_Out("SM Write");
// Line2_Display();
// Dec2HexOut(Command);
// Delay_ms(1000);
// Lcd_Clear();
}
BYTE Read(BYTE Address)
{
BYTE temp;
CSB = 0;
ADBus = Address;
PALE = 1;
PALE = 0;
ADBus = 0xFF;
RDB = 0;
temp = ADBus;
RDB = 1;
CSB = 1;
// Line1_Display();
// String_Out("SM Read");
// Line2_Display();
// Dec2HexOut(temp);
// Delay_ms(1000);
// Lcd_Clear();
return(temp);
}
//////////////////////////////////////////////////////
//----------Separated Dedicated R/W Strobe----------//
//////////////////////////////////////////////////////
void SD_PageSelect(BYTE Address)
{
CSB = 0;
PALE = 1;
ADDR2 = 0;
ADDR1 = 0;
ADDR0 = 0;
ADBus = (((Address&0x38)>>3)+0x80);
WRB = 0;
WRB = 1;
CSB = 1;
}
void SD_Write(BYTE Address, BYTE Command)
{
SD_PageSelect(Address);
CSB = 0;
PALE = 1;
ADDR2 = ((Address&0x04)>>2);
ADDR1 = ((Address&0x02)>>1);
ADDR0 = (Address&0x01);
ADBus = Command;
WRB = 0;
WRB = 1;
CSB = 1;
}
BYTE SD_Read(BYTE Address)
{
BYTE temp;
SD_PageSelect(Address);
CSB = 0;
PALE = 1;
ADDR2 = ((Address&0x04)>>2);
ADDR1 = ((Address&0x02)>>1);
ADDR0 = (Address&0x01);
ADBus = 0xFF;
RDB = 0;
temp = ADBus;
RDB = 1;
CSB = 1;
return(temp);
}
/////////////////////////////////////////////////////
//----------Common Multiplexed R/W Strobe----------//
/////////////////////////////////////////////////////
void CM_Write(BYTE Address, BYTE Command)
{
CSB = 0;
ADBus = Address;
PALE = 1;
PALE = 0;
ADBus = Command;
RNW = 0;
NDS = 0;
NDS = 1;
RNW = 1;
CSB = 1;
}
BYTE CM_Read(BYTE Address)
{
BYTE temp;
CSB = 0;
ADBus = Address;
PALE = 1;
PALE = 0;
ADBus = 0xFF;
RNW = 1;
NDS = 0;
temp = ADBus;
NDS = 1;
RNW = 1;
CSB = 1;
return(temp);
}
///////////////////////////////////////////////////
//----------Common Dedicated R/W Strobe----------//
///////////////////////////////////////////////////
void CD_PageSelect(BYTE Address)
{
CSB = 0;
PALE = 1;
ADDR2 = 0;
ADDR1 = 0;
ADDR0 = 0;
ADBus = (((Address&0x38)>>3)+0x80);
RNW = 0;
NDS = 0;
NDS = 1;
RNW = 1;
CSB = 1;
}
void CD_Write(BYTE Address, BYTE Command)
{
CD_PageSelect(Address);
CSB = 0;
PALE = 1;
ADDR2 = ((Address&0x04)>>2);
ADDR1 = ((Address&0x02)>>1);
ADDR0 = (Address&0x01);
ADBus = Command;
RNW = 0;
NDS = 0;
NDS = 1;
RNW = 1;
CSB = 1;
}
BYTE CD_Read(BYTE Address)
{
BYTE temp;
CD_PageSelect(Address);
CSB = 0;
PALE = 1;
ADDR2 = ((Address&0x04)>>2);
ADDR1 = ((Address&0x02)>>1);
ADDR0 = (Address&0x01);
ADBus = 0xFF;
RNW = 1;
NDS = 0;
temp = ADBus;
NDS = 1;
return(temp);
}
///////////////////////////////////////
//----------Update Register----------//
///////////////////////////////////////
void SetBit(BYTE Address, BYTE Mask, BYTE Update_Value){
BYTE temp;
temp = Read(Address);
temp = ((temp&Mask)|Update_Value);
Write(Address,temp);
}
void ClearBit(BYTE Address, BYTE Mask, BYTE Update_Value){
BYTE temp;
temp = Read(Address);
temp = ((temp&Mask)|Update_Value);
Write(Address,temp);
}
void Reci_ADBus(BYTE *Buf)
{
BYTE i;
BYTE temp;
temp = Read(0x04);
for(i=0;i<temp;i++)
{
Buf[i] = Read(0x02);
}
Buf[temp] = '\0';
}
void RFon(void)
{
Write(0x11, 0x5B); // TxControl Setting 5B -> On
return;
}
// RF Field Off =============================================================
void RFoff(void)
{
Write(0x11, 0x58); // TxControl Setting 58 -> Off
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -