📄 ext_io.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 + -