電子書籍の厳選無料作品が豊富!

16F628Aを使ってLEDが点滅するプログラム作ることはできたのですが、それを16F873A用に組み替えてみたのですが点滅せずに点灯したままになります。ハード的な問題なのかそれともプログラム問題なのかがわかりません。マイコンの勉強をはじめたばかりなのでお教えいただければたすかります。
ちなみにプログラムは以下のようになっています。クロックは10MHzです。
開発環境はMPLABをつかっていて秋月のキットを使って書き込んでいます。
;
;
;
list p=pic16f873a
#include<P16F873A.INC>

__CONFIG_WDT_OFF & _HS_OSC & _CP_OFF & _PWRTE_ON & _LVP_OFF

COUNTEQU 20H
COUNT1EQU 21H

ORG0

MAIN
BSFSTATUS,RP0
CLRFTRISA
CLRFTRISB
CLRFTRISC
BCFSTATUS,RP0
MOVLWB'11111111'
MOVWFPORTC
CALLLA

CLRFPORTC
CALLLA
GOTOMAIN


LA
MOVLWB'11111111'
MOVWFCOUNT
LOOP2
MOVLWB'11111111'
MOVWFCOUNT1

LOOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZCOUNT1,1
GOTOLOOP

DECFSZCOUNT,1
GOTOLOOP2



RETURN

END

A 回答 (1件)

以前動いていたものの移植なら、ロジックミスとかはないはずと思われるので、真っ先に疑われるのはクロックが高いせいで、点滅しているけど速すぎて目に見えないということです。



内蔵タイマがあるなら、LOOP処理の中身をNOPからタイマに置き換えるといいでしょう。NOPだと、処理速度依存になっちゃいますからね。タイマがないんだったら、もっとNOPを大胆に増やしてどうなるか見てみるしかないです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。クロックも同じ物(10MHz)を使っているので処理速度は同じじゃないかと思うのですが、試しにNOPを大幅に増やしてみたいと思います。

お礼日時:2008/06/02 09:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!