マイコン独立大作戦
ROM/RAM/RTCボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
独立大作戦の作戦その1はCRTインターフェースボードの製作です。
作戦その2はキーボードインターフェースです。
作戦その3は、SDカードインターフェースです。
作戦その4は、ROM/RAM/RTCボードです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第13回]
●DATE$,TIME$
またまた久しぶりの更新になってしまいました。
前回も書きましたようにこのところやらなくてはならない作業が山積みでなかなかHPの更新をしている時間が取れません。
気長なお付き合いをお願いします。
この間からDS1307について書いています。
DS1307を使うそもそもの目的はログファイルに日付データが必要なので、ということだったのですが、実はもうひとつせっかくRTC(リアルタイムクロック)を搭載するということになりましたら、ぜひともそれを利用して組み込みたい機能があります。
それが今回のテーマであります、DATE$とTIME$です。
どちらもBASICでおなじみのシステム変数です。
文字変数なのですがDATE$はYY/MM/DDという8バイトの現在の日付を保持します。
またTIME$はHH:MM:SSという8バイトの現在時刻を保持します。
現行のND80Z3.5、ND8080、MYCPU80のZB3BASICにもDATE$、TIME$はありますが、それはWindowsパソコンと接続してWindows上の日付、時刻データをUSB接続を介して取得していますから、Windowsパソコンを離れて独立してしまうとDATE$もTIME$も機能しなくなってしまいます。
そこでせっかくDS1307を使うのでしたら、先に紹介しましたDS1307のテストプログラムを利用して、DATE$、TIME$に組み込みたいと考えました。
それでここ2日ほどちょいと空いた時間を利用してそのためのテスト作業を行ないました。
まだ完全に組み込むところまではできていませんが、そのすぐ前のところまではなんとか出来上がりました。
実はその過程で、前に書きましたDS1307の通信プログラムに間違いがあることがわかりましたのでまずはそれについて書くことにします。
下はとりあえずND80Z3.5(USB接続型)のRAM上で動作するテスト版のプログラムを実行したときのログの一部です。
最初はうまく出来たと思ったのですが、繰り返し実行すると必ず2回目にエラーが発生してしまいます。
>/ld dtsb1b.bin,9000 loading DTSB1B.BIN ...0224(548)bytes loaded,from 9000 to 9223 >jp 9006 ERTC >jp 9006 >jp 9006 ERTC >jp 9006 >jp 9006 ERTC >jp 9006 >jp 9006 ERTC >bp 9219 >jp 9006 >jp 9006 A F B C D E H L A'F' B'C' D'E' H'L' PC SP IX IY I SZ H PNC 0110 0000 D007 9006 2F28 0000 0000 0000 9219 F7F4 0000 0000 FF 00010000 >jp 9006 >dm f2e2,f2ef F2E2 31 37 2F 30 37 2F 32 35-4B BE F0 ED 5B BC F0 2A 17/07/25Kセ..[シ.* >jp 9009 ERTC >jp 9009 >dm f2e2,f2ef F2E2 32 32 3A 33 34 3A 32 35-4B BE F0 ED 5B BC F0 2A 22:34:25Kセ..[シ.* >/ld dtsb1c.bin,9000 loading DTSB1C.BIN ...0238(568)bytes loaded,from 9000 to 9237 >jp 9006 ERTC >jp 9006 >jp 9006 >jp 9006 >jp 9009 >dm f2e2,f2ef F2E2 32 32 3A 35 31 3A 35 31-4B BE F0 ED 5B BC F0 2A 22:51:51Kセ..[シ.* |
JP 9006というのが日付データをDS1307から読み込むプログラムへのジャンプで、ERTCというのがそこでエラーが発生したことを示すメッセージです。
エラーの発生したと思われるところにブレークポイントを設定して実行したところ、どういうわけか2回目のDS1307への送信でDS1307からNACKが返ってくるらしいことがわかりました。
どうも2回目に限ってDS2307がビジーになるようです。
なぜ?
ということでそのあたりのプログラムです。
もとのプログラムリストは[第9回]でお見せしました。
ごく一部を除いてそこでお見せしたプログラムと同じです。
;
; 8bit DATA IN
; A in data
SIN8:PUSH BC
LD B,08
SIN81:CALL T5US
IN A,(90)
RRCA
RL C
LD A,F0;scl=H,sdt=H
OUT (90),A
CALL T5US
AND D0;scl=L
OUT (90),A
DJNZ SIN81
LD A,C0;scl=L,sdt=L ACK
OUT (90),A
CALL T5US
OR 20;scl=H
OUT (90),A
CALL T5US
AND D0;scl=L
OUT (90),A
CALL T5US
LD A,C
POP BC
RET
|
ここに問題があることがわかりました。
[第11回]で「DS1307のDatasheetではデータ受信を終了するときは最後のデータの終わりにNACKを送るとありますがプログラムが複雑になるためACKを送ったあとSTOPを出力していますが特に問題はありません」と書きましたがそこが間違っていました。
2度目にエラーが発生してしまうのは、そこに問題があったからでした。
NACKを送らずにACKのあとSTOPを出力したためDS1307はデータを送信するモードのままスタンバイしていたのでした。
その状態で再び読み出しプログラムを実行するためにレジスタbフ送信を行なったため、DS1307はCPUが受信を再開せずにいきなりデータ送信を開始しようとしたので、「それは手続きが違うでしょうよ」ということでNACKで答えたのだろうと推測しました。
そこでデータ受信の最後はACKの代わりにNACKを送るようにしたところエラーは発生しなくなりました。
LD HL,TMDTBF
LD B,06
RTCRD1:CALL RTCSIN8
CALL ACKOUT
JP NZ,RTCRD1
CALL RTCSIN8;last 1byte
CALL NCKOUT
;stop
LD A,E0;scl=H,sdt=L
OUT (90),A
CALL T5US
LD A,F0;sdt=H
OUT (90),A
|
今回の最初のところでお見せしたログの最後のあたりがそのように変更したあとのプログラムを実行しているところです。
下に今回作成したプログラムのリストを示します。
;date$,time$ test program
;17/7/25 7/26
;
TMDTBF=$F904
TMDTBF2=$F908
TMHH=$F2E2
TMSS=$F2E9
TDSW=$F2F0
;
DEDP=$1018
REENT=$1033
LETS2=$2009
;
ORG $9000
;
JP WDATE
JP WTIME
JP RDT
JP RTM
;
RDT:CALL RDATE
JP REENT
RTM:CALL RTIME
JP REENT
;
;;; DATE WRITE
WDATE:LD A,01
JP TMWT1
;;; TIME WRITE
WTIME:XOR A
TMWT1:LD (TDSW),A
INC DE
LD A,(DE)
CP 3D;CP 9A ;= *******
JP NZ,ER37
INC DE
CALL LETS2
JP C,ER37
PUSH DE
LD A,C
CP 08
JP NZ,ER37
EX DE,HL
CALL TMSB1
PUSH BC
INC DE
CALL TMSB1
PUSH BC
INC DE
CALL TMSB1
;
LD HL,TMDTBF
LD A,(TDSW)
OR A
JP Z,TMWT12;time$
LD HL,TMDTBF2
TMWT12:CALL WSUB
POP BC
CALL WSUB
POP BC
CALL WSUB
CALL RTCWR
POP DE
JP REENT;******
;
;;; DATE READ
RDATE:LD A,2F
JP TMRD0
;;; TIME READ
RTIME:LD A,3A
TMRD0:LD (TDSW),A
;
PUSH DE
TMRD1:CALL RTCRD
LD HL,TMDTBF
LD A,(TDSW)
CP 3A
JP Z,TMR12;time$
LD HL,TMDTBF2
TMR12:CALL RSUB
PUSH BC
CALL RSUB
PUSH BC
CALL RSUB
LD HL,TMHH
LD (HL),B
INC HL
LD (HL),C
INC HL
LD A,(TDSW)
LD (HL),A
INC HL
POP BC
LD (HL),B
INC HL
LD (HL),C
INC HL
LD (HL),A
INC HL
POP BC
LD (HL),B
INC HL
LD (HL),C
LD HL,TMHH
LD BC,$0008
POP DE
RET
;;;
TMSB1:CALL TMSB2
LD B,A
CALL TMSB2
LD C,A
RET
TMSB2:LD A,(DE)
CP 30
JP C,ER37
CP 3A
JP NC,ER37
AND 0F
INC DE
RET
;
WSUB:LD A,B
WSUB1:RLA
RLA
RLA
RLA
OR C
WSUB2:LD (HL),A
INC HL
RET
;
RSUB:LD A,(HL)
RSUB1:LD B,A
AND 0F
OR 30
LD C,A
LD A,B
RRA
RRA
RRA
RRA
AND 0F
OR 30
LD B,A
INC HL
RET
;
;rtcdata write from buffer
RTCWR:LD A,F0;scl=H,sdt=H
OUT (90),A
CALL T5US
LD A,E0;scl=H,sdt=L;start
OUT (90),A
CALL T5US
AND D0;scl=L
OUT (90),A
CALL T5US
LD A,D0;DS1357ID+WR
CALL SOUT8
LD A,00;register address
CALL SOUT8
LD HL,TMDTBF
LD B,07
WR1:LD A,(HL)
CALL SOUT8
INC HL
DEC B
JP NZ,WR1
LD A,10
CALL SOUT8
;stop
LD A,E0;scl=H,sdt=L
OUT (90),A
CALL T5US
LD A,F0;sdt=H
OUT (90),A
RET
;
;rtcdata read to buffer
RTCRD:LD A,F0;scl=H,sdt=H
OUT (90),A
CALL T5US
LD A,E0;scl=H,sdt=L;start
OUT (90),A
CALL T5US
AND D0;scl=L
OUT (90),A
CALL T5US
LD A,D0;DS1357ID+WR
CALL SOUT8
LD A,00;register address
CALL SOUT8
LD A,F0;scl=H,sdt=H
OUT (90),A
CALL T5US
LD A,E0;scl=H,sdt=L;restart
OUT (90),A
CALL T5US
AND D0;scl=L
OUT (90),A
CALL T5US
LD A,D1;DS1357ID+RD
CALL SOUT8
LD HL,TMDTBF
LD B,06
RTCRD1:CALL RTCSIN8
CALL ACKOUT
JP NZ,RTCRD1
CALL RTCSIN8;last 1byte
CALL NCKOUT
;stop
LD A,E0;scl=H,sdt=L
OUT (90),A
CALL T5US
LD A,F0;sdt=H
OUT (90),A
DEC HL
DEC HL
LD A,(HL);month
AND 1F
LD (HL),A
DEC HL
LD A,(HL);day
AND 3F
LD (HL),A
DEC HL
DEC HL
LD A,(HL);hour
AND 3F
LD (HL),A
DEC HL
LD A,(HL);minute
AND 7F
LD (HL),A
DEC HL
LD A,(HL);second
AND 7F
LD (HL),A
RET
NCKOUT:PUSH AF
LD A,D0;scl=L,sdt=H NACK
JP ACKOUT2
ACKOUT:PUSH AF
LD A,C0;scl=L,sdt=L ACK
ACKOUT2:OUT (90),A
OR 20;scl=H
OUT (90),A
CALL T5US
AND D0;scl=L
OUT (90),A
CALL T5US
POP AF
RET
;
; 8bit DATA OUT
; A outdata
SOUT8:PUSH BC
LD B,08
LD C,A
SOUT81:RLC C
JP C,SOUTH
AND E0
JP SOUT82
SOUTH:OR 10
SOUT82:OUT (90),A
OR 20;scl=H
OUT (90),A
CALL T5US
AND D0;scl=L
OUT (90),A
CALL T5US
DJNZ SOUT81
OR 10;sdt=H
OUT (90),A
OR 20;scl=H
OUT (90),A
IN A,(90);ACK
AND 01
JP NZ,ERTC
CALL T5US
AND D0;scl=L
OUT (90),A
CALL T5US
POP BC
RET
;
; 8bit DATA IN
; A in data
SIN8:PUSH BC
LD B,08
SIN81:CALL T5US
IN A,(90)
RRCA
RL C
LD A,F0;scl=H,sdt=H
OUT (90),A
CALL T5US
AND D0;scl=L
OUT (90),A
DJNZ SIN81
LD A,C
POP BC
RET
;
RTCSIN8:PUSH BC
CALL SIN8
LD (HL),A
INC HL
POP BC
DEC B
RET
;
;5us timer clock 6MHz
T5US:NOP
RET
;
ER37:LD DE,ER37T
ER37_2:CALL DEDP
JP REENT
ER37T:"ER37"
DB 0D
ERTC:LD DE,ERTCT
JP ER37_2
ERTCT:"ERTC"
DB 0D
;
;END
|
下はアセンブルリストです。
2017/7/26 21:33 dtsb1e.txt
END=9225
;date$,time$ test program
;17/7/25 7/26
;
TMDTBF=$F904
TMDTBF2=$F908
TMHH=$F2E2
TMSS=$F2E9
TDSW=$F2F0
;
DEDP=$1018
REENT=$1033
LETS2=$2009
;
ORG $9000
;
9000 C31890 JP WDATE
9003 C31D90 JP WTIME
9006 C30C90 JP RDT
9009 C31290 JP RTM
;
900C CD6390 RDT:CALL RDATE
900F C33310 JP REENT
9012 CD6890 RTM:CALL RTIME
9015 C33310 JP REENT
;
;;; DATE WRITE
9018 3E01 WDATE:LD A,01
901A C31E90 JP TMWT1
;;; TIME WRITE
901D AF WTIME:XOR A
901E 32F0F2 TMWT1:LD (TDSW),A
9021 13 INC DE
9022 1A LD A,(DE)
9023 FE3D CP 3D;CP 9A ;= *******
9025 C20D92 JP NZ,ER37
9028 13 INC DE
9029 CD0920 CALL LETS2
902C DA0D92 JP C,ER37
902F D5 PUSH DE
9030 79 LD A,C
9031 FE08 CP 08
9033 C20D92 JP NZ,ER37
9036 EB EX DE,HL
9037 CDA990 CALL TMSB1
903A C5 PUSH BC
903B 13 INC DE
903C CDA990 CALL TMSB1
903F C5 PUSH BC
9040 13 INC DE
9041 CDA990 CALL TMSB1
;
9044 2104F9 LD HL,TMDTBF
9047 3AF0F2 LD A,(TDSW)
904A B7 OR A
904B CA5190 JP Z,TMWT12;time$
904E 2108F9 LD HL,TMDTBF2
9051 CDC190 TMWT12:CALL WSUB
9054 C1 POP BC
9055 CDC190 CALL WSUB
9058 C1 POP BC
9059 CDC190 CALL WSUB
905C CDDD90 CALL RTCWR
905F D1 POP DE
9060 C33310 JP REENT;******
;
;;; DATE READ
9063 3E2F RDATE:LD A,2F
9065 C36A90 JP TMRD0
;;; TIME READ
9068 3E3A RTIME:LD A,3A
906A 32F0F2 TMRD0:LD (TDSW),A
;
906D D5 PUSH DE
906E CD1B91 TMRD1:CALL RTCRD
9071 2104F9 LD HL,TMDTBF
9074 3AF0F2 LD A,(TDSW)
9077 FE3A CP 3A
9079 CA7F90 JP Z,TMR12;time$
907C 2108F9 LD HL,TMDTBF2
907F CDCA90 TMR12:CALL RSUB
9082 C5 PUSH BC
9083 CDCA90 CALL RSUB
9086 C5 PUSH BC
9087 CDCA90 CALL RSUB
908A 21E2F2 LD HL,TMHH
908D 70 LD (HL),B
908E 23 INC HL
908F 71 LD (HL),C
9090 23 INC HL
9091 3AF0F2 LD A,(TDSW)
9094 77 LD (HL),A
9095 23 INC HL
9096 C1 POP BC
9097 70 LD (HL),B
9098 23 INC HL
9099 71 LD (HL),C
909A 23 INC HL
909B 77 LD (HL),A
909C 23 INC HL
909D C1 POP BC
909E 70 LD (HL),B
909F 23 INC HL
90A0 71 LD (HL),C
90A1 21E2F2 LD HL,TMHH
90A4 010800 LD BC,$0008
90A7 D1 POP DE
90A8 C9 RET
;;;
90A9 CDB290 TMSB1:CALL TMSB2
90AC 47 LD B,A
90AD CDB290 CALL TMSB2
90B0 4F LD C,A
90B1 C9 RET
90B2 1A TMSB2:LD A,(DE)
90B3 FE30 CP 30
90B5 DA0D92 JP C,ER37
90B8 FE3A CP 3A
90BA D20D92 JP NC,ER37
90BD E60F AND 0F
90BF 13 INC DE
90C0 C9 RET
;
90C1 78 WSUB:LD A,B
90C2 17 WSUB1:RLA
90C3 17 RLA
90C4 17 RLA
90C5 17 RLA
90C6 B1 OR C
90C7 77 WSUB2:LD (HL),A
90C8 23 INC HL
90C9 C9 RET
;
90CA 7E RSUB:LD A,(HL)
90CB 47 RSUB1:LD B,A
90CC E60F AND 0F
90CE F630 OR 30
90D0 4F LD C,A
90D1 78 LD A,B
90D2 1F RRA
90D3 1F RRA
90D4 1F RRA
90D5 1F RRA
90D6 E60F AND 0F
90D8 F630 OR 30
90DA 47 LD B,A
90DB 23 INC HL
90DC C9 RET
;
;rtcdata write from buffer
90DD 3EF0 RTCWR:LD A,F0;scl=H,sdt=H
90DF D390 OUT (90),A
90E1 CD0B92 CALL T5US
90E4 3EE0 LD A,E0;scl=H,sdt=L;start
90E6 D390 OUT (90),A
90E8 CD0B92 CALL T5US
90EB E6D0 AND D0;scl=L
90ED D390 OUT (90),A
90EF CD0B92 CALL T5US
90F2 3ED0 LD A,D0;DS1357ID+WR
90F4 CDAA91 CALL SOUT8
90F7 3E00 LD A,00;register address
90F9 CDAA91 CALL SOUT8
90FC 2104F9 LD HL,TMDTBF
90FF 0607 LD B,07
9101 7E WR1:LD A,(HL)
9102 CDAA91 CALL SOUT8
9105 23 INC HL
9106 05 DEC B
9107 C20191 JP NZ,WR1
910A 3E10 LD A,10
910C CDAA91 CALL SOUT8
;stop
910F 3EE0 LD A,E0;scl=H,sdt=L
9111 D390 OUT (90),A
9113 CD0B92 CALL T5US
9116 3EF0 LD A,F0;sdt=H
9118 D390 OUT (90),A
911A C9 RET
;
;rtcdata read to buffer
911B 3EF0 RTCRD:LD A,F0;scl=H,sdt=H
911D D390 OUT (90),A
911F CD0B92 CALL T5US
9122 3EE0 LD A,E0;scl=H,sdt=L;start
9124 D390 OUT (90),A
9126 CD0B92 CALL T5US
9129 E6D0 AND D0;scl=L
912B D390 OUT (90),A
912D CD0B92 CALL T5US
9130 3ED0 LD A,D0;DS1357ID+WR
9132 CDAA91 CALL SOUT8
9135 3E00 LD A,00;register address
9137 CDAA91 CALL SOUT8
913A 3EF0 LD A,F0;scl=H,sdt=H
913C D390 OUT (90),A
913E CD0B92 CALL T5US
9141 3EE0 LD A,E0;scl=H,sdt=L;restart
9143 D390 OUT (90),A
9145 CD0B92 CALL T5US
9148 E6D0 AND D0;scl=L
914A D390 OUT (90),A
914C CD0B92 CALL T5US
914F 3ED1 LD A,D1;DS1357ID+RD
9151 CDAA91 CALL SOUT8
9154 2104F9 LD HL,TMDTBF
9157 0606 LD B,06
9159 CD0292 RTCRD1:CALL RTCSIN8
915C CD9591 CALL ACKOUT
915F C25991 JP NZ,RTCRD1
9162 CD0292 CALL RTCSIN8;last 1byte
9165 CD8F91 CALL NCKOUT
;stop
9168 3EE0 LD A,E0;scl=H,sdt=L
916A D390 OUT (90),A
916C CD0B92 CALL T5US
916F 3EF0 LD A,F0;sdt=H
9171 D390 OUT (90),A
9173 2B DEC HL
9174 2B DEC HL
9175 7E LD A,(HL);month
9176 E61F AND 1F
9178 77 LD (HL),A
9179 2B DEC HL
917A 7E LD A,(HL);day
917B E63F AND 3F
917D 77 LD (HL),A
917E 2B DEC HL
917F 2B DEC HL
9180 7E LD A,(HL);hour
9181 E63F AND 3F
9183 77 LD (HL),A
9184 2B DEC HL
9185 7E LD A,(HL);minute
9186 E67F AND 7F
9188 77 LD (HL),A
9189 2B DEC HL
918A 7E LD A,(HL);second
918B E67F AND 7F
918D 77 LD (HL),A
918E C9 RET
918F F5 NCKOUT:PUSH AF
9190 3ED0 LD A,D0;scl=L,sdt=H NACK
9192 C39891 JP ACKOUT2
9195 F5 ACKOUT:PUSH AF
9196 3EC0 LD A,C0;scl=L,sdt=L ACK
9198 D390 ACKOUT2:OUT (90),A
919A F620 OR 20;scl=H
919C D390 OUT (90),A
919E CD0B92 CALL T5US
91A1 E6D0 AND D0;scl=L
91A3 D390 OUT (90),A
91A5 CD0B92 CALL T5US
91A8 F1 POP AF
91A9 C9 RET
;
; 8bit DATA OUT
; A outdata
91AA C5 SOUT8:PUSH BC
91AB 0608 LD B,08
91AD 4F LD C,A
91AE CB01 SOUT81:RLC C
91B0 DAB891 JP C,SOUTH
91B3 E6E0 AND E0
91B5 C3BA91 JP SOUT82
91B8 F610 SOUTH:OR 10
91BA D390 SOUT82:OUT (90),A
91BC F620 OR 20;scl=H
91BE D390 OUT (90),A
91C0 CD0B92 CALL T5US
91C3 E6D0 AND D0;scl=L
91C5 D390 OUT (90),A
91C7 CD0B92 CALL T5US
91CA 10E2 DJNZ SOUT81
91CC F610 OR 10;sdt=H
91CE D390 OUT (90),A
91D0 F620 OR 20;scl=H
91D2 D390 OUT (90),A
91D4 DB90 IN A,(90);ACK
91D6 E601 AND 01
91D8 C21B92 JP NZ,ERTC
91DB CD0B92 CALL T5US
91DE E6D0 AND D0;scl=L
91E0 D390 OUT (90),A
91E2 CD0B92 CALL T5US
91E5 C1 POP BC
91E6 C9 RET
;
; 8bit DATA IN
; A in data
91E7 C5 SIN8:PUSH BC
91E8 0608 LD B,08
91EA CD0B92 SIN81:CALL T5US
91ED DB90 IN A,(90)
91EF 0F RRCA
91F0 CB11 RL C
91F2 3EF0 LD A,F0;scl=H,sdt=H
91F4 D390 OUT (90),A
91F6 CD0B92 CALL T5US
91F9 E6D0 AND D0;scl=L
91FB D390 OUT (90),A
91FD 10EB DJNZ SIN81
91FF 79 LD A,C
9200 C1 POP BC
9201 C9 RET
;
9202 C5 RTCSIN8:PUSH BC
9203 CDE791 CALL SIN8
9206 77 LD (HL),A
9207 23 INC HL
9208 C1 POP BC
9209 05 DEC B
920A C9 RET
;
;5us timer clock 6MHz
920B 00 T5US:NOP
920C C9 RET
;
920D 111692 ER37:LD DE,ER37T
9210 CD1810 ER37_2:CALL DEDP
9213 C33310 JP REENT
9216 45523337 ER37T:"ER37"
921A 0D DB 0D
921B 112192 ERTC:LD DE,ERTCT
921E C31092 JP ER37_2
9221 45525443 ERTCT:"ERTC"
9225 0D DB 0D
;
;ENDACKOUT =9195 ACKOUT2 =9198 DEDP =1018
ER37 =920D ER37T =9216 ER37_2 =9210
ERTC =921B ERTCT =9221 LETS2 =2009
NCKOUT =918F RDATE =9063 RDT =900C
REENT =1033 RSUB =90CA RSUB1 =90CB
RTCRD =911B RTCRD1 =9159 RTCSIN8 =9202
RTCWR =90DD RTIME =9068 RTM =9012
SIN8 =91E7 SIN81 =91EA SOUT8 =91AA
SOUT81 =91AE SOUT82 =91BA SOUTH =91B8
T5US =920B TDSW =F2F0 TMDTBF =F904
TMDTBF2 =F908 TMHH =F2E2 TMR12 =907F
TMRD0 =906A TMRD1 =906E TMSB1 =90A9
TMSB2 =90B2 TMSS =F2E9 TMWT1 =901E
TMWT12 =9051 WDATE =9018 WR1 =9101
WSUB =90C1 WSUB1 =90C2 WSUB2 =90C7
WTIME =901D
|
下はUSB接続型ND80Z3.5のRAM上で実行中の画面です。

アドレス9000が日付セット、9003が時刻セット、9006が日付読み出し、9009が時刻読み出しです。
データバッファとしてF2E2〜F2E9を使っています。
ROM/RAM/RTCボードの製作[第13回]
2017.7.26upload
前へ
次へ
ホームページトップへ戻る