ひやしたです。 別件が一段落したので、P60の件を調査してみました。 質問を交えて投稿致します。 #BSC.WCR=0x00(WSCによるウェイト)としたときに #P60が動作しない、という件です。 こんなプログラムを作り、誤診を避けるためROMに書き込んで実験しました。 3052は自作基板、3048はイエローソフトの基板を使用しました。 BSC.WCRの設定行の一つをコメントアウトして作成、オシロでP60を観察しました。 void main(void) { int ii; P6.DDR = 0x07; // 実験結果 // 3048 3052 // BSC.WCR = 0x00; // HI HI // BSC.WCR = 0x01; // NG2 NG2 // BSC.WCR = 0x02; // NG2 // BSC.WCR = 0x03; // NG2 // BSC.WCR = 0x07; // NG2 // BSC.WCR = 0xF0; // NG1 NG1 // BSC.WCR = 0xF1; // OK OK // BSC.WCR = 0xF2; // NG1 NG1 // BSC.WCR = 0xF3; // OK OK // BSC.WCR = 0xF4; // NG1 NG1 // BSC.WCR = 0xF5; // OK OK // BSC.WCR = 0xF6; // NG1 NG1 // BSC.WCR = 0xF7; // OK OK for(;;){ for(ii=0; ii<10000; ii++); P6.DR = 0x01; for(ii=0; ii<10000; ii++); P6.DR = 0x00; } } 実験結果は HI=Hiになりっぱなし NG1=Hi出力時は良いのですが、 Lo出力時に「鈍ったデータバス」を見ているような波形が出ます。 NG2=Hi出力時は良いのですが、 Lo出力時にゼロレベル付近に妙な波形が出ます。(表現しにくいです) まず、BSC.WCRの上位4ビット(Bit4〜7)はマニュアルには リザーブビットでリードで常に1,ライトは無効、初期値1と記載されています。 ライトは無効ということで、ゼロを書いても問題無いのだと思っていましたが、 ここはちゃんと1を書かなくてはならないようですね。 【質問1】これって常識なのでしょうか? P60はマニュアルによるとWCERが全て1(初期値) WMS1(BSC.WCRのビット3)がゼロならば入出力として使えると 記載されていますが、ビット0が1でないと動作しない結果となりました。 【質問2】何がどうなっているのでしょう・・・? 以上、ご存じの方がいらっしゃいましたらご指導お願いします。