📄 set_rules.asl
字号:
+ 395 ;ir_received_judge::
+ 396
+ 397 ;f_judge:
+ 398 ; lda cnt_ir_rcv_f
+ 399 ; cmpe #c_ir_rcv_f
+ 400 ; brnc f_no_l_judge
+ 401 ;
+ 402 ;f_yes_l_judge:
+ 403 ; lda cnt_ir_rcv_l
+ 404 ; cmpe #c_ir_rcv_l
+ 405 ; brnc f_yes_l_no_r_judge
+ 406 ;
+ 407 ;f_yes_l_yes_r_judge:
+ 408 ; lda cnt_ir_rcv_r
+ 409 ; cmpe #c_ir_rcv_r
+ 410 ; brnc f_yes_l_yes_r_no
+ 411 ;
+ 412 ;;*************/*04-02-26*/**************;
+ 413 ;f_yes_l_yes_r_yes:
+ 414 ; lda #c_flg_f_l_r_rcved ;左右前方有障碍,左转或右转
+ 415 ; sta flg_ir_received
+ 416 ; lda flg_l_or_r
+ 417 ; anda #1
+ 418 ; brnz f_l_r_turn_right ;0 turn left, 1 turn right
+ 419 ;f_l_r_turn_left: ;左转;//04-03-17// revise the initial offset
+ 420 ; lda #>c_offset_l_40_ir ;为什么这样写>(可能是想表明这里是送进查表里的)
+ 421 ; sta m_offset_ini_h ;查表地址开始值
+ 422 ; lda #<c_offset_l_40_ir
+ 423 ; sta m_offset_ini
+ 424 ; lda #c_rnd_range_1
+ 425 ; sta m_rnd_range ;m_rnd_range为所求的随机数的大小
+ 426 ; br ir_received_set
+ 427 ;f_l_r_turn_right: ;右转
+ 428 ; lda #>c_offset_r_40_ir
+ 429 ; sta m_offset_ini_h
+ 430 ; lda #<c_offset_r_40_ir
+ 431 ; sta m_offset_ini
+ 432 ; lda #c_rnd_range_1
+ 433 ; sta m_rnd_range
+ 434 ; br ir_received_set
+ 435 ;;***************************************;
+ 436 ;
+ 437 ;f_yes_l_yes_r_no:
+ 438 ; lda #c_flg_f_l_rcved ;左前方有障碍,右转
+ 439 ; sta flg_ir_received
+ 440 ; lda #>c_offset_r_40_ir
+ 441 ; sta m_offset_ini_h
+ 442 ; lda #<c_offset_r_40_ir
+ 443 ; sta m_offset_ini
+ 444 ; lda #c_rnd_range_1
+ 445 ; sta m_rnd_range
+ 446 ; br ir_received_set
+ 447 ;f_yes_l_no_r_judge:
+ 448 ; lda cnt_ir_rcv_r
+ 449 ; cmpe #c_ir_rcv_r
+ 450 ; brnc f_yes_l_no_r_no
+ 451 ;f_yes_l_no_r_yes:
+ 452 ; lda #c_flg_f_r_rcved ;右前方有障碍,左转
+ 453 ; sta flg_ir_received
+ 454 ; lda #>c_offset_l_40_ir
+ 455 ; sta m_offset_ini_h
+ 456 ; lda #<c_offset_l_40_ir
+ 457 ; sta m_offset_ini
+ 458 ; lda #c_rnd_range_1
+ 459 ; sta m_rnd_range
+ 460 ; br ir_received_set
+ 461 ; f_yes_l_no_r_no:
+ 462 ; lda #c_flg_f_rcved ;前方有障碍,左转或右转
+ 463 ; sta flg_ir_received
+ 464 ;;*************/*04-02-26*/**************;
+ 465 ; lda flg_l_or_r
+ 466 ; anda #1
+ 467 ; brnz f_turn_right ;0 turn left, 1 turn right
+ 468 ;f_turn_left: ;左转
+ 469 ; lda #>c_offset_l_40_ir
+ 470 ; sta m_offset_ini_h
+ 471 ; lda #<c_offset_l_40_ir
+ 472 ; sta m_offset_ini
+ 473 ; lda #c_rnd_range_1
+ 474 ; sta m_rnd_range
+ 475 ; br ir_received_set
+ 476 ;f_turn_right: ;右转
+ 477 ; lda #>c_offset_r_40_ir
+ 478 ; sta m_offset_ini_h
+ 479 ; lda #<c_offset_r_40_ir
+ 480 ; sta m_offset_ini
+ 481 ; lda #c_rnd_range_1
+ 482 ; sta m_rnd_range
+ 483 ; br ir_received_set
+ 484 ;;No Front ***************************************;
+ 485 ;f_no_l_judge:
+ 486 ; lda cnt_ir_rcv_l
+ 487 ; cmpe #c_ir_rcv_l
+ 488 ; brnc f_no_l_no_r_judge
+ 489 ;f_no_l_yes_r_judge:
+ 490 ; lda cnt_ir_rcv_r
+ 491 ; cmpe #c_ir_rcv_r
+ 492 ; brnc f_no_l_yes_r_no
+ 493 ;f_no_l_yes_r_yes:
+ 494 ; lda #c_flg_l_r_rcved ;左右方有障碍,前行
+ 495 ; sta flg_ir_received
+ 496 ; lda #c_offset_f
+ 497 ; sta m_offset_ini
+ 498 ; lda #c_rnd_range_8
+ 499 ; sta m_rnd_range
+ 500 ; br ir_received_set
+ 501 ;f_no_l_yes_r_no:
+ 502 ; lda #c_flg_l_rcved ;左方有障碍,右转
+ 503 ; sta flg_ir_received
+ 504 ; lda #>c_offset_r_40_ir
+ 505 ; sta m_offset_ini_h
+ 506 ; lda #<c_offset_r_40_ir
+ 507 ; sta m_offset_ini
+ 508 ; lda #c_rnd_range_1
+ 509 ; sta m_rnd_range
+ 510 ; br ir_received_set
+ 511 ;f_no_l_no_r_judge:
+ 512 ; lda cnt_ir_rcv_r
+ 513 ; cmpe #c_ir_rcv_r
+ 514 ; brnc f_no_l_no_r_no
+ 515 ;f_no_l_no_r_yes:
+ 516 ; lda #c_flg_r_rcved ;右方有障碍,左转
+ 517 ; sta flg_ir_received
+ 518 ; lda #>c_offset_l_40_ir
+ 519 ; sta m_offset_ini_h
+ 520 ; lda #<c_offset_l_40_ir
+ 521 ; sta m_offset_ini
+ 522 ; lda #c_rnd_range_1
+ 523 ; sta m_rnd_range
+ 524 ; br ir_received_set
+ 525 ;f_no_l_no_r_no:
+ 526 ; lda #0 ;没有障碍
+ 527 ; sta flg_ir_received
+ 528 ; ret
+ 529 ;ir_received_set: ;/*04-02-19*/
+ 530 ; lda #2 ;有IR时产生新随机数的标志为2
+ 531 ; sta flg_new_random
+ 532 ; lda #0
+ 533 ; sta cnt_ctrl_pulse ;clear control pulse counter in Timer1 Service Routine.
+ 534 ; sta cnt_ctrl_pulse+1 ;/*04-02-23*/
+ 535 ;ir_received_judge_end:
+ 536 ; ret
+ 537
+
+Symbol Table
+
+ 2 Run_judge 0000 GR
+ 2 Run_next_status 001D R
+ 2 Run_random_status 0027 R
+ c_flg_ahead = 0003
+ c_flg_backup = 0002
+ c_flg_f_l_rcved = 0004
+ c_flg_f_r_rcved = 0005
+ c_flg_l_rcved = 0002
+ c_flg_left = 0000
+ c_flg_r_rcved = 0003
+ c_flg_right = 0001
+ c_flg_stop = 0004
+ c_mtr_tab_row = 001C
+ c_offset_f_ini = 0000
+ c_offset_l_20_ir = 00F0
+ c_offset_l_40_ir = 00F8
+ c_offset_r_20_ir = 0138
+ c_offset_r_40_ir = 0140
+ c_rnd_range_1 = 0001
+ c_rnd_range_f = 0008
+ c_rnd_range_not_stop = 001A
+ cnt_ctrl_pulse **** GX
+ 1 flg_last_barrier 0001 GR
+ flg_motor_status **** GX
+ flg_new_random **** GX
+ flg_rcv_barrier **** GX
+ 2 front_barrier 002E R
+ 2 last_barrier_ahead 0016 R
+ m_offset_ini **** GX
+ m_offset_ini_h **** GX
+ m_rnd_range **** GX
+ 2 next_status_ahead 0085 R
+ 2 next_status_backup 007A R
+ 2 next_status_l_r_ahead 005C R
+ 2 next_status_l_r_b 0058 R
+ 2 next_status_left 00A5 R
+ 2 next_status_right 009A R
+ 2 next_status_set_end 00AD R
+ 2 pre_status_continue 0057 R
+ read_random **** GX
+ rnd_num **** GX
+ 1 temp_flg_ir_received 0000 GR
+
+
+Area Table
+
+ 0 . size 0 flags 0
+ 1 set_rules_var size 2 flags 2
+ 2 set_rules_code size BA flags 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -