バックラッシュを少なくするプログラム

赤道儀を駆動させる際に問題になることの1つにバックラッシュがあります。

バックラッシュとは運動方向に意図してもうけられた隙間の事です。この隙間があるからギアはスムーズに動くことができるのです。

しかし、その隙間によってモーターの動き出す時間と、ギアを伝って最終的に力が加わるまでに時間差が生じてしまいます。減速率を高めるために複数のギアを使っている場合、時間差は拡大してしまいます。

この時間差の影響を受けるのはオートガイドをしている時の赤緯体の駆動です。赤緯体は普段は停止していますがオートガイダーからDEC+あるいはDEC-の信号を受けた時にモーターが動きだし補正をします。同じ方向に補正を続けている時には問題は起きないのですが、補正方向が逆になった場合、信号と赤道儀の動作に時間差が生じます。

バックラッシュをなくすために、メーカーはギア数を減らしてマイクロステップ駆動(パルスモーターを電圧の微妙な調整でゆっくりと動かす事)を行ったり、あるいは、ハーモニックギアという特殊なギアを使ったりしていますが、どちらもコストがかかるため、使われているのは高級赤道儀に限られています。

そこでプログラムによって時間差を少なくする方法を考えました。

アルゴリズムは下の図の通りです。(これが筒状になって縦に連なっていると考えて下さい)

MOVE1~8はDEC+の信号を受けた時の駆動状態。MOVE9~16はDEC-の駆動状態です。(この場合1-2相励磁駆動なので8段階あります)

信号を受けていない時はSTOP1~16の何処かをループしています。

例えばSTOP1をループしているとします。

その時にDEC+の信号を受けます。すると、まずC1でチャタリング(ノイズ)のチェックを受けて信号が正しいと認識されるとMOVE2に進みます。(ノイズだった場合はSTOP1に戻ります)

そのまま信号を受け続けた場合、MOVE3、MOVE4と進んでいきます。

MOVE7の所で信号が途絶えたとします。するとSTOP7に行き、そこでループをします。

今度はSTOP7でDEC-の信号を受けたとします。

するとRV7に進みます。ここで、まずチャタリングのチェックを受け信号が正しいと認識されるとモーターの回転速度を通常より速めて数ステップDEC-の回転方向に駆動させます。(例えば2-2相励磁駆動で12ステップとか)

ここで注意ですが、回転数を速くしすぎるとギアに負担がかかるのと、モーターのトルクが下がってしまうので、普段の数倍程度が良いと思います。

そしてMOVR15へ進みMOVE14、MOVE13という具合に駆動します。

そしてMOVE9で信号が途絶えたとします。するとSTOP9へいきここをループします。

(たどった経路を赤で示してあります)

これらを繰り返していきます。すると、前回補正した方向と同じ方向に補正する場合はそのまま、逆方向に補正する場合は一瞬モーターを速く回してから補正することになります。

このアルゴリズムで大事な点はRV1~16でモーターをどれだけ回すかという事です。これは赤道儀に使用しているギアによって異なりますので、慎重に計測する事が求められます。

実際のプログラムはこちら→(このプログラムではPICのRB4~7にLED、RB0~3にモーターへの信号が出力される仕様です。)


; 赤道儀コントローラー赤経軸1-2相励磁駆動PIC16F648A VR2020/08 BY STARRYZOBI

; CLOCK 20.000MHz

; このバージョンでは恒星に対して0.5倍速から1.75倍速まで16段階の駆動を選択できる。

; バックラッシュを打ち消すために逆回転になった時にハイスピードで24ステップ回す。

; また、回転速度は徐々に速くして最高速になった後遅くする

;

; 0 = 1.75倍速

; 1 = 1.67倍速

; 2 = 1.58倍速

; 3 = 1.50倍速

; 4 = 1.42倍速

; 5 = 1.33倍速

; 6 = 1.25倍速

; 7 = 1.17倍速

; 8 = 1.08倍速

; 9 = 1.00倍速

; 10 = 0.92倍速

; 11 = 0.83倍速

; 12 = 0.75倍速

; 13 = 0.67倍速

; 14 = 0.58倍速

; 15 = 0.50倍速

LIST P=PIC16F648A ;

INCLUDE P16F648A.INC ;

__CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF & _BODEN_ON & _LVP_OFF & _MCLRE_OFF

GPR_1 EQU 020h ; GPRの1バイト目にGPR_1と言う名前を付ける

GPR_2 EQU 021h ; GPRの2バイト目にGPR_2と言う名前を付ける

GPR_3 EQU 022h ; GPR

GPR_4 EQU 023h ; GPR

GPR_5 EQU 024h

GPR_6 EQU 025h

GPR_7 EQU 024h

GPR_8 EQU 025h

GPR_9 EQU 026h

GPR_10 EQU 027h

GPR_11 EQU 028h

GPR_12 EQU 029h

GPR_13 EQU 02Ah

GPR_14 EQU 02Bh

GPR_15 EQU 02Ch

GPR_16 EQU 02Dh

GPR_17 EQU 02Eh

GPR_18 EQU 02Fh

GPR_19 EQU 030h

GPR_20 EQU 031h

GPR_21 EQU 032h

GPR_22 EQU 033h

GPR_23 EQU 034h

GPR_24 EQU 035h

ORG 0 ; リセットベクタ(0番地)を指定する。

INIT

; << PICの初期化 >>

CLRF PORTA

MOVLW 07h

MOVWF CMCON ; PORTAはI/Oデジタル

; < I/O方向定義>

BSF STATUS,RP0 ; バンク1へ切り替え

MOVLW 0FFh ; PORTAは全て入力

MOVWF TRISA

CLRF TRISB ; ファイルレジスタTRISBをクリア(0) → PORTBは全て出力

BCF STATUS,RP0 ; STATUSのRP0をクリア(0) → バンク0

; << 停止状態 >>

STOP1 CLRF PORTB

BTFSC PORTA,0

GOTO C1

BTFSC PORTA,1

GOTO RV1

GOTO STOP1

STOP2 CLRF PORTB

BTFSC PORTA,0

GOTO C2

BTFSC PORTA,1

GOTO RV2

GOTO STOP2

STOP3 CLRF PORTB

BTFSC PORTA,0

GOTO C3

BTFSC PORTA,1

GOTO RV3

GOTO STOP3

STOP4 CLRF PORTB

BTFSC PORTA,0

GOTO C4

BTFSC PORTA,1

GOTO RV4

GOTO STOP4

STOP5 CLRF PORTB

BTFSC PORTA,0

GOTO C5

BTFSC PORTA,1

GOTO RV5

GOTO STOP5

STOP6 CLRF PORTB

BTFSC PORTA,0

GOTO C6

BTFSC PORTA,1

GOTO RV6

GOTO STOP6

STOP7 CLRF PORTB

BTFSC PORTA,0

GOTO C7

BTFSC PORTA,1

GOTO RV7

GOTO STOP7

STOP8 CLRF PORTB

BTFSC PORTA,0

GOTO C8

BTFSC PORTA,1

GOTO RV8

GOTO STOP8

; << 停止状態 >>

STOP9 CLRF PORTB

BTFSC PORTA,1

GOTO C9

BTFSC PORTA,0

GOTO RV9

GOTO STOP9

STOP10 CLRF PORTB

BTFSC PORTA,1

GOTO C10

BTFSC PORTA,0

GOTO RV10

GOTO STOP10

STOP11 CLRF PORTB

BTFSC PORTA,1

GOTO C11

BTFSC PORTA,0

GOTO RV11

GOTO STOP11

STOP12 CLRF PORTB

BTFSC PORTA,1

GOTO C12

BTFSC PORTA,0

GOTO RV12

GOTO STOP12

STOP13 CLRF PORTB

BTFSC PORTA,1

GOTO C13

BTFSC PORTA,0

GOTO RV13

GOTO STOP13

STOP14 CLRF PORTB

BTFSC PORTA,1

GOTO C14

BTFSC PORTA,0

GOTO RV14

GOTO STOP14

STOP15 CLRF PORTB

BTFSC PORTA,1

GOTO C15

BTFSC PORTA,0

GOTO RV15

GOTO STOP15

STOP16 CLRF PORTB

BTFSC PORTA,1

GOTO C16

BTFSC PORTA,0

GOTO RV16

GOTO STOP16

; << チャタリング確認 >>

C1 CALL T483

BTFSS PORTA,0

GOTO STOP1

GOTO MOVE2

C2 CALL T483

BTFSS PORTA,0

GOTO STOP2

GOTO MOVE3

C3 CALL T483

BTFSS PORTA,0

GOTO STOP3

GOTO MOVE4

C4 CALL T483

BTFSS PORTA,0

GOTO STOP4

GOTO MOVE5

C5 CALL T483

BTFSS PORTA,0

GOTO STOP5

GOTO MOVE6

C6 CALL T483

BTFSS PORTA,0

GOTO STOP6

GOTO MOVE7

C7 CALL T483

BTFSS PORTA,0

GOTO STOP7

GOTO MOVE8

C8 CALL T483

BTFSS PORTA,0

GOTO STOP8

GOTO MOVE1

C9 CALL T483

BTFSS PORTA,1

GOTO STOP9

GOTO MOVE16

C10 CALL T483

BTFSS PORTA,1

GOTO STOP10

GOTO MOVE9

C11 CALL T483

BTFSS PORTA,1

GOTO STOP11

GOTO MOVE10

C12 CALL T483

BTFSS PORTA,1

GOTO STOP12

GOTO MOVE11

C13 CALL T483

BTFSS PORTA,1

GOTO STOP13

GOTO MOVE12

C14 CALL T483

BTFSS PORTA,1

GOTO STOP14

GOTO MOVE13

C15 CALL T483

BTFSS PORTA,1

GOTO STOP15

GOTO MOVE14

C16 CALL T483

BTFSS PORTA,1

GOTO STOP16

GOTO MOVE15

; << リバースモード >>

RV1 CALL T483

BTFSS PORTA,1

GOTO STOP1

MOVLW 19h

MOVWF PORTB

CALL T09

MOVLW 2Ch

MOVWF PORTB

CALL T07

MOVLW 46h

MOVWF PORTB

CALL T05

MOVLW 83h

MOVWF PORTB

CALL T03

MOVLW 19h

MOVWF PORTB

CALL T01

MOVLW 2Ch

MOVWF PORTB

CALL T00

MOVLW 46h

MOVWF PORTB

CALL T000

MOVLW 83h

MOVWF PORTB

CALL T0000

MOVLW 19h

MOVWF PORTB

CALL T0000

MOVLW 2Ch

MOVWF PORTB

CALL T0000

MOVLW 46h

MOVWF PORTB

CALL T0000

MOVLW 83h

MOVWF PORTB

CALL T0000

MOVLW 19h

MOVWF PORTB

CALL T0000

MOVLW 2Ch

MOVWF PORTB

CALL T0000

MOVLW 46h

MOVWF PORTB

CALL T0000

MOVLW 83h

MOVWF PORTB

CALL T0000

MOVLW 19h

MOVWF PORTB

CALL T0000

MOVLW 2Ch

MOVWF PORTB

CALL T000

MOVLW 46h

MOVWF PORTB

CALL T00

MOVLW 83h

MOVWF PORTB

CALL T01

MOVLW 19h

MOVWF PORTB

CALL T03

MOVLW 2Ch

MOVWF PORTB

CALL T05

MOVLW 46h

MOVWF PORTB

CALL T07

MOVLW 83h

MOVWF PORTB

CALL T09

GOTO MOVE9

RV2 CALL T483

BTFSS PORTA,1

GOTO STOP2

MOVLW 19h

MOVWF PORTB

CALL T09

MOVLW 2Ch

MOVWF PORTB

CALL T07

MOVLW 46h

MOVWF PORTB

CALL T05

MOVLW 83h

MOVWF PORTB

CALL T03

MOVLW 19h

MOVWF PORTB

CALL T01

MOVLW 2Ch

MOVWF PORTB

CALL T00

MOVLW 46h

MOVWF PORTB

CALL T000

MOVLW 83h

MOVWF PORTB

CALL T0000

MOVLW 19h

MOVWF PORTB

CALL T0000

MOVLW 2Ch

MOVWF PORTB

CALL T0000

MOVLW 46h

MOVWF PORTB

CALL T0000

MOVLW 83h

MOVWF PORTB

CALL T0000

MOVLW 19h

MOVWF PORTB

CALL T0000

MOVLW 2Ch

MOVWF PORTB

CALL T0000

MOVLW 46h

MOVWF PORTB

CALL T0000

MOVLW 83h

MOVWF PORTB

CALL T0000

MOVLW 19h

MOVWF PORTB

CALL T0000

MOVLW 2Ch

MOVWF PORTB

CALL T000

MOVLW 46h

MOVWF PORTB

CALL T00

MOVLW 83h

MOVWF PORTB

CALL T01

MOVLW 19h

MOVWF PORTB

CALL T03

MOVLW 2Ch

MOVWF PORTB

CALL T05

MOVLW 46h

MOVWF PORTB

CALL T07

MOVLW 83h

MOVWF PORTB

CALL T09

GOTO MOVE10

RV3 CALL T483

BTFSS PORTA,1

GOTO STOP3

MOVLW 13h

MOVWF PORTB

CALL T09

MOVLW 29h

MOVWF PORTB

CALL T07

MOVLW 4Ch

MOVWF PORTB

CALL T05

MOVLW 86h

MOVWF PORTB

CALL T03

MOVLW 13h

MOVWF PORTB

CALL T01

MOVLW 29h

MOVWF PORTB

CALL T00

MOVLW 4Ch

MOVWF PORTB

CALL T000

MOVLW 86h

MOVWF PORTB

CALL T0000

MOVLW 13h

MOVWF PORTB

CALL T0000

MOVLW 29h

MOVWF PORTB

CALL T0000

MOVLW 4Ch

MOVWF PORTB

CALL T0000

MOVLW 86h

MOVWF PORTB

CALL T0000

MOVLW 13h

MOVWF PORTB

CALL T0000

MOVLW 29h

MOVWF PORTB

CALL T0000

MOVLW 4Ch

MOVWF PORTB

CALL T0000

MOVLW 86h

MOVWF PORTB

CALL T0000

MOVLW 13h

MOVWF PORTB

CALL T0000

MOVLW 29h

MOVWF PORTB

CALL T000

MOVLW 4Ch

MOVWF PORTB

CALL T00

MOVLW 86h

MOVWF PORTB

CALL T01

MOVLW 13h

MOVWF PORTB

CALL T03

MOVLW 29h

MOVWF PORTB

CALL T05

MOVLW 4Ch

MOVWF PORTB

CALL T07

MOVLW 86h

MOVWF PORTB

CALL T09

GOTO MOVE11

RV4 CALL T483

BTFSS PORTA,1

GOTO STOP4

MOVLW 13h

MOVWF PORTB

CALL T09

MOVLW 29h

MOVWF PORTB

CALL T07

MOVLW 4Ch

MOVWF PORTB

CALL T05

MOVLW 86h

MOVWF PORTB

CALL T03

MOVLW 13h

MOVWF PORTB

CALL T01

MOVLW 29h

MOVWF PORTB

CALL T00

MOVLW 4Ch

MOVWF PORTB

CALL T000

MOVLW 86h

MOVWF PORTB

CALL T0000

MOVLW 13h

MOVWF PORTB

CALL T0000

MOVLW 29h

MOVWF PORTB

CALL T0000

MOVLW 4Ch

MOVWF PORTB

CALL T0000

MOVLW 86h

MOVWF PORTB

CALL T0000

MOVLW 13h

MOVWF PORTB

CALL T0000

MOVLW 29h

MOVWF PORTB

CALL T0000

MOVLW 4Ch

MOVWF PORTB

CALL T0000

MOVLW 86h

MOVWF PORTB

CALL T0000

MOVLW 13h

MOVWF PORTB

CALL T0000

MOVLW 29h

MOVWF PORTB

CALL T000

MOVLW 4Ch

MOVWF PORTB

CALL T00

MOVLW 86h

MOVWF PORTB

CALL T01

MOVLW 13h

MOVWF PORTB

CALL T03

MOVLW 29h

MOVWF PORTB

CALL T05

MOVLW 4Ch

MOVWF PORTB

CALL T07

MOVLW 86h

MOVWF PORTB

CALL T09

GOTO MOVE12

RV5 CALL T483

BTFSS PORTA,1

GOTO STOP5

MOVLW 16h

MOVWF PORTB

CALL T09

MOVLW 23h

MOVWF PORTB

CALL T07

MOVLW 49h

MOVWF PORTB

CALL T05

MOVLW 8Ch

MOVWF PORTB

CALL T03

MOVLW 16h

MOVWF PORTB

CALL T01

MOVLW 23h

MOVWF PORTB

CALL T00

MOVLW 49h

MOVWF PORTB

CALL T000

MOVLW 8Ch

MOVWF PORTB

CALL T0000

MOVLW 16h

MOVWF PORTB

CALL T0000

MOVLW 23h

MOVWF PORTB

CALL T0000

MOVLW 49h

MOVWF PORTB

CALL T0000

MOVLW 8Ch

MOVWF PORTB

CALL T0000

MOVLW 16h

MOVWF PORTB

CALL T0000

MOVLW 23h

MOVWF PORTB

CALL T0000

MOVLW 49h

MOVWF PORTB

CALL T0000

MOVLW 8Ch

MOVWF PORTB

CALL T0000

MOVLW 16h

MOVWF PORTB

CALL T0000

MOVLW 23h

MOVWF PORTB

CALL T000

MOVLW 49h

MOVWF PORTB

CALL T00

MOVLW 8Ch

MOVWF PORTB

CALL T01

MOVLW 16h

MOVWF PORTB

CALL T03

MOVLW 23h

MOVWF PORTB

CALL T05

MOVLW 49h

MOVWF PORTB

CALL T07

MOVLW 8Ch

MOVWF PORTB

CALL T09

GOTO MOVE13

RV6 CALL T483

BTFSS PORTA,1

GOTO STOP6

MOVLW 16h

MOVWF PORTB

CALL T09

MOVLW 23h

MOVWF PORTB

CALL T07

MOVLW 49h

MOVWF PORTB

CALL T05

MOVLW 8Ch

MOVWF PORTB

CALL T03

MOVLW 16h

MOVWF PORTB

CALL T01

MOVLW 23h

MOVWF PORTB

CALL T00

MOVLW 49h

MOVWF PORTB

CALL T000

MOVLW 8Ch

MOVWF PORTB

CALL T0000

MOVLW 16h

MOVWF PORTB

CALL T0000

MOVLW 23h

MOVWF PORTB

CALL T0000

MOVLW 49h

MOVWF PORTB

CALL T0000

MOVLW 8Ch

MOVWF PORTB

CALL T0000

MOVLW 16h

MOVWF PORTB

CALL T0000

MOVLW 23h

MOVWF PORTB

CALL T0000

MOVLW 49h

MOVWF PORTB

CALL T0000

MOVLW 8Ch

MOVWF PORTB

CALL T0000

MOVLW 16h

MOVWF PORTB

CALL T0000

MOVLW 23h

MOVWF PORTB

CALL T000

MOVLW 49h

MOVWF PORTB

CALL T00

MOVLW 8Ch

MOVWF PORTB

CALL T01

MOVLW 16h

MOVWF PORTB

CALL T03

MOVLW 23h

MOVWF PORTB

CALL T05

MOVLW 49h

MOVWF PORTB

CALL T07

MOVLW 8Ch

MOVWF PORTB

CALL T09

GOTO MOVE14

RV7 CALL T483

BTFSS PORTA,1

GOTO STOP7

MOVLW 1Ch

MOVWF PORTB

CALL T09

MOVLW 26h

MOVWF PORTB

CALL T07

MOVLW 43h

MOVWF PORTB

CALL T05

MOVLW 89h

MOVWF PORTB

CALL T03

MOVLW 1Ch

MOVWF PORTB

CALL T01

MOVLW 26h

MOVWF PORTB

CALL T00

MOVLW 43h

MOVWF PORTB

CALL T000

MOVLW 89h

MOVWF PORTB

CALL T0000

MOVLW 1Ch

MOVWF PORTB

CALL T0000

MOVLW 26h

MOVWF PORTB

CALL T0000

MOVLW 43h

MOVWF PORTB

CALL T0000

MOVLW 89h

MOVWF PORTB

CALL T0000

MOVLW 1Ch

MOVWF PORTB

CALL T0000

MOVLW 26h

MOVWF PORTB

CALL T0000

MOVLW 43h

MOVWF PORTB

CALL T0000

MOVLW 89h

MOVWF PORTB

CALL T0000

MOVLW 1Ch

MOVWF PORTB

CALL T0000

MOVLW 26h

MOVWF PORTB

CALL T000

MOVLW 43h

MOVWF PORTB

CALL T00

MOVLW 89h

MOVWF PORTB

CALL T01

MOVLW 1Ch

MOVWF PORTB

CALL T03

MOVLW 26h

MOVWF PORTB

CALL T05

MOVLW 43h

MOVWF PORTB

CALL T07

MOVLW 89h

MOVWF PORTB

CALL T09

GOTO MOVE15

RV8 CALL T483

BTFSS PORTA,1

GOTO STOP8

MOVLW 1Ch

MOVWF PORTB

CALL T09

MOVLW 26h

MOVWF PORTB

CALL T07

MOVLW 43h

MOVWF PORTB

CALL T05

MOVLW 89h

MOVWF PORTB

CALL T03

MOVLW 1Ch

MOVWF PORTB

CALL T01

MOVLW 26h

MOVWF PORTB

CALL T00

MOVLW 43h

MOVWF PORTB

CALL T000

MOVLW 89h

MOVWF PORTB

CALL T0000

MOVLW 1Ch

MOVWF PORTB

CALL T0000

MOVLW 26h

MOVWF PORTB

CALL T0000

MOVLW 43h

MOVWF PORTB

CALL T0000

MOVLW 89h

MOVWF PORTB

CALL T0000

MOVLW 1Ch

MOVWF PORTB

CALL T0000

MOVLW 26h

MOVWF PORTB

CALL T0000

MOVLW 43h

MOVWF PORTB

CALL T0000

MOVLW 89h

MOVWF PORTB

CALL T0000

MOVLW 1Ch

MOVWF PORTB

CALL T0000

MOVLW 26h

MOVWF PORTB

CALL T000

MOVLW 43h

MOVWF PORTB

CALL T00

MOVLW 89h

MOVWF PORTB

CALL T01

MOVLW 1Ch

MOVWF PORTB

CALL T03

MOVLW 26h

MOVWF PORTB

CALL T05

MOVLW 43h

MOVWF PORTB

CALL T07

MOVLW 89h

MOVWF PORTB

CALL T09

GOTO MOVE16

RV9 CALL T483

BTFSS PORTA,0

GOTO STOP9

MOVLW 83h

MOVWF PORTB

CALL T09

MOVLW 46h

MOVWF PORTB

CALL T07

MOVLW 2Ch

MOVWF PORTB

CALL T05

MOVLW 19h

MOVWF PORTB

CALL T03

MOVLW 83h

MOVWF PORTB

CALL T01

MOVLW 46h

MOVWF PORTB

CALL T00

MOVLW 2Ch

MOVWF PORTB

CALL T000

MOVLW 19h

MOVWF PORTB

CALL T0000

MOVLW 83h

MOVWF PORTB

CALL T0000

MOVLW 46h

MOVWF PORTB

CALL T0000

MOVLW 2Ch

MOVWF PORTB

CALL T0000

MOVLW 19h

MOVWF PORTB

CALL T0000

MOVLW 83h

MOVWF PORTB

CALL T0000

MOVLW 46h

MOVWF PORTB

CALL T0000

MOVLW 2Ch

MOVWF PORTB

CALL T0000

MOVLW 19h

MOVWF PORTB

CALL T0000

MOVLW 83h

MOVWF PORTB

CALL T0000

MOVLW 46h

MOVWF PORTB

CALL T000

MOVLW 2Ch

MOVWF PORTB

CALL T00

MOVLW 19h

MOVWF PORTB

CALL T01

MOVLW 83h

MOVWF PORTB

CALL T03

MOVLW 46h

MOVWF PORTB

CALL T05

MOVLW 2Ch

MOVWF PORTB

CALL T07

MOVLW 19h

MOVWF PORTB

CALL T09

GOTO MOVE1

RV10 CALL T483

BTFSS PORTA,0

GOTO STOP10

MOVLW 86h

MOVWF PORTB

CALL T09

MOVLW 4Ch

MOVWF PORTB

CALL T07

MOVLW 29h

MOVWF PORTB

CALL T05

MOVLW 13h

MOVWF PORTB

CALL T03

MOVLW 86h

MOVWF PORTB

CALL T01

MOVLW 4Ch

MOVWF PORTB

CALL T00

MOVLW 29h

MOVWF PORTB

CALL T000

MOVLW 13h

MOVWF PORTB

CALL T0000

MOVLW 86h

MOVWF PORTB

CALL T0000

MOVLW 4Ch

MOVWF PORTB

CALL T0000

MOVLW 29h

MOVWF PORTB

CALL T0000

MOVLW 13h

MOVWF PORTB

CALL T0000

MOVLW 86h

MOVWF PORTB

CALL T0000

MOVLW 4Ch

MOVWF PORTB

CALL T0000

MOVLW 29h

MOVWF PORTB

CALL T0000

MOVLW 13h

MOVWF PORTB

CALL T0000

MOVLW 86h

MOVWF PORTB

CALL T0000

MOVLW 4Ch

MOVWF PORTB

CALL T000

MOVLW 29h

MOVWF PORTB

CALL T00

MOVLW 13h

MOVWF PORTB

CALL T01

MOVLW 86h

MOVWF PORTB

CALL T03

MOVLW 4Ch

MOVWF PORTB

CALL T05

MOVLW 29h

MOVWF PORTB

CALL T07

MOVLW 13h

MOVWF PORTB

CALL T09

GOTO MOVE2

RV11 CALL T483

BTFSS PORTA,0

GOTO STOP11

MOVLW 86h

MOVWF PORTB

CALL T09

MOVLW 4Ch

MOVWF PORTB

CALL T07

MOVLW 29h

MOVWF PORTB

CALL T05

MOVLW 13h

MOVWF PORTB

CALL T03

MOVLW 86h

MOVWF PORTB

CALL T01

MOVLW 4Ch

MOVWF PORTB

CALL T00

MOVLW 29h

MOVWF PORTB

CALL T000

MOVLW 13h

MOVWF PORTB

CALL T0000

MOVLW 86h

MOVWF PORTB

CALL T0000

MOVLW 4Ch

MOVWF PORTB

CALL T0000

MOVLW 29h

MOVWF PORTB

CALL T0000

MOVLW 13h

MOVWF PORTB

CALL T0000

MOVLW 86h

MOVWF PORTB

CALL T0000

MOVLW 4Ch

MOVWF PORTB

CALL T0000

MOVLW 29h

MOVWF PORTB

CALL T0000

MOVLW 13h

MOVWF PORTB

CALL T0000

MOVLW 86h

MOVWF PORTB

CALL T0000

MOVLW 4Ch

MOVWF PORTB

CALL T000

MOVLW 29h

MOVWF PORTB

CALL T00

MOVLW 13h

MOVWF PORTB

CALL T01

MOVLW 86h

MOVWF PORTB

CALL T03

MOVLW 4Ch

MOVWF PORTB

CALL T05

MOVLW 29h

MOVWF PORTB

CALL T07

MOVLW 13h

MOVWF PORTB

CALL T09

GOTO MOVE3

RV12 CALL T483

BTFSS PORTA,0

GOTO STOP12

MOVLW 8Ch

MOVWF PORTB

CALL T09

MOVLW 49h

MOVWF PORTB

CALL T07

MOVLW 23h

MOVWF PORTB

CALL T05

MOVLW 16h

MOVWF PORTB

CALL T03

MOVLW 8Ch

MOVWF PORTB

CALL T01

MOVLW 49h

MOVWF PORTB

CALL T00

MOVLW 23h

MOVWF PORTB

CALL T000

MOVLW 16h

MOVWF PORTB

CALL T0000

MOVLW 8Ch

MOVWF PORTB

CALL T0000

MOVLW 49h

MOVWF PORTB

CALL T0000

MOVLW 23h

MOVWF PORTB

CALL T0000

MOVLW 16h

MOVWF PORTB

CALL T0000

MOVLW 8Ch

MOVWF PORTB

CALL T0000

MOVLW 49h

MOVWF PORTB

CALL T0000

MOVLW 23h

MOVWF PORTB

CALL T0000

MOVLW 16h

MOVWF PORTB

CALL T0000

MOVLW 8Ch

MOVWF PORTB

CALL T0000

MOVLW 49h

MOVWF PORTB

CALL T000

MOVLW 23h

MOVWF PORTB

CALL T00

MOVLW 16h

MOVWF PORTB

CALL T01

MOVLW 8Ch

MOVWF PORTB

CALL T03

MOVLW 49h

MOVWF PORTB

CALL T05

MOVLW 23h

MOVWF PORTB

CALL T07

MOVLW 16h

MOVWF PORTB

CALL T09

GOTO MOVE4

RV13 CALL T483

BTFSS PORTA,0

GOTO STOP13

MOVLW 8Ch

MOVWF PORTB

CALL T09

MOVLW 49h

MOVWF PORTB

CALL T07

MOVLW 23h

MOVWF PORTB

CALL T05

MOVLW 16h

MOVWF PORTB

CALL T03

MOVLW 8Ch

MOVWF PORTB

CALL T01

MOVLW 49h

MOVWF PORTB

CALL T00

MOVLW 23h

MOVWF PORTB

CALL T000

MOVLW 16h

MOVWF PORTB

CALL T0000

MOVLW 8Ch

MOVWF PORTB

CALL T0000

MOVLW 49h

MOVWF PORTB

CALL T0000

MOVLW 23h

MOVWF PORTB

CALL T0000

MOVLW 16h

MOVWF PORTB

CALL T0000

MOVLW 8Ch

MOVWF PORTB

CALL T0000

MOVLW 49h

MOVWF PORTB

CALL T0000

MOVLW 23h

MOVWF PORTB

CALL T0000

MOVLW 16h

MOVWF PORTB

CALL T0000

MOVLW 8Ch

MOVWF PORTB

CALL T0000

MOVLW 49h

MOVWF PORTB

CALL T000

MOVLW 23h

MOVWF PORTB

CALL T00

MOVLW 16h

MOVWF PORTB

CALL T01

MOVLW 8Ch

MOVWF PORTB

CALL T03

MOVLW 49h

MOVWF PORTB

CALL T05

MOVLW 23h

MOVWF PORTB

CALL T07

MOVLW 16h

MOVWF PORTB

CALL T09

GOTO MOVE5

RV14 CALL T483

BTFSS PORTA,0

GOTO STOP14

MOVLW 89h

MOVWF PORTB

CALL T09

MOVLW 43h

MOVWF PORTB

CALL T07

MOVLW 26h

MOVWF PORTB

CALL T05

MOVLW 1Ch

MOVWF PORTB

CALL T03

MOVLW 89h

MOVWF PORTB

CALL T01

MOVLW 43h

MOVWF PORTB

CALL T00

MOVLW 26h

MOVWF PORTB

CALL T000

MOVLW 1Ch

MOVWF PORTB

CALL T0000

MOVLW 89h

MOVWF PORTB

CALL T0000

MOVLW 43h

MOVWF PORTB

CALL T0000

MOVLW 26h

MOVWF PORTB

CALL T0000

MOVLW 1Ch

MOVWF PORTB

CALL T0000

MOVLW 89h

MOVWF PORTB

CALL T0000

MOVLW 43h

MOVWF PORTB

CALL T0000

MOVLW 26h

MOVWF PORTB

CALL T0000

MOVLW 1Ch

MOVWF PORTB

CALL T0000

MOVLW 89h

MOVWF PORTB

CALL T0000

MOVLW 43h

MOVWF PORTB

CALL T000

MOVLW 26h

MOVWF PORTB

CALL T00

MOVLW 1Ch

MOVWF PORTB

CALL T01

MOVLW 89h

MOVWF PORTB

CALL T03

MOVLW 43h

MOVWF PORTB

CALL T05

MOVLW 26h

MOVWF PORTB

CALL T07

MOVLW 1Ch

MOVWF PORTB

CALL T09

GOTO MOVE6

RV15 CALL T483

BTFSS PORTA,0

GOTO STOP15

MOVLW 89h

MOVWF PORTB

CALL T09

MOVLW 43h

MOVWF PORTB

CALL T07

MOVLW 26h

MOVWF PORTB

CALL T05

MOVLW 1Ch

MOVWF PORTB

CALL T03

MOVLW 89h

MOVWF PORTB

CALL T01

MOVLW 43h

MOVWF PORTB

CALL T00

MOVLW 26h

MOVWF PORTB

CALL T000

MOVLW 1Ch

MOVWF PORTB

CALL T0000

MOVLW 89h

MOVWF PORTB

CALL T0000

MOVLW 43h

MOVWF PORTB

CALL T0000

MOVLW 26h

MOVWF PORTB

CALL T0000

MOVLW 1Ch

MOVWF PORTB

CALL T0000

MOVLW 89h

MOVWF PORTB

CALL T0000

MOVLW 43h

MOVWF PORTB

CALL T0000

MOVLW 26h

MOVWF PORTB

CALL T0000

MOVLW 1Ch

MOVWF PORTB

CALL T0000

MOVLW 89h

MOVWF PORTB

CALL T0000

MOVLW 43h

MOVWF PORTB

CALL T000

MOVLW 26h

MOVWF PORTB

CALL T00

MOVLW 1Ch

MOVWF PORTB

CALL T01

MOVLW 89h

MOVWF PORTB

CALL T03

MOVLW 43h

MOVWF PORTB

CALL T05

MOVLW 26h

MOVWF PORTB

CALL T07

MOVLW 1Ch

MOVWF PORTB

CALL T09

GOTO MOVE7

RV16 CALL T483

BTFSS PORTA,0

GOTO STOP16

MOVLW 83h

MOVWF PORTB

CALL T09

MOVLW 46h

MOVWF PORTB

CALL T07

MOVLW 2Ch

MOVWF PORTB

CALL T05

MOVLW 19h

MOVWF PORTB

CALL T03

MOVLW 83h

MOVWF PORTB

CALL T01

MOVLW 46h

MOVWF PORTB

CALL T00

MOVLW 2Ch

MOVWF PORTB

CALL T000

MOVLW 19h

MOVWF PORTB

CALL T0000

MOVLW 83h

MOVWF PORTB

CALL T0000

MOVLW 46h

MOVWF PORTB

CALL T0000

MOVLW 2Ch

MOVWF PORTB

CALL T0000

MOVLW 19h

MOVWF PORTB

CALL T0000

MOVLW 83h

MOVWF PORTB

CALL T0000

MOVLW 46h

MOVWF PORTB

CALL T0000

MOVLW 2Ch

MOVWF PORTB

CALL T0000

MOVLW 19h

MOVWF PORTB

CALL T0000

MOVLW 83h

MOVWF PORTB

CALL T0000

MOVLW 46h

MOVWF PORTB

CALL T000

MOVLW 2Ch

MOVWF PORTB

CALL T00

MOVLW 19h

MOVWF PORTB

CALL T01

MOVLW 83h

MOVWF PORTB

CALL T03

MOVLW 46h

MOVWF PORTB

CALL T05

MOVLW 2Ch

MOVWF PORTB

CALL T07

MOVLW 19h

MOVWF PORTB

CALL T09

GOTO MOVE8

; << L回転 >>

MOVE1 MOVLW 11h

MOVWF PORTB

CALL SEL

BTFSS PORTA,0

GOTO STOP1

MOVE2 MOVLW 23h

MOVWF PORTB

CALL SEL

BTFSS PORTA,0

GOTO STOP2

MOVE3 MOVLW 22h

MOVWF PORTB

CALL SEL

BTFSS PORTA,0

GOTO STOP3

MOVE4 MOVLW 46h

MOVWF PORTB

CALL SEL

BTFSS PORTA,0

GOTO STOP4

MOVE5 MOVLW 44h

MOVWF PORTB

CALL SEL

BTFSS PORTA,0

GOTO STOP5

MOVE6 MOVLW 8Ch

MOVWF PORTB

CALL SEL

BTFSS PORTA,0

GOTO STOP6

MOVE7 MOVLW 88h

MOVWF PORTB

CALL SEL

BTFSS PORTA,0

GOTO STOP7

MOVE8 MOVLW 19h

MOVWF PORTB

CALL SEL

BTFSS PORTA,0

GOTO STOP8

GOTO MOVE1

; << R回転 >>

MOVE9 MOVLW 81h

MOVWF PORTB

CALL SEL

BTFSS PORTA,1

GOTO STOP9

MOVE16 MOVLW 89h

MOVWF PORTB

CALL SEL

BTFSS PORTA,1

GOTO STOP16

MOVE15 MOVLW 48h

MOVWF PORTB

CALL SEL

BTFSS PORTA,1

GOTO STOP15

MOVE14 MOVLW 4Ch

MOVWF PORTB

CALL SEL

BTFSS PORTA,1

GOTO STOP14

MOVE13 MOVLW 24h

MOVWF PORTB

CALL SEL

BTFSS PORTA,1

GOTO STOP13

MOVE12 MOVLW 26h

MOVWF PORTB

CALL SEL

BTFSS PORTA,1

GOTO STOP12

MOVE11 MOVLW 12h

MOVWF PORTB

CALL SEL

BTFSS PORTA,1

GOTO STOP11

MOVE10 MOVLW 13h

MOVWF PORTB

CALL SEL

BTFSS PORTA,1

GOTO STOP10

GOTO MOVE9

; <<速度選択 >>

SEL BTFSS PORTA,2

CALL SEL110 ; xxx0

BTFSS PORTA,2

RETURN

CALL SEL111 ; xxx1

RETURN

SEL110 BTFSS PORTA,3 ; xxx0

CALL SEL114 ; xx00

BTFSS PORTA,3

RETURN

CALL SEL112 ; xx10

RETURN

SEL111 BTFSS PORTA,3 ; xxx1

CALL SEL115 ; xx01

BTFSS PORTA,3

RETURN

CALL SEL113 ; xx11

RETURN

SEL112 BTFSS PORTA,4 ; xx10

CALL SEL123 ; x010

BTFSS PORTA,4

RETURN

CALL SEL122 ; x110

RETURN

SEL113 BTFSS PORTA,4 ; xx11

CALL SEL120 ; x011

BTFSS PORTA,4

RETURN

CALL SEL118 ; x111

RETURN

SEL114 BTFSS PORTA,4 ; xx00

CALL SEL121 ; x000

BTFSS PORTA,4

RETURN

CALL SEL119 ; x100

RETURN

SEL115 BTFSS PORTA,4 ; xx01

CALL SEL117 ; x001

BTFSS PORTA,4

RETURN

CALL SEL116 ; x101

RETURN

SEL116 BTFSS PORTA,5 ; x101

CALL T05 ; 0101=5

BTFSS PORTA,5

RETURN

CALL T13 ; 1101=13

RETURN

SEL117 BTFSS PORTA,5 ; x001

CALL T01 ; 0001=1

BTFSS PORTA,5

RETURN

CALL T09 ; 1001=9

RETURN

SEL118 BTFSS PORTA,5 ; x111

CALL T07 ; 0111=7

BTFSS PORTA,5

RETURN

CALL T15 ; 1111=15

RETURN

SEL119 BTFSS PORTA,5 ; x100

CALL T04 ; 0100=4

BTFSS PORTA,5

RETURN

CALL T12 ; 1100=12

RETURN

SEL120 BTFSS PORTA,5 ; x011

CALL T03 ; 0011=3

BTFSS PORTA,5

RETURN

CALL T11 ; 1011=11

RETURN

SEL121 BTFSS PORTA,5 ; x000

CALL T00 ; 0000=0

BTFSS PORTA,5

RETURN

CALL T08 ; 1000=8

RETURN

SEL122 BTFSS PORTA,5 ; x110

CALL T06 ; 0110=6

BTFSS PORTA,5

RETURN

CALL T14 ; 1110=14

RETURN

SEL123 BTFSS PORTA,5 ; x010

CALL T02 ; 0010=2

BTFSS PORTA,5

RETURN

CALL T10 ; 1010=10

RETURN

; << 178290サイクル待つルーチン=1.75 >>

T00 MOVLW 8Eh ; =142

MOVWF GPR_11

T00LP CALL T1248S

DECFSZ GPR_11,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T00LP

CALL T359

RETURN

; << 187201サイクル待つルーチン=1.67 >>

T01 MOVLW 95h ; =149

MOVWF GPR_15

T01LP CALL T1248S

DECFSZ GPR_15,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T01LP

CALL T499

RETURN

; << 197057サイクル待つルーチン=1.58 >>

T02 MOVLW 9Dh ; =157

MOVWF GPR_16

T02LP CALL T1248S

DECFSZ GPR_16,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T02LP

CALL T331

RETURN

; << 208001サイクル待つルーチン=1.5 >>

T03 MOVLW 0A6h ; =166

MOVWF GPR_17

T03LP CALL T1248S

DECFSZ GPR_17,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T03LP

RETURN

; << 220239サイクル待つルーチン=1.42 >>

T04 MOVLW 0AFh ; =175

MOVWF GPR_18

T04LP CALL T1248S

DECFSZ GPR_18,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T04LP

CALL T959

RETURN

; << 234314サイクル待つルーチン=1.33 >>

T05 MOVLW 0BBh ; =187

MOVWF GPR_1

T05LP CALL T1248S

DECFSZ GPR_1,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T05LP

RETURN

; << 249350サイクル待つルーチン=1.25 >>

T06 MOVLW 0C7h ; =199

MOVWF GPR_2

T06LP CALL T1248S

DECFSZ GPR_2,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T06LP

RETURN

; << 267377サイクル待つルーチン=1.17 >>

T07 MOVLW 0D5h ; =213

MOVWF GPR_3

T07LP CALL T1248S

DECFSZ GPR_3,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T07LP

CALL T483

RETURN

; << 288193サイクル待つルーチン=1.08 >>

T08 MOVLW 0E6h ; =230

MOVWF GPR_4

T08LP CALL T1248S

DECFSZ GPR_4,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T08LP

RETURN

; << 312000サイクル待つルーチン=1 >>

T09 MOVLW 0F9h ; =249

MOVWF GPR_5

T09LP CALL T1248S

DECFSZ GPR_5,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T09LP

RETURN

; << 340824サイクル待つルーチン=0.92 >>

T10 MOVLW 17h ; =23

MOVWF GPR_6

T10LP CALL T1248S

DECFSZ GPR_6,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T10LP

CALL T09

RETURN

; << 374655サイクル待つルーチン=0.83 >>

T11 MOVLW 32h ; =50

MOVWF GPR_7

T11LP CALL T1248S

DECFSZ GPR_7,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T11LP

CALL T09

RETURN

; << 416004サイクル待つルーチン=0.75 >>

T12 MOVLW 53h ; =83

MOVWF GPR_8

T12LP CALL T1248S

DECFSZ GPR_8,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T12LP

CALL T09

RETURN

; << 467862サイクル待つルーチン=0.67 >>

T13 MOVLW 7Ch ; =124

MOVWF GPR_9

T13LP CALL T1248S

DECFSZ GPR_9,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T13LP

CALL T09

CALL T483

RETURN

; << 535039サイクル待つルーチン=0.58 >>

T14 MOVLW 0B2h ; =178

MOVWF GPR_10

T14LP CALL T1248S

DECFSZ GPR_10,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T14LP

CALL T09

RETURN

; << 624004サイクル待つルーチン=0.5 >>

T15 CALL T09

CALL T09

RETURN

; <<1248サイクル待つサブルーチン >>

T1248S MOVLW 0F9h ; F9h=249

MOVWF GPR_12 ; (ループ回数として249をセット)

T1248LP NOP

NOP ; 何もせず1サイクル消費

DECFSZ GPR_12,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T1248LP

RETURN ; このサブルーチン呼出し元に戻る

; << 259376サイクル待つルーチン >>

TT259374 MOVLW 0CFh ; CFh=207

MOVWF GPR_13 ; (ループ回数として207をセット)

T5296LP CALL T1248S ;

DECFSZ GPR_13,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T5296LP

NOP

NOP ;

RETURN ; このサブルーチン呼出し元に戻る

; <<483サイクル待つサブルーチン >>

T483 MOVLW 078h ; 78h=120

MOVWF GPR_14 ; (ループ回数として120をセット)

T483LP NOP

DECFSZ GPR_14,F ; ループ回数-1して0になったら次の命令をスキップ

GOTO T483LP

RETURN

; <<499サイクル待つサブルーチン >>

T499 MOVLW 07Ch ; =124

MOVWF GPR_19 ; (ループ回数として120をセット)

T499LP NOP

DECFSZ GPR_19,F ; ループ回数-1して0になったら次の命令をスキップ

GOTO T499LP

RETURN

; <<959サイクル待つサブルーチン >>

T959 MOVLW 0EEh ; =239

MOVWF GPR_20 ; (ループ回数として120をセット)

T959LP NOP

DECFSZ GPR_20,F ; ループ回数-1して0になったら次の命令をスキップ

GOTO T959LP

RETURN

; <<359サイクル待つサブルーチン >>

T359 MOVLW 059h ; =89

MOVWF GPR_22 ; (ループ回数として120をセット)

T359LP NOP

DECFSZ GPR_22,F ; ループ回数-1して0になったら次の命令をスキップ

GOTO T359LP

RETURN

; <<331サイクル待つサブルーチン >>

T331 MOVLW 052h ; =82

MOVWF GPR_21 ; (ループ回数として120をセット)

T331LP NOP

DECFSZ GPR_21,F ; ループ回数-1して0になったら次の命令をスキップ

GOTO T331LP

RETURN

; << 125303サイクル待つルーチン=1.75 >>

T000 MOVLW 64h ; =100

MOVWF GPR_23

T000LP CALL T1248S

DECFSZ GPR_23,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T000LP

RETURN

; << 125303サイクル待つルーチン=1.75 >>

T0000 MOVLW 32h ; =50

MOVWF GPR_24

T0000LP CALL T1248S

DECFSZ GPR_24,F ; ループ回数?1して0になったら次の命令をスキップ

GOTO T0000LP

RETURN

END

満天の星空

星空の画像、主に中望遠レンズでの星雲星団の画像を公開します。 機材の改造やカスタマイズについても載せていきたいと思います。