ext_io.c
来自「NEC527多功能电表完整源代码,包括LCD驱动,显示,计量,存储,整个527驱」· C语言 代码 · 共 101 行
C
101 行
#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 + =
减小字号Ctrl + -
显示快捷键?