📄 zj__.c
字号:
limit_yf5 += 50 ;
if( limit_yf5 > 50000 ) limit_yf5 = 50 ;
break ;
case SET_FIRST_YF :
first_yf += 1 ;
if( first_yf > 2000 ) first_yf = 1 ;
break ;
case SET_SECOND_YF :
second_yf += 1 ;
if( second_yf > 2000 ) second_yf = 1 ;
break ;
}
}
if ( keys_old & 0x40 )
{
time_add1 = 0 ;
time_long2 = 0 ;
}
if ( KEY3_CLICK )
{
time_add1 = 1 ;
time_long2 = 0 ;
keys_down &= 0xbf ;
switch( setmode )
{
case SET_LIMIT_YF :
limit_yf -= 50 ;
if( limit_yf < 50 ) limit_yf = 50000 ;
break ;
case SET_LIMIT_YF1 :
limit_yf1 -= 50 ;
if( limit_yf1 < 50 ) limit_yf1 = 50000 ;
break ;
case SET_LIMIT_YF2 :
limit_yf2 -= 50 ;
if( limit_yf2 < 50 ) limit_yf2 = 50000 ;
break ;
case SET_LIMIT_YF3 :
limit_yf3 -= 50 ;
if( limit_yf3 < 50 ) limit_yf3 = 50000 ;
break ;
case SET_LIMIT_YF4 :
limit_yf4 -= 50 ;
if( limit_yf4 < 50 ) limit_yf4 = 50000 ;
break ;
case SET_LIMIT_YF5 :
limit_yf5 -= 50 ;
if( limit_yf5 < 50 ) limit_yf5 = 50000 ;
break ;
case SET_FIRST_YF :
first_yf -= 1 ;
if( first_yf < 1 ) first_yf = 2000 ;
break ;
case SET_SECOND_YF :
second_yf -= 1 ;
if( second_yf < 1 ) second_yf = 2000 ;
break ;
}
}
if ( time_add1 >= 20 )
{
time_add1 = 0 ;
time_long2 = 1 ;
}
if ( time_long2 >= 30 )
{
time_long2 = 1 ;
switch( setmode )
{
case SET_LIMIT_YF :
limit_yf -= 50 ;
if( limit_yf < 50 ) limit_yf = 50000 ;
break ;
case SET_LIMIT_YF1 :
limit_yf1 -= 50 ;
if( limit_yf1 < 50 ) limit_yf1 = 50000 ;
break ;
case SET_LIMIT_YF2 :
limit_yf2 -= 50 ;
if( limit_yf2 < 50 ) limit_yf2 = 50000 ;
break ;
case SET_LIMIT_YF3 :
limit_yf3 -= 50 ;
if( limit_yf3 < 50 ) limit_yf3 = 50000 ;
break ;
case SET_LIMIT_YF4 :
limit_yf4 -= 50 ;
if( limit_yf4 < 50 ) limit_yf4 = 50000 ;
break ;
case SET_LIMIT_YF5 :
limit_yf5 -= 50 ;
if( limit_yf5 < 50 ) limit_yf5 = 50000 ;
break ;
case SET_FIRST_YF :
first_yf -= 1 ;
if( first_yf < 1 ) first_yf = 2000 ;
break ;
case SET_SECOND_YF :
second_yf -= 1 ;
if( second_yf < 1 ) second_yf = 2000 ;
break ;
}
}
break ;
case ZJ_TEST :
if ( KEY1_CLICK )
{
keys_down &= 0xef ;
if ( ++ testmode >= MAX_TEST )
{
while(1) ;
}
}
if ( KEY2_CLICK )
{
switch( testmode )
{
case TEST_SET_COLOR :
if ( ++ test_temp >= COLOR_COUNT ) test_temp = 0 ;
break ;
case TEST_SETPL_1 :
case TEST_SETPL_2 :
case TEST_SETPL_3 :
case TEST_SETPL_4 :
m1 = testmode - TEST_SETPL_1 ;
if ( -- color_pl[m1] == 0 )
color_pl[m1] = 300 ;
eep_color_pl[m1] = color_pl[m1] ;
break ;
}
keys_down &= 0xdf ;
}
if ( KEY3_CLICK )
{
switch( testmode )
{
case TEST_SET_COLOR :
m1 = color_order[test_temp] ;
add_color:
if ( ++ m1 >= 9 )
{
m1 = 1 ;
}
for( m2 = 0 ; m2 < COLOR_COUNT ; m2 ++ )
{
if ( color_order[m2] == m1 )
{
goto add_color ;
}
}
color_order[test_temp] = m1 ;
eep_color_order[test_temp] = m1 ;
break ;
case TEST_SETPL_1 :
case TEST_SETPL_2 :
case TEST_SETPL_3 :
case TEST_SETPL_4 :
m1 = testmode - TEST_SETPL_1 ;
if ( ++ color_pl[m1] == 301 )
color_pl[m1] = 1 ;
eep_color_pl[m1] = color_pl[m1] ;
break ;
}
keys_down &= 0xbf ;
}
break ;
case ZJ_CLEAR_OK :
if ( KEY1_CLICK || KEY2_CLICK || KEY3_CLICK )
{
this_zsf = 0 ;
this_ztf = 0 ;
bianhao = 1 ;
while(1) ;
}
break ;
case ZJ_GETCOLOR :
if ( KEY1_CLICK )
{
keys_down &= 0xef ;
print_count = ! print_count ;
this_zsf = 0 ;
this_ztf = 0 ;
}
else if( KEY2_CLICK )
{
keys_down &= 0xdf ;
count_flag = 0;
print_count = 1 ;
check_fen = 1 ;
checkmode = 1 ;
last_zsf = this_zsf ;
last_ztf = this_ztf ;
this_zsf = 0 ;
this_ztf = 0 ;
on_fjs = 0 ;
}
else if( KEY3_CLICK )
{
keys_down &= 0xbf ;
count_flag =!count_flag ;
print_count = 0 ;
check_fen = 0 ;
checkmode = 0 ;
}
break ;
default :
break ;
}
if ( get_in != get_read )
{
m1 = uart_data() ;
if ( m1 & 0x80 )
{
m1 &= 0x7f ;
if ( m1 == my_ip ) // 0x7f
{
statue_cmd = SC_WAIT_IP ;
}
else
{
statue_cmd = SC_LISTENING ;
}
}
else
{
switch( statue_cmd )
{
case SC_WAIT_IP :
if ( m1 == target_sav )
{
statue_cmd = SC_COMMAND ;
}
else
{
statue_cmd = SC_LISTENING ;
}
break ;
case SC_COMMAND :
if ( m1 == order_sav )
{
return_parm_cnt = parm_len[m1,2] ;
if ( return_parm_cnt )
{
statue_cmd = SC_DATA ;
}
else
{
statue_cmd = SC_LISTENING ;
}
}
else
{
statue_cmd = SC_LISTENING ;
}
break ;
case SC_DATA :
if ( time_cmd >= 6 ) time_cmd -= 5 ;
switch( order_sav )
{
case CMD_CHAZHANG :
if ( return_parm_cnt >= 9 )
{
m2 = 16 - return_parm_cnt ;
m3 = m2 % 2 ;
m2 = m2 / 2 ;
if ( m3 == 0 )
{
zsf_long.byte[m2] = m1 << 4 ;
}
else
{
zsf_long.byte[m2] |= ( m1 & 0xf ) ;
}
}
else
{
m2 = 8 - return_parm_cnt ;
m3 = m2 % 2 ;
m2 = m2 / 2 ;
if ( m3 == 0 )
{
ztf_long.byte[m2] = m1 << 4 ;
}
else
{
ztf_long.byte[m2] |= ( m1 & 0xf ) ;
}
}
if ( -- return_parm_cnt == 0 )
{
m2 = target_sav ;
this_zsf += zsf_long.dblword ;
this_ztf += ztf_long.dblword ;
on_fjs ++ ;
if( check_fen != 1 ) print_data( m2 ) ;
target_sav = m2 ;
if ( ++ target_sav >= ( max_fj + 1 ) )
{
time_cmd = 0 ;
if( check_fen != 1 )print_end() ;
else
{
statue_sys = ZJ_BOARDCOLOR ;
time_boardcolor = MAXTIME_BOARDCOLOR ;
}
}
else
{
send_order( target_sav , CMD_CHAZHANG ) ;
}
}
break ;
case CMD_GETYF :
if ( return_parm_cnt == 3 )
{
max_yz_temp = (unsigned int)m1 ;
return_parm_cnt = 2 ;
}
else
if ( return_parm_cnt == 2 )
{
max_yz_temp |= ( (unsigned int)m1 << 7 ) ;
return_parm_cnt = 1 ;
}
else
{
max_yz_temp |= ( (unsigned int)m1 << 14 ) ;
if ( max_yz_temp > max_yz )
{
max_yz = max_yz_temp ;
max_yz_player = target_sav - 1 ;
}
if ( ++ target_sav >= ( max_fj + 1 ) )
{
change_statue( ZJ_GETCOLOR ) ;
statue_cmd = SC_LISTENING ;
}
else
{
send_order( target_sav , CMD_GETYF ) ;
}
}
break ;
default :
statue_cmd = SC_LISTENING ;
break ;
}
break ;
default :
statue_cmd = SC_LISTENING ;
break ;
}
}
}
if ( time_cmd >= MAXTIME_CMD ) // 25
{
time_cmd = 0 ;
if ( ++ times_resend >= MAXTIMES_RESEND ) // 3
{
times_resend = 0 ;
switch( order_sav )
{
case CMD_GETYF :
if ( ++ target_sav >= ( max_fj + 1 ) )
{
change_statue( ZJ_GETCOLOR ) ;
}
else
{
send_order( target_sav , CMD_GETYF ) ;
}
break ;
case CMD_CHAZHANG :
zsf_long.dblword = 0xffffffff ;
ztf_long.dblword = 0xffffffff ;
m2 = target_sav ;
if( check_fen != 1 )print_data( m2 ) ;
target_sav = m2 ;
if ( ++ target_sav >= ( max_fj + 1 ) )
{
if( check_fen != 1 )print_end() ;
else
{
statue_sys = ZJ_BOARDCOLOR ;
time_boardcolor = MAXTIME_BOARDCOLOR ;
}
}
else
{
send_order( target_sav , CMD_CHAZHANG ) ;
}
break ;
default :
break ;
}
}
else
{
m1 = times_resend ;
send_order( target_sav , order_sav ) ;
times_resend = m1 ;
}
}
check_send() ;
if ( keys_old & 0x80 )
{
//manu
m2 = in_sensor_old ;
m3 = in_sensor_down ;
}
else
{
m2 = in_key_old ;
m3 = in_key_down ;
}
m4 = 0 ;
// result = NO_RESULT ; // 9
for( m1 = 0 ; m1 < COLOR_COUNT ; m1 ++ )
{
if ( statue_sys == ZJ_GETCOLOR )
{
if ( m2 & BIT( m1 ) )
{
time_long[m1] = 0 ;
}
else
{
m4 ++ ;
}
if ( m3 & BIT( m1 ) )
{
time_long[m1] = 1 ;
in_sensor_down &= ~ BIT( m1 ) ;
in_key_down &= ~ BIT( m1 ) ;
}
if ( keys_old & 0x80 )
{
if ( time_long[m1] >= MAXTIME_INHOLE1 ) //>=5
{
result = m1 ;
/* if ( blink_on )
{
write273( HC273_LAMP , BIT( m1 + 2 ) ) ;
}
else
{
write273( HC273_LAMP , 0 ) ;
}
*/
}
}
else
{
if ( time_long[m1] >= MAXTIME_INHOLE2 ) //>=3
{
result = m1 ;
}
}
}
else
{
time_long[m1] = 0 ;
m2 = 0 ;
m3 = 0 ;
in_key_down = 0 ;
in_sensor_down = 0 ;
}
}
if ( in_key_down & BIT( 4 ) )
{
in_key_down &= ~ BIT( 4 ) ;
if ( result != NO_RESULT && statue_sys == ZJ_GETCOLOR )
{
change_statue( ZJ_BOARDCOLOR ) ;
}
}
}
}
interrupt [TIM0_OVF] void timer( void )
{
unsigned char t1 , t2 , t3 , t4 ;
unsigned int t5 ;
TCNT0 = - 125 ;
in_key_sam[sam_cnt] = read245( HC245_IN_KEY ) ;
in_sensor_sam[sam_cnt] = read245( HC245_IN_SENSOR ) ;
keys_new = read245( HC245_KEYS ) ;
sw1_old = ~ read245( HC245_SW1 ) ;
sw2_old = ~ read245( HC245_SW2 ) ;
if ( ++ sam_cnt >= MAXCNT_SAM ) // 5
{
sam_cnt = 0 ;
for( t1 = 0 ; t1 < 8 ; t1 ++ )
{
t2 = 0 ;
t4 = 0 ;
for( t3 = 0 ; t3 < MAXCNT_SAM ; t3 ++ )
{
if ( in_key_sam[t3] & BIT( t1 ) )
{
t2 ++ ;
}
if ( in_sensor_sam[t3] & BIT( t1 ) )
{
t4 ++ ;
}
}
if ( t2 >= 4 )
{
in_key_new |= BIT( t1 ) ;
}
else
if( t2 < 2 )
{
in_key_new &= ~ BIT( t1 ) ;
}
if ( t4 >= 4 )
{
in_sensor_new |= BIT( t1 ) ;
}
else
if( t4 < 2 )
{
in_sensor_new &= ~ BIT( t1 ) ;
}
}
in_key_down |= ( in_key_new ^ in_key_old ) & ( ~ in_key_new ) ;
in_key_old = in_key_new ;
in_sensor_down |= ( in_sensor_new ^ in_sensor_old ) & ( ~ in_sensor_new ) ;
in_sensor_old = in_sensor_new ;
}
keys_down |= ( keys_new ^ keys_old ) & ( ~ keys_new ) ;
keys_old = keys_new ;
if ( time_return ) time_return -- ;
if ( time_long1 ) time_long1 ++ ;
if ( time_long2 ) time_long2 ++ ;
if ( time_cnt )
{
if ( ++ time_flash >= MAXTIME_FLASH ) // 3
{
time_flash = 0 ;
write_led( LED_OFF ) ;
if ( ++ led_no >= 8 ) led_no = 0 ;
t1 = LED_OFF ;
if ( testmode >= TEST_SETPL_1 && testmode < ( TEST_SETPL_4 + 1 ) ) // 2 5
{
t2 = testmode - TEST_SETPL_1 ; // -2
t5 = color_pl[t2] ;
}
switch( led_no )
{
case 7 :
switch( statue_sys )
{
case ZJ_BOARDCOLOR :
if( checkmode ) t1 = checkmode ;
else
{
t1 = statue_sys ;
}
break ;
case ZJ_SET :
t1 = setmode ;
break ;
default:
t1 = statue_sys ;
break ;
}
break ;
case 6 :
if ( testmode )
{
t1 = testmode ;
}
switch( statue_sys )
{
case ZJ_BOARDCOLOR :
switch( checkmode )
{
case 4 :
if ( this_earn < 0 ) t1 = LED_Minus ;
break ;
case 5 :
if ( between_earn < 0 ) t1 = LED_Minus ;
break ;
case 8 :
if ( last_earn < 0 ) t1 = LED_Minus ;
break ;
case 2 :
t1 = xianxi( 6 , this_zsf ) ;
break ;
case 3 :
t1 = xianxi( 6 , this_ztf ) ;
break ;
case 6 :
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -