バナー
 テクノロード掲示板
ようこそ! ゲスト   [登録]  [ログイン]
返答
 件名:Re:A/D変換プログラムにおける数値の取り込みに.. 2011-01-12 17:44:04 
admin2
参加日時: 2009-08-19 09:20:38
投稿: 113
場所
件名:Re:A/D変換プログラムにおける数値の取り込みについて

小数を使った計算をする場合は、float型やdouble型などが使用できます。

(※ただし、このような浮動小数点型を使うと、、計算上の誤差が生じたり、プラグラムが凄く重くなることがあるのに注意してください)

下記、簡単な計算例です。

 

ex)

volatile double x;
volatile double y;
volatile double z;
u32 temp;  


 x = 1.59;
 y = 2.43;
 z = x + y;  //z =4.02

 

temp = (u32)z; // temp = 4

IP Logged
引用
 件名:Re:A/D変換プログラムにおける数値の取り込みに.. 2011-01-10 20:54:44 
きく

ゲスト
件名:Re:A/D変換プログラムにおける数値の取り込みについて

お世話になっています。

返信が遅くて申し訳ありません。

 

おかげさまで計算が上手くいきました。

本当にありがとうございます。

重ねての質問となってしまって恐縮なのですが,0.0075などの小数点以下の値をもつ数値をかけたり,同様の数値で割ったりなどの計算や答えが小数点以下の値をもつ数値になる計算はできないのでしょうか?

もしできるのならその場合の変数の宣言はu16,u32などのうちどの型にすればいいのでしょうか?

よろしくお願いいたします。

IP Logged
引用
 件名:Re:A/D変換プログラムにおける数値の取り込みに.. 2010-12-24 10:54:10 
admin2
参加日時: 2009-08-19 09:20:38
投稿: 113
場所
件名:Re:A/D変換プログラムにおける数値の取り込みについて

ご質問有難うございます。

 

CoronのA/D値の格納先であるcoron_IOA_ADValueの型についてですが、

 

unsigned short coron_IOA_ADValue[6];

(※符号無し16ビットの配列)

 

となっています。

配列の番号は、CoronのIOAポートの番号(IOA0~IOA5)に対応しています。

Coronで使っているA/Dコンバータは12ビット分解能(右詰め)なので、

値の範囲としては0~4095(0~3.3[V])になります。

 

なので、 例えばIOA0ポートのA/D値を電圧値[mV]に変換して表示したい場合には

下記のようにします。

 

  u32 mvol = 0;  //u32 → unsigned long

  mvol = ((u32)coron_IOA_ADValue[0] * 3300) / 4095; //A/D値→電圧に変換

  USB_puts("  mvol =");   //文字列送信
  USB_putn(mvol,4);        //IOA0の電圧値[mV]を表示

  USB_puts("[mV]  \r");    //カーソルを先頭に戻す

 

このようにしてもA/D値が表示されない場合は、

大変お手数ですがサンプルプロジェクトのEx05_AD_GET(A/D変換のサンプルとなります)を書き込んで

動作のご確認をして頂けますでしょうか。

(※A/Dの初期化方法などに問題がある可能性もあります)

 

以上、宜しくお願い致します。

IP Logged
引用
 件名:A/D変換プログラムにおける数値の取り込みにつ.. 2010-12-22 16:28:20 
きく

ゲスト
件名:A/D変換プログラムにおける数値の取り込みについて

お世話になります。

A/D変換プログラムにおける数値の取り込みについて質問です。

coron_IOA_ADValueの値を用いて、

a=coron_IOA_ADValue-1100

b=a*0.0085/819.2

などといった計算を行いたいのですが、atoi関数を用いる(a=(atoi)coron_IOA_ADValue)、a、bの型を変えるなど手を尽くしてみても表示されなかったり、文字化けしたりなどします。

また、数字が表示されても自身で計算した結果と異なります。

どのようにすればcoron_IOA_ADValueを数値として得ることができますか?

coron_IOA_ADValueにはどのような型が入っているのですか?

または生のデータは入っていないのですか?

IP Logged
引用
返答
ページ # 


Powered by ccBoard