マイコン独立大作戦
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
前へ
次へ
ホームページトップへ戻る