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

📄 ext_io.c

📁 NEC527多功能电表完整源代码,包括LCD驱动,显示,计量,存储,整个527驱动程序!
💻 C
字号:
#pragma interrupt   INTTM50 MD_INT50
#include "includes.h"

unsigned char RelayerState;
unsigned char RemotePulseWide[REMOTE_OUT_ITEM] = {0};

void ResetRelayerState(void)
{
    FramRead( ADDR_OF_RELAYER_STATE, &RelayerState, 1 );
    if( RelayerState & BIT0 )
    {
        EXT_IO_RELAY_1_ON();
    }
    else
    {
        EXT_IO_RELAY_1_OFF();
    }
	
    if( RelayerState & BIT2 )
    {
        EXT_IO_RELAY_2_ON();
    }
    else
    {
        EXT_IO_RELAY_2_OFF();
    }			
}

void TM50Init( void )
{
    TMMK50 = 1;
    TMIF50 = 0;	
    TMC50.7 = 0;
    TCL50 = 0x06;
    CR50 = TIMER_05MS;
    TMMK50 = 0;
    TMC50.7 = 1;
}

void TM50Stop(void)
{
    TMC50.7 = 0;
    TMMK50 = 1;	
}

__interrupt void MD_INT50(void) 
{
    unsigned char ii;

    TMC50.7 = 0;
    TMIF50 = 0;
    for( ii = 0; ii < REMOTE_OUT_ITEM; ii++ )
    {
        if( _SysPotInfo.remote_flag & ( BIT0 << ii ) )
        {
            if( ii < 4 )
            {
                if( RemotePulseCount[ii] )
                {
                    if( RemotePulseWide[ii] < OUTPUT_PULSE_START )
                    {
                        P2 &=~ ( BIT0 << ii );
                    }
                    else if( RemotePulseWide[ii] < OUTPUT_PULSE_END )
                    {
                        P2 |= ( BIT0 << ii );
                    }
                    else
                    {
                        RemotePulseWide[ii] = 0;
                        RemotePulseCount[ii]--;
                    }
                }
            }
            else 
            {
                if( SignalOutPutFlag & ( BIT0 << ( ii-4 ) ) )
                {
                    if( RemotePulseWide[ii] < OUTPUT_PULSE_START )                
                    {
                        P2 &=~ ( BIT0 << ii );
                    }
                    else if( RemotePulseWide[ii] < OUTPUT_PULSE_END )
                    {
                        P2 |= ( BIT0 << ii );
                    }
                    else
                    {
                        RemotePulseWide[ii] = 0;
                        SignalOutPutFlag &=~ ( BIT0 << ( ii-4 ) );
                    }
                }
            }
        }
    }
	
    TMC50.7 = 1;	
}


⌨️ 快捷键说明

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