;======================================= ; DOG NS-5000 E-ZEUSプロトコル + ASCOM ; ; 2010,1/19---2/1 ; ; NS企画 西岡 ; ; E-ZEUSプロトコルを実装する ;======================================= .include "p24FJ64GA002.inc" .include "pic24macro_2.txt" .include "NS500_macro.inc" ;************************************* ;* グローバル シンボル ;************************************* .global _inz_mzeus .global _mzeus .global _f_zeus ;0:DOGシステム 1:E-ZEUSシステム .global _f_zeus_new ; 一時保存用 .global _zgoto_sw ;0:共通 コントローラ処理 1:導入処理 2:終了処理 .global _f_zeus_ra_goto ;赤経 1:数値付DVコマンド実行中 .global _f_zeus_dec_goto ;赤緯 .global _zeus_ra_xxx ;赤経 数値付DVコマンド用 32ビット相対ステップ数 << RA.s が参照する .global _zeus_dec_xxx ;赤緯  << DEC.s ;************************************* ;* 基本定義 ;************************************* .bss ;************************************* ;* 変数 ;************************************* pcflag: .space 2 pcsw: .space 2 ; _f_zeus: .space 2 ;0:DOGシステム 1:E-ZEUSシステム _f_zeus_new: .space 2 ; 一時保存用 .equ DOG_system,0 ;0:DOGシステム .equ E_ZEUS_system,1 ;1:E-ZEUSシステム ; _zgoto_sw: .space 2 _f_zeus_ra_goto: .space 2 ;赤経 1:数値付DVコマンド実行中 _f_zeus_dec_goto: .space 2 ;赤緯 _zeus_ra_xxx: .space 4 ;赤経 E-ZEUS 数値付DVコマンド用 32ビットデータ 相対ステップ数 << RA.s が参照する _zeus_dec_xxx: .space 4 ;赤緯  << DEC.s .text ;******************************************************************************* ; E-ZEUS SYSTEM 初期化  zeus_mmain.c から呼び出される ;******************************************************************************* _inz_mzeus: call _inz_zeus_mmotor ;E-ZEUSコントローラ処理 初期化 call _inz_zeus_muart1 ;E-ZEUSコマンド処理 初期化 ; .equ DOG_system,0 ;0:DOGシステム ; .equ E_ZEUS_system,1 ;1:E-ZEUSシステム ; mov_r #DOG_system,_f_zeus ;0:DOG 1:E-ZEUS <<<;;;;;;;;;;;;;;;;;;;;;;;;;;暫定 ; mov_r #E_ZEUS_system,_f_zeus ;0:DOG 1:E-ZEUS <<<;;;;;;;;;;;;;;;;;;;;;;;;;;暫定 movrr _f_zeus_new,_f_zeus clr _handbox_or_PC_keysw ;0: ハンドボックス 1: E-ZEUS コマンドでコントロール中 clr _zgoto_sw clr _f_zeus_ra_goto clr _f_zeus_dec_goto ; clr pcsw clr pcflag return ; ;************************************************************** ;** E-ZEUS SYSTEM ;************************************************************** _mzeus: jz _zgoto_sw,_zeus_mmotor_com cjer_ _zgoto_sw,#1,zeus_goto jmp zeus_goto_exit ; ;************** ;導入処理 ;************** zeus_goto: ;導入中止 緊急停止? jz _handbox_or_PC_keysw,zeus_goto_40x ;0: ハンドボックス (スイッチが押されると --> 0) ; jnz _f_zeus_ra_goto,_zeus_mmotor_com ;導入は完了したか? jnz _f_zeus_dec_goto,_zeus_mmotor_com ;STOP 導入終了 zeus_goto_40x: mov_r #2,_zgoto_sw ;終了処理へ bra _zeus_mmotor_com ;************** ;終了処理 ;************** zeus_goto_exit: clr _zgoto_sw clr _f_zeus_ra_goto clr _f_zeus_dec_goto bclr _external_keyxxx,#bit_rl bclr _external_keyxxx,#bit_rr bclr _external_keyxxx,#bit_du bclr _external_keyxxx,#bit_dd mov_r #150,_sound_timer ;終了ブザー音 bra _zeus_mmotor_com ;*********************************** ; タスク処理 (共通) ;*********************************** _zeus_mmotor_com: call _zeus_mmotor ;コントローラ処理 call _zeus_muart1 ;コマンド処理 ; call _txdata_get_rs232c1 ;rs232cバッファのデータを自動送信する 2008,12/12 追加 call _txdata_get_rs232c2 ;rs232cバッファのデータを自動送信する 2008,12/12 追加 ret .end