H8/3048、AD/DA変換について質問です。
ポート7のAN0・AN1を入力に使い、DA0・DA1で出力される変換プログラムを作成して実験したところ
AN0→DA0への変換は出力されたのですが、AN1→DA1への変換が出力できません。なぜ出力されないのかわかりません。
どうしたらいいか教えてください、お願いします。
AN0がDA1でも出力されているかと思いましたが違いました。
#include <no_float.h>
#include <stdio.h>
#include <machine.h>
#include "h8_3048.h"
void init (void);
double get_ad0 (void);
double get_ad1 (void);
void out_da0 (double);
void out_da1 (double);
void wait (void);
int main (void)
{
double ad0,ad1;
int d;
init(); //初期化
// set_ccr(0x00); //全体の割り込み許可
//AD DA変換-----------
while(1){
ad0=get_ad0();
ad1=get_ad1();
for(d=0;d<1000;d++);
out_da0(ad0);
out_da1(ad1);
}
return 0;
}
void init(void)
{
/* ポートの入出力設定 */
P1DDR = 0xff;
P2DDR = 0xff;
P3DDR = 0xff;
P4DDR = 0xff;
P5DDR = 0xff;
P6DDR = 0xf0; // CPU基板上のDIP SW
P8DDR = 0xff;
P9DDR = 0xf7;
PADDR = 0xff; // LED基板
PBDDR = 0xff;
// A/Dの初期設定(単一モード)
AD_CSR = 0x00;
// A/Dの初期設定(スキャンモード使用AN0-AN1)
// AD_CSR = 0x11;
//ITU0 1ms毎の割り込み
ITU0_TCR = 0x20;
ITU0_GRA = 24575;
ITU0_IER = 0x01;
ITU_STR = 0x01;
// D/Aの初期設定
DA_CR=0xc0; //DA0E1,DA0E0:1 D/Aアウトプットネーブル DAE:0 ch0,1 独立制御
}
double get_ad0(void)
{
int i;
double ad;
AD_CSR |=0x20; //ADST:1 AD開始
while(!(AD_CSR & 0x80)); //ADF:1 エンドフラグをチェック
AD_CSR &=0x7f;
i=AD_DRA>>6;// i=0-1023
ad=i*5.0/1024.0; // 0-1024 を 0-5vに変換
return ad;
}
double get_ad1(void)
{
int i;
double ad;
AD_CSR |=0x20; //ADST:1 AD開始
while(!(AD_CSR & 0x80)); //ADF:1 エンドフラグをチェック
AD_CSR &=0x7f;
i=AD_DRB>>6; //i=0-1024
ad=i*5.0/1024.0; // 0-1024 を 0-5vに変換
return ad;
}
void out_da0(double d)
{
DA_DR0=(int)(d*255/5.0);
}
void out_da1(double d)
{
DA_DR1=(int)(d*255/5.0);
}
void wait(void)
{
long Loop=200000;
while(Loop--);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# プログラミングを教えて欲しいです。 配列aは、int a[9]={7,6,12,8,3,5,10,9 4 2022/12/19 23:27
- C言語・C++・C# C言語のマクローリン展開ローラン展開のコードについて 3 2022/12/15 14:45
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- 英語 TOEIC公式問題集のリスニングの一部分に “I’ll get an ad in the local 2 2022/08/17 18:52
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
戻り値を返す関数の前に(void)...
-
C++にてtemplateで受け取った任...
-
【gcc・cygwin】multiple defin...
-
Notepad++の関数リスト表示の変...
-
int main()、void main()、void...
-
C# KeyDownイベントでショート...
-
ArduinoでMouse関数を使用して...
-
ドラッグしたときにマウスカー...
-
多重定義が起きている?--lnk20...
-
合格か否かを表示するプログラ...
-
typedef unsigned int UINT;が...
-
構造体を宣言と共に初期化する方法
-
C++別のオブジェクトからメンバ...
-
VC++でGetKeyboardStateがうま...
-
C# Controls.Addで動的に配置し...
-
C#でラジオボタンを設定に記録...
-
void*型の配列について
-
gcc: incompatible pointer type
-
マルチメディアタイマーの使用方法
-
DLLの関数呼び出しで引数がある...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【gcc・cygwin】multiple defin...
-
int main()、void main()、void...
-
戻り値を返す関数の前に(void)...
-
既定のコンストラクタがありま...
-
Notepad++の関数リスト表示の変...
-
ArduinoでMouse関数を使用して...
-
多重定義が起きている?--lnk20...
-
C++にてtemplateで受け取った任...
-
静的でないメンバ関数の呼び出...
-
C# Controls.Addで動的に配置し...
-
const_castのつかいどころを教...
-
(void)0 はどんな意味ですか
-
C# KeyDownイベントでショート...
-
gcc: incompatible pointer type
-
C#でラジオボタンを設定に記録...
-
VC++でGetKeyboardStateがうま...
-
C言語 ① 5秒間 1秒間隔で点滅を...
-
void*型の配列について
-
GDI+の使用方法について
-
DirectInput でのエラー
おすすめ情報