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

📄 tm422.c

📁 ARM得编程实例。很经典。在win ce5.0环境下的编程实例
💻 C
字号:
/*******************************************************************
                  
*******************************************************************/
#include "system.h"
#include "utility.h"
#include "dbstru.h"
#include "hardware.h"

#include "dbs\dbs.h"
#include "dsp\dsp.h"

#include "tm422.h"


/*
    功能 : 得到手动切换开关"模拟/停机/运行"的状态 
    参数 : 无
    返回值 : 0xAA 表示处于"运行"状态
             0x55 表示处于"停机"状态
             0x00 表示处于"模拟"状态
             0xFF 表示手动切换模块离线或故障 
*/
INT8U  getSSRKeyStatus(void)
{
    INT8U *pIn;
    
    if (1 == getIOStatus(7)) 
    {
        pIn = getIOInp(7);
        if ((0x55 == *(INT8U*)(pIn + 24)) &&
            (0xAA == *(INT8U*)(pIn + 25)) &&
            (0xAA == *(INT8U*)(pIn + 26)) &&
            (0x55 == *(INT8U*)(pIn + 27))  )
        {
            return(0xAA);
        }
        else if ((0x55 == *(INT8U*)(pIn + 24)) &&
                 (0xAA == *(INT8U*)(pIn + 25)) &&
                 (0x55 == *(INT8U*)(pIn + 26)) &&
                 (0xAA == *(INT8U*)(pIn + 27)))
        {
            return(0x55);
        }
        else if ((0xAA == *(INT8U*)(pIn + 24)) &&
                 (0x55 == *(INT8U*)(pIn + 25)) &&
                 (0x55 == *(INT8U*)(pIn + 26)) &&
                 (0xAA == *(INT8U*)(pIn + 27)))
        {
            return(0x00);
        }
        else
        {
            return(0xFF);
        }
    }
    else
    {
        return(0xFF);
    }
}


/*
    功能 : 得到手动切换开关"A系为主/B系为主"的状态 
    参数 : 无
    返回值 : 0xAA 表示处于"本系为主"状态
             0x55 表示处于自动状态或另一个系为主的状态 
             0xFF 表示手动切换模块离线或故障 
*/
INT8U  getABKeyStatus(void)
{
    INT8U *pIn;
    
    if (1 == getIOStatus(7)) 
    {
        pIn = getIOInp(7);
        if ((0xAA == *(INT8U*)(pIn + 28)) &&
            (0x55 == *(INT8U*)(pIn + 29))  )
        {
            return(0xAA);
        }
        else if ((0x55 == *(INT8U*)(pIn + 28)) &&
                 (0xAA == *(INT8U*)(pIn + 29)) )
        {
            return(0x55);
        }
        else
        {
            return(0xFF);
        }
    }
    else 
    {
        return(0xFF);
    }
}


/*
    功能 : 设置TM422上的LED及机柜上的指示灯
    参数 : 
        failLED 故障指示灯
        simLED 模拟试验指示灯
        synLED 同步指示灯
        MasterLED 主系指示灯
        WorkLED 工作指示灯
        minfo 系的主从信息
        syninfo 系间同步信息
        对所有LED和指示灯,0xAA表示点亮,0x55表示熄灭 
    返回值 : 无 
*/
void SetTM422LED(INT8U failLED, INT8U simLED, INT8U synLED, 
           INT8U MasterLED, INT8U WorkLED, INT8U minfo, INT8U syninfo)
{
    INT8U *pOut;
    
    pOut = getIOOutp(7);
    
    *(INT8U*)pOut = failLED;
    *(INT8U*)(pOut + 1) = simLED;
    *(INT8U*)(pOut + 2) = synLED;
    *(INT8U*)(pOut + 3) = MasterLED;
    *(INT8U*)(pOut + 4) = WorkLED;
    *(INT8U*)(pOut + 5) = minfo;
    *(INT8U*)(pOut + 6) = syninfo;
    *(INT8U*)(pOut + 7) = getSysID();
}

⌨️ 快捷键说明

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