組み込みアカデミー第1回 LEDを1個点灯のはずが2個点灯してしまいます。
対象は付録の「NE-R8C/25」です。動作確認プログラムのslos.hwsを実行するとLED1と2が交互・同時点灯を繰り返し、正常に動作しています。
ところが以下のプログラムをC:\WorkSpace\step01\step01\step01.a30として実行してもLEDが2個点灯してしまいます。
プログラム中 LED1点灯のところがMOV.B #11111110b,p2でもLED1と2同時に点灯してしまいます。
指定されたsfr_r825.incファイルはc:\WorkSpase\STEP01\STEP01以下にコピーしています。
.INCLUDE sfr_r825.inc ;SFR定義ファイルのインクルード
.SECTION PROGRAM,CODE ;コードセクション
.ORG 0009000h
Start:
MOV.B #11111111b,pd2 ;入出力ポートP2を出力ポートに設定
BCLR p2_0 ;LED1点灯
BSET p2_1 ;LED2消灯
Loop:
JMP Loop
.SECTION FIXVECTOR,ROMDATA
.ORG 0FFFCh
Reset:
.LWORD Start|0FF000000h
.END
No.2ベストアンサー
- 回答日時:
ポートの設定を全て入力にしてみましょう。
LEDが消灯しなければ、このプログラム自体が走っていないと判断できます。
モニタか何か他のプログラムで出力に設定したのであり、あなたのプログラムで出力にしたのではないと判断出来る訳です。
>MOV.B #11111111b,pd2 ;入出力ポートP2を出力ポートに設定
この回答への補足
ricardo_さんへ
アドバイスどおりでした。
プログラムを消してルネサスの「High-performance Embedded Workshop」の「新規プロジェクトワークスペースの作成」からやり直しました。
原因はプロジェクトタイプがApplicationになっていたからでした。EmptyApplicationで作成し、ポートの設定を全て入力にしてみるとLEDが消灯しました!!次にLED1点灯プログラムを実行すると正常に動作しました。ありがとうございます。ROBO-ONEに興味を持ちC言語からはじめようとこのキットを入手しました。
教えてgooも初めて利用して補足とお礼の順番も逆で申し訳ありません。
アドバイスどおりポートの設定を入力にして、以後の命令はコメントにしてデバッグ→リセットして実行 をするとLEDは2個点灯しました。
おっしゃるとおりモニタか何かのプログラムで出力に設定されたとおもいます。 デバッグ→CPUのリセットをクリックしたらLEDは消灯します。
まだ原因がつかめません。
.INCLUDE sfr_r825.inc ;SFR定義ファイルのインクルード
.SECTION PROGRAM,CODE ;コードセクション
.ORG 0009000h
Start:
MOV.B #00000000b,pd2 ;ポートを入力に設定
;MOV.B #11111111b,pd2 ;入出力ポートP2を出力ポートに設定
;BCLR p2_0;LED1点灯
;BSET p2_1;LED1消灯
Loop:
JMP Loop
.SECTION FIXVECTOR,ROMDATA
.ORG 0FFFCh
Reset:
.LWORD Start|0FF000000h
.END
No.1
- 回答日時:
通りすがりで基板の内容も、それに関する記事の内容も知りませんが
デバッグモードで走らせることが出来るなら
BSET p2_1 まで走らせて停止させた時点で LED2 は消灯してるのでしょうか?
要は、ステップ動作で正常に働いて、連続(通常RUNモード)でLED2が消灯しないのであれば、仕様書のどこかにI/oポートアクセスに関する注意事項があるのではないでしょうか?
たまにあるのが 同一ポートのビット操作を連続して行う場合は間に遅延の為にNOP命令を挿入する 等がありますね!
がんばって下さい。
この回答への補足
デバッグ→ステップ と言うコマンドがありました。Loopの行が9ステップなのでそこまで走らせたらLEDは2個ついていました。
NOPもいれてみましたが状況は変わりません。
.INCLUDE sfr_r825.inc ;SFR定義ファイルのインクルード
.SECTION PROGRAM,CODE ;コードセクション
.ORG 0009000h
Start:
;MOV.B #00000000b,pd2 入出力ポートP2を入力ポートに設定
MOV.B #11111111b,pd2 ;入出力ポートP2を出力ポートに設定
BCLR p2_0;LED1点灯
NOP
BSET p2_1;LED1消灯
Loop:
JMP Loop
.SECTION FIXVECTOR,ROMDATA
.ORG 0FFFCh
Reset:
.LWORD Start|0FF000000h
.END
Kuro804さんへ
プログラムを消してルネサスの「High-performance Embedded Workshop」の「新規プロジェクトワークスペースの作成」からやり直しました。
原因はプロジェクトタイプがApplicationになっていたからでした。EmptyApplicationで作成し、ポートの設定を全て入力にしてみるとLEDが消灯しました!!次にLED1点灯プログラムを実行すると正常に動作しました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 工学 LED、CdS(受光素子)、ディジタル IC(組み合わせ回路,順序回路)、タイマーICの技術を組み合 1 2022/12/23 10:45
- カスタマイズ(バイク) ウインカーをLEDに交換したら一箇所だけ点かない 4 2022/04/16 11:16
- バイク車検・修理・メンテナンス 125スクーターのLEDヘッドライトが夜間、エンジンスタート同時に点灯せず、そのまま約3分後、突然点 3 2022/07/23 20:42
- 照明・ライト 懐中電灯は、スイッチを一回押すとランタン用のLEDが点いて、もう一回押すと懐中電灯用の別のLED電球 1 2023/04/05 20:18
- バッテリー・充電器・電池 いつまで経っても充電が100%にならないモバイルバッテリー 2 2022/04/10 17:18
- その他(法律) 自動車の点灯義務について 6 2023/02/24 15:01
- その他(教育・科学・学問) センサー(Cds)を用いたLEDの点灯回路で周囲が暗くなるとLEDが消灯する回路の動作説明ができる方 3 2022/11/20 18:22
- カスタマイズ(車) LED 2 2023/01/07 00:40
- 防犯カメラ・監視カメラ・小型カメラ 夜間の防犯カメラの撮影は、暗視モードというのがあって、赤いLEDが点灯すると思うんですが、隣人が最近 2 2023/03/25 13:59
- スポーツサイクル ロードバイクを先月購入し別売りのヘッドライドを付けたのですが段差を通る度落ちてしまい、1ヶ月で5回も 2 2023/06/06 14:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミング
-
ruby
-
【JAVA】数字をひし形に出力す...
-
プログラミング(自由課題)
-
BM法(ボイヤームーア法)に...
-
LEDイルミの点滅プログラムを教...
-
インクリメント演算子のみを用...
-
Vba 実数および実数タイプの変...
-
Notepad++の関数リスト表示でC...
-
Stuck
-
自動クエリとはどういうもので...
-
正しい五十音順について
-
PICマイコンのコピー(クローン...
-
これはDos攻撃になりますか?
-
Dijkstraて
-
XnViewにwebpを「いつも開く」...
-
m個の数字をn個のグループに分...
-
binファイルってiphone専用です...
-
C言語(gcc), Linux, FTPプログ...
-
Vb6.0で三角関数が使えない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【JAVA】数字をひし形に出力す...
-
変数の値が勝手に変化する原因
-
JCLの基本について教えてください
-
Sublime Text 3でのFortranプロ...
-
プログラミング
-
fortran if文
-
ruby
-
Fortran90についての質問です。
-
COBOLのピリオド
-
3つの整数のうち奇数のみを表示...
-
main関数終了時のreturnの意味は?
-
c言語のプログラミング 2つの整...
-
360度を超える角度
-
整数格子点を列挙するプログラム
-
N88basicを用いたGPIB制御
-
ProC 固定SQLでNULLってどう表...
-
Fortran "実引数の型が仮引数の...
-
PICのプログラムでsrandを使う...
-
Matlabについて質問2
-
4桁の数値を逆に表示されるプ...
おすすめ情報