QLOOKアクセス解析

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

トランジスタ測定

hFEとVcは問題なく表示できるが、Vbが0.1V程度と計測される。そんなばかな。
テスターで測ると0.5V出ている。
AVRのADCの入力インピーダンスはデータシートによると100Mohmらしいからこれが影響ではないはずなんだけど。

それと、浮動小数点数を使うとサイズが一気に膨れ上がるから全て整数型で計算しているんだけど、
LCDへの出力はやっぱり少数が欲しいわけで、少しサイズは食うけどそういう関数を作った。

具体的には、整数値を10^nで割った値を文字列に変換して引数で渡したアドレスに書き込む。というもの。今回はマイナスの数字は扱わないからマイナスの処理は省略した。
それと、0以下の数字は少数点前の0は省略。(0.5→.5)
参考までに貼っておくが、上手く動く保障はない。

#include <stdlib.h>            //ltoa()が含まれる
#include <string.h> //strcpy()が含まれる

#define STRFLOAT_MAXDIGIT 6 //有効最大桁数
//***************************
//整数値を10^nで割った値を文字列strに代入
//引数:整数値num 割る数の10のべき数 結果を書き込む文字列
//***************************
uint8_t strfloat(uint16_t num, uint8_t n, uint8_t *str){
uint8_t cha[STRFLOAT_MAXDIGIT];
uint16_t cal=0;
int8_t cnt=0,i=0;

ltoa(num, cha, 10); //numを文字列に変換
cal=num;

while(cal>0){ //桁数取得
cnt++;
cal/=10;
}

cnt-=n;

while(cnt<0){ //結果が1未満の場合、文字列を全体的に右にずらす
cnt++;
for(i=STRFLOAT_MAXDIGIT-1;i>0;i--){
cha[i]=cha[i-1];
}
cha[0]='0';
}

for(i=STRFLOAT_MAXDIGIT-1;cnt<=i;i--){
if(i>0){
cha[i]=cha[i-1];
}else{
cha[0]='0';
}
}

cha[cnt]='.'; //ドットの記入
strcpy(str,cha);

return 0;
}




comment

管理者にだけ表示を許可する

こんにちわ
ウェブサイト
チョコレイトスピーカーの開発日記ブログですよ
最新記事
カテゴリ
検索フォーム
リンク
プロフィール

yosio

Author:yosio
しがない大学生
電子工作とかパソコンとかアニメとかが趣味
写真なんかも撮ったりするからうp出来ればいいな
サイトも見に来てくださいな

QRコード
QRコード
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。