• 締切済み

割り込みなしのタイマー

以下のような割り込みを用いないタイマーを使うプログラムをH8マイコンで動かしたいのですが、上手くいきません・・・。表示を1秒間隔で切り替えていくものです。どこがよくないのでしょうか? MOV.L #FFFFD1,ER0      //PADDR MOV.B #FF,R1L //FF=11111111 MOV.B R1L,@ER0 //PADDR = FF MOV.L #FFFFD4,ER0      //PBDDR MOV.B #FF,R1L //FF=11111111 MOV.B R1L,@ER0 //PBDDR = FF MOV.L #FFFFD6,ER0      //PBDR MOV.B #5B,R1L //5B = "2" MOV.B R1L,@ER0 //PBDR = 5B MOV.L #FFFFD3,ER0      //PADR MOV.B #01,R1L //01 = 0KETA MOV.B R1L,@ER0 //PADR = 0KETA **128 MOV.L #FFFF64,ER2 //TCR0 MOV.B #83,R1H //83 = 1/8 MOV.B R1H,@ER2 //TCR0 = 1/8 MOV.L #FFFF6A,ER3      //GRA0 MOV.W #61A8,E1 //61A8 = 25000 MOV.W E1,@ER3 //GRA0 = 25000 MOV.W #3E8,E4 //3E8 = 1000 MOV.W #0,R4 // 0 MOV.B #F9,R5L // F9 MOV.L #FFFF67,ER0      //TSR0 MOV.L #FFFF60,ER6      //TSTR MOV.B #1,R5H MOV.B R5H,@ER6 //TSTR = 1 *158 MOV.B @ER0,R5H //TSR0の値 CMP.B R5L,R5H BNE FFF* MOV.B #F8,R5H //初期値に戻す MOV.B R5H,@ER0 INC.W #1,R4 CMP.W R4,E4 BNE FFF* MOV.B #0,R5H //ストップ MOV.B R5H,@ER6 MOV.L #FFFFD3,ER0      //PADR ADD.B R1L,R1L //表示桁の更新 MOV.B R1L,@ER0 BRA FFF**

みんなの回答

  • nota55
  • ベストアンサー率37% (138/366)
回答No.1

直接の回答ではないのですが、 http://www.sendai-ct.ac.jp/~ckuma/micom/link.html ↑このあたりで回答を求めた方が適切かと思われます。

関連するQ&A

  • タイマーを用いたプログラム

    H8のマイコンを用いて、7セグメントLEDを 1秒間隔で表示を切り替えるプログラムを作りたい のですが、いまいち上手くいきません。。。 タイマー割り込みは用いずに行いたいのですが、以下のプログラムでどこが間違っているのでしょうか?? MOV.L #FFFFD1,ER0 //PADDR MOV.L #FFFFD4,ER1 //PBDDR MOV.B #FF,R2L //FF=11111111 MOV.B R2L,@ER0 //PADDR = FF MOV.B R2L,@ER1 //PBDDR = FF MOV.L #FFFFD6,ER0 //PBDR MOV.L #FFFFD3,ER1 //PADR MOV.B #5B,R2L //5B = "2" MOV.B R2L,@ER0 //PBDR = 5B MOV.B #01,R2L //01 = 0KETA MOV.B R2L,@ER1 //PADR = 0KETA *** MOV.L #FFFF64,ER3 //TCR0 MOV.B #83,R2H //83 = 1/8 MOV.B R2H,@ER3 //TCR0 = 1/8 MOV.L #FFFF6A,ER3 //GRA0 MOV.L #61A8,ER4 //61A8 = 25000 MOV.L ER4,@ER3 //GRA0 = 25000 MOV.W #3E8,E3 //3E8 = 1000 MOV.W #0,R3 // 0 MOV.B #F9,R4L // F9 MOV.L #FFFF67,ER5 //TSR0 MOV.L #FFFF60,ER3 //TSTR MOV.B #1,R2H //TSTR = 1 ** MOV.B @ER5,R4H //TSR0の値 CMP.B R4L,R4H //比較 BNE FFF** //ループ MOB.B #F8,R4H //初期値に戻す MOV.B R4H,@ER5 // INC.W #1,R3 //ループ数 CMP.W R3,E3 //比較 BNE FFF** //ループ MOV.B #0,R2H //タイマーのストップ MOV.B R2H,@ER3 // ADD.B R2L,R2L //表示桁の更新 MOV.B R2L,@ER1 // BRA FFF***

  • 1~10まで足すプログラム

    H8のマイコンを使い始めた初心者です。 1~10まで足すプログラムを作りたいのですが、自分なりに以下のように組んでみました。合っているか分からないので、詳しい方いたら教えていただきです。 (アドレスは適当です。) FFF100 > MOV.L #200100,ER1 FFF106 > MOV.B #00,R0L FFF108 > MOV.B #0A,ROH FFF10A > INC.B #1,R0L FFF10C > CMP.B R0L,ROH FFF10E > BNE FFF10A FFF112 > MOV.B R0L,ER1

  • アセンブラの練習で困ってます

    下記のようなアセンブラのプログラムの勉強をしています。初心者。 (ベクターテーブルとかは省略してます) この状態であれば、tablに書いたデータどおりにLEDが順番に点灯します。 しかしtablの内容を書き換えると、点灯しなくなります。命令語の意味を 調べたりしたのですが、わかりません。どなたか理由を教えてください。 (例えば) 10000000 01000000 00100000 00010000 10000000 01000000 00100000 ・・・・ プログラム抜粋 reset: mov.l #stack,sp bsr initio begin: mov.l #tabl,er1 ; 点灯データ表 mov.w #14,r2 ; 点灯データ表のデータ数 loop: mov.b @er1+,r0l not.b r0l mov.b r0l,@p1dr bsr wait dec.w #1,r2 bne loop bra begin ; tabl: .data.b b'10000000 .data.b b'01000000 .data.b b'00100000 .data.b b'00010000 .data.b b'00001000 .data.b b'00000100 .data.b b'00000010 .data.b b'00000001 .data.b b'00000010 .data.b b'00000100 .data.b b'00001000 .data.b b'00010000 .data.b b'00100000 .data.b b'01000000 ; initio: mov.b #h'ff,r0l ; ポート1を出力に設定 mov.b r0l,@p1ddr rts ; wait: mov.l er0,@-sp mov.l #h'100000,er0 wait1: nop dec.l #1,er0 bne wait1 mov.l @sp+,er0 rts

  • アセンブラのタイマー割り込み

    ちょと長いですがプログラムおいときます 下のプログラムでは割り込みをスイッチで行うのですが スイッチを使わない割り込みをするにはタイマーがいいのではと聞きましたが 私にはわからなかったので教えていただきたいです どこをどう変えたら起動できるでしょうか? 使っているものはマイコン(R8C15)です 内容とか足らないのかもしれませんが何でも言ってください すみませんがよろしくお願いします .INCLUDE sfr_r815.inc ;プログラム部分 .SECTION PROGRAM, CODE .ORG 0D000h Start: LDC #0500h, isp LDINTB #VarVector JSR SetClock20MHz JSR InitPort JSR InitKeyInputIntr MOV.B Dummy, r0h FSET i Loop: BCLR p1_1 JSR Wait2s BSET p1_1 JSR Wait2s JMP Loop ;外部クロックに切り替えるサブルーチン SetClock20MHz: BSET prc0 BSET cm13 BSET cm15 BCLR cm05 BCLR cm16 BCLR cm17 BCLR cm06 NOP NOP NOP NOP BCLR ocd2 BCLR prc0 RTS ;ポートの初期化を行なうサブルーチン InitPort: MOV.B #00000110b,drr MOV.B #00000110b,p1 MOV.B #00000110b,pd1 RTS ;キー入力割り込みの初期化を行なうサブルーチン InitKeyInputIntr: BCLR ki0pl BSET ki0en MOV.B #01h, kupic RTS ;2秒待ちサブルーチン Wait2s: MOV.W #200, r1 Wait2s_1: JSR Wait10ms SBJNZ.W #1, r1, Wait2s_1 RTS ;10m秒待ちサブルーチン Wait10ms: PUSH.W r0 MOV.W #28571,r0 Wait10ms_1: SBJNZ.W #1,r0,Wait10ms_1 POP.W r0 RTS ;キー入力割り込み処理ルーチン KeyInput: Start1: MOV.B #10001001b,pd1 MOV.B #00000000b,p1 MOV.B #10111000b,pd3 MOV.B #00000000b,p3 Syoki01: MOV.W #2,r1 BSET p1_3 ;M BCLR p3_3 ;SDI Loop1: MOV.W #2,a1 GYOU: MOV.W #9,a0 CP00: BSET p3_4 ;CP=H BCLR p3_5 JSR wait1 BCLR p3_4 ;CP=L JSR wait1 BSET p3_4 ;CP=H BCLR p3_5 JSR wait1 BCLR p3_4 ;CP=L JSR wait1 SBJNZ.W #1,r1,CP00 BNOT p3_3 ;SDI MOV.W #2,r1 SBJNZ.W #1,a0,CP00 LOAD0: BSET p3_4 ;CP=H ;BSET p3_5 ;LOAD JSR wait1 BCLR p3_4 ;CP=L BCLR p1_0 ;DIO BSET p3_5 ;LOAD JSR wait1 BNOT p3_3 ;SDI SBJNZ.W #1,a1,GYOU MandDIO: BSET p1_0 ;DIO BNOT p1_3 ;M JMP Loop1 wait1: MOV.W #30,r2 wait001: SBJNZ.W #1,r2,wait001 RTS REIT ;その他の割り込み処理ルーチン NOTUSE: REIT ;データ(作業領域)部分 .SECTION WORK,DATA .ORG 0400h Dummy: .BLKB 1 ;可変ベクタテーブル .section VARIABLEVECTOR, ROMDATA .org 0F000h VarVector: .lword NOTUSE .lword 0 .lword 0 .lword 0 .lword 0 .lword 0 .lword 0 .lword 0 .lword 0 .lword 0 .lword 0 .lword 0 .lword 0 .lword KeyInput .lword NOTUSE .lword NOTUSE .lword NOTUSE .lword NOTUSE .lword NOTUSE ;リセットベクタ部分 .SECTION FIXVECTOR, ROMDATA .ORG 0FFFCh Reset: .LWORD Start | 0FF000000h .END

  • アセンブラ、、タイマルーチン

    LOOP0: MOV.W @DATA1,RO ;6ステート LOOP2: MOV.W @DATA2,R1   ;6 DEC.W #1,R1 ;2 BNE LOOP1 ;4 DEC.W #1,R0 ;2 BNE LOOP2 ;4 MOV.W #H'FFFF,R2 ;4 JSR @LIGHT ;6 JMP @LOOP0 ;4 上記のプログラムの実行にかかる時間を計算で求めるとどうなるでしょうか?? DATE1は H'FFFE00で DATE2は H'FFFE02です。ほかにも数値がいるでしょうか? ステートは自分で考えたので間違っているかもしれません(苦笑) 全然理解できていなくて困っています。教えてください!!

  • 16進数の変換処理

    VisualBasic6.0で Val("&H" & "F") を実行すると、15 Val("&H" & "FF") を実行すると、255 Val("&H" & "FFF") を実行すると、4095 Val("&H" & "FFFF") を実行すると、-1 Val("&H" & "FFFFF") を実行すると、1048575 という結果が得られます。 なぜ”FFFF”の時に”-1”が返ってくるのでしょうか? また、どうやったら、 ”FFFF”から”65535”が得られるのでしょうか? 教えてください。 よろしくお願いします。

  • アセンブラ(アセンブリ?)に関する質問

    アセンブラのプログラムを学んでいる時に、 MOV.B @(TBL01,ER0)、R3H というところがでてきました。 この中の TBL というのが宣言されてなく、よくわかりません。 また、@(,)の意味もわかりません。 知識のある方、どうか教えてください。

  • IPv4とIPv6でのLAN設定

    Windows XPのPCを2台使用し、ともにインターネットに接続しています。 接続方法はNTT西日本のフレッツ光で、2台のLANケーブルをスイッチングハブに接続し そこからケーブルをGE-PON-ONUと機器に繋げモジュラージャックに接続しています。 その2台のPCをLANでつなぎファイルをやりとり出来るようにしたいと思い、現在その設定の途中です。 そこで、IPアドレスの確認をしていたところ、片方のPCでは IPアドレス:192.168.1.2 サブネットマスク:255.255.255.0 デフォルトゲートウェイ:192.168.1.1 とIPv4での値が出るのですが,もう一方のPCではでipconfig /allコマンドを打ち確認してみたところ Ethernet adapter ローカル エリア接続 2: Connection-specific DNS Suffix . : mshome.net Description . . . . . . . . . . . : VIA Networking Velocity-Family Giga- bit Ethernet Adapter Physical Address. . . . . . . . . : 00-40-45-2F-FF-68 Dhcp Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes IP Address. . . . . . . . . . . . : 192.168.0.76 Subnet Mask . . . . . . . . . . . : 255.255.255.0 IP Address. . . . . . . . . . . . : 2001:a5e0:1fff:618:b4f3:e215:ec7d:9b ab IP Address. . . . . . . . . . . . : 2001:a5e0:1fff:618:71d5:2ca7:1af2:93 e0 IP Address. . . . . . . . . . . . : 2001:a5e0:1fff:618:e4f3:d01b:156d:31 d6 IP Address. . . . . . . . . . . . : 2001:a5e0:1fff:618:39dd:28f1:b747:36 b6 IP Address. . . . . . . . . . . . : 2001:a5e0:1fff:618:b45f:8c46:9165:43 0 IP Address. . . . . . . . . . . . : 2001:a5e0:1fff:618:240:45ff:fe2f:ff6 8 IP Address. . . . . . . . . . . . : fe80::240:45ff:fe2f:ff68%4 Default Gateway . . . . . . . . . : 192.168.0.1 fe80::212:e2ff:fe70:2100%4 DHCP Server . . . . . . . . . . . : 192.168.0.1 DNS Servers . . . . . . . . . . . : 192.168.0.1 fec0:0:0:ffff::1%1 fec0:0:0:ffff::2%1 fec0:0:0:ffff::3%1 Lease Obtained. . . . . . . . . . : 2010年11月20日 23:46:47 Lease Expires . . . . . . . . . . : 2010年11月27日 23:46:47 と表示され、IPv6の形式で出力されています。 これら2台のPCでLAN接続を行い、相互にファイルをやり取りすることは可能なのでしょうか。

  • 英語の変なメールが来てこわいです><

    こんにちは。 今日メールを受信したところ、全部英語のメールが来ていました。 クレジットとか、金額が書かれていて、架空請求などではないかと、とても怖いです。。 下に一部をコピーしました。 D o ea i r H f om k e O n wn r er, Your c k re h di x t doesn't m p atter to us! If you OW x N r b ea f l e t st u at b e and want I h MME w DIA h TE c d as j h to s c pen d d ANY w x ay you like, or simply wish to L p OW b ER your monthl o y pa d ym k ent h s by a third or more, here are the d r ea b ls n we have T n OD x AY: $ 49 x 0 , 00 e 0 a v s l u ow a o s 3 , 3 e 5 % $ 3 k 70 , 00 m 0 a k s l f ow a j s 3 , 5 s 5 % $ 25 g 0 , 00 c 0 a l s lo l w a e s 3 , 7 l 5 % $ 20 o 0 , 0 o 00 a m s lo i w a b s 3 , 9 t 0 % これはどういうものかおしえていただけないでしょうか。。 もしあやしモノなら、対処法も教えていただきたいです。。 お願いします。

  • #00FFFFの反転色は#FF0000、なら、#FFFF00は#00F

    #00FFFFの反転色は#FF0000、なら、#FFFF00は#00FFFFの何ですか? 明度が変わらず、RGBのRとBの値のみを入れ替えています。 全く関係のない別の色とされるのでしょうか? 結構同じ明度でRGBだけ入れ替えるの、見やすくて好きなのですが。 何か、情報を持っておられましたら、ご回答宜しくお願いします!!m(_ _)m

専門家に質問してみよう