mikcroC PRO for PIC v.7.0.1
PIC12F683で
3番ピンに温度センサー(LM35DZ)の出力を入力させ
30度(300mVだったかな)以上になったら
5番ピンから出力させLEDを光らせたいのですがいろいろなサイトをみて試行錯誤しましたが動きません。
ご教示お願いします。
void main() {
unsigned int ad1, ad2, ad3;
unsigned int level;
OSCCON = 0b01110000; // 8MHz internal clock
ANSEL = 0b01011000; // AN3 and Fosc /16
ADCON0 = 0b10001101; // AD control CHS=11(AN3)
CMCON0 = 0b00000111; // Comperator not select
do {
ad1 = Adc_Read(3); // Read AN3
Delay_ms(5);
ad2 = Adc_Read(3); // Read AN3
Delay_ms(5);
ad3 = Adc_Read(3); // Read AN3
level = (int)((ad1 + ad2 + ad3) / 3); // Avg. AN3
if(level > 61 ) { // 30
GPIO=0b11111111; //LED ON
} else{ //
0b11111110; //LED OFF
}
} while(1);
}
No.1ベストアンサー
- 回答日時:
A/D変換器に「変換開始」の指令を出していますか?
PICのA/D変換は GO/DONE ビット(ADCON0レジスタのbit1)を1にすると変換が始まり、変換が完了するとハードウェアでゼロにリセットされます。
したがって結果をReadする前に、
① GO/DONE ビットを1にする。
② GO/DONE ビットがゼロになるのを待つ。
③ ゼロになったら結果をReadする。
としなくてはなりません。
貴殿のプログラムでは3回Readして平均を出していますが3回とも上記の操作が必要です。
小生アセンブラオンリーなのでC言語の書き方がよくわからないのですが、この点を確認してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Visual Basic(VBA) 【VBA】先月分の取得ができない理由が分かりません。 2 2022/04/24 11:16
- Excel(エクセル) EXCEL 行内のデータを2行に分けて、表を作り直したいのです。教えてください。 5 2023/06/25 14:00
- Excel(エクセル) Formulaプロパティーを使ってセルに数式を組んだのですが簡潔にしたい。 3 2022/08/21 20:51
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- Microsoft ASP LEDで電光掲示板に「A B C D E」と表示したいのですが・・・ 1 2023/07/04 07:37
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
Excel-VBAのmsgBox()の不思議
-
【EXCEL】カナ、ひらがなを英字...
-
3のつく数字と3の倍数のみを表...
-
C/C++→JAVAに変換するツール
-
文字コードの変換
-
VC++2005で、CString型に16進...
-
英数文字列のうちの数値を4桁に...
-
マンセル⇔XYZ,RGB変換式或いは...
-
Editboxのアスタリスク変換
-
Mac 乗数の入力方法
-
GetDlgItemInt( ) c++
-
c++でmatからvectorへの変換の...
-
魚眼レンズの画像処理
-
VB6から.NETへアップグレード時...
-
機械語とアセンブリ言語の違い...
-
n次元の正規直交基底ベクトルの...
-
非接触回転速度センサ OH1...
-
VB 6 を VS 2012に変換するには?
-
シフトJISのCSVファイルをUFT-8...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
Excel-VBAのmsgBox()の不思議
-
Mac 乗数の入力方法
-
家電製品の電力周波数を変える機械
-
3のつく数字と3の倍数のみを表...
-
bmp→jpgに、jpg→bmpに
-
10進数をBCDに変換する方法
-
【EXCEL】カナ、ひらがなを英字...
-
StrConvの使い方について教えて...
-
分を時間に変換するプログラム
-
画像ファイル変換(Tiff→PDF)
-
マンセル⇔XYZ,RGB変換式或いは...
-
C/C++→JAVAに変換するツール
-
VB6からVB2010への変換について
-
c++でmatからvectorへの変換の...
-
DOSコマンドでの文字コード変換...
-
VB.NETをJavaに変換するツール...
-
SJIS⇔UTF-8の文字コード...
-
なぜ通信には16進数文字列が使...
-
C#でのpngからbmpへの変換について
おすすめ情報
} else{ //
0b11111110; //LED OFF
}
は誤植です。