⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zspreg.c

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 C
字号:
// Dram.c : 模拟 ZSP REGISTER
//


#include "..\stdafx.h"
/******************************************************************/

#define RPC_ZSPREG_MAX   6

char*    RockPCZspRegName[] =
{
    "%unknowed",
    "%imask",
    "%timer0",
    "%timer1",
    "%tc",
    "%smode",
};

/***********************************************************************/

INT16U RockPCZspReg[RPC_ZSPREG_MAX];

/**************************************************************/
INT16U *RockPCZspRegGetAddrByName(char * creg)
{
    INT16U  ii ;
    for (ii = 1; ii < RPC_ZSPREG_MAX ; ii++)
    {
        if (!strcmp(RockPCZspRegName[ii] , creg))
            return &RockPCZspReg[ii];
    }
    TRINFO("ERROR CREG[%s]", creg);  //由于 creg 前面存在 %,会进行转义,倒置打印错误
    return &RockPCZspReg[0];
}

INT16U RockPcZspRead_Creg(char* creg)
{
    return *RockPCZspRegGetAddrByName(creg);
}

void RockPcZspWrite_Creg(char* creg  , INT16U val)
{
    *RockPCZspRegGetAddrByName(creg) = val ;
}

void RockPcZspBitSet_Creg(char* creg  , INT16U bitNum)
{
    INT16U  *reg = RockPCZspRegGetAddrByName(creg) ;
    *reg = (*reg) | (0x0001 << bitNum) ;
}

void RockPcZspBitClear_Creg(char* creg  , INT16U bitNum)
{
    INT16U *reg = RockPCZspRegGetAddrByName(creg) ;
    *reg = (*reg) & (~(0x0001 << bitNum)) ;
}

void RockPcZspBitInvert_Creg(char* creg  , INT16U bitNum)
{
    INT16U *reg = RockPCZspRegGetAddrByName(creg) ;
    *reg = (*reg) ^((0x0001 << bitNum)) ;
}

/*--------------------------------------*/


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -