マルチチャンネルADCの問題!

B

bing2005

Guest
どのようにマイクロコントローラをPICので使用してチャネルを複数選択する?
Everytimes、私はチャネル1しようとする以上、出力は約しますジャンプは常に。
私はコードを使用し、ソ¥ースPICCのに書いてください。どうぞ教えてください。
みんな、ありがとうを。

次のソ¥ースコードは、ADCは2チャンネル:

コード:#は<pic.h>含まれて

#が含まれます""delay.c

#が含まれます"delay.hに"init_adc(void)を無効に。

無効select1(ボイド);

無効select2(ボイド);

無効output1に(ボイド);

無効output2(ボイド);unsigned int型の結果、結果1、一時、temp1;ボイド設定(無効)



TRISA = 0x2f;

TRISB = 0x00は;

ポートA = 0x00は;

ポートB = 0x00は;

)メイン(ボイド)が無効



()設定;

()init_adc;

(1)中



select1();

気温= 0x00は;

DelayUs(10);select2();

temp1 = 0x00は;

DelayUs(10);



)init_adc(void)を無効に



ADCON1 = 0x80に。



無効select1(ボイド)



ADCON0 = 0x01に。

DelayUs(20);

ADGO = 1;

(ADGO)中。

結果=((ADRESH <<8) ADRESL)&0x03FF;

気温=結果;

(結果> = 925&&結果<場合= 930)



output1に();



)無効select2(ボイド)



ADCON0 = 0x09;

DelayUs(20);

ADGO = 1;

(ADGO)中。

結果1 =((ADRESH <<8) ADRESL)&0x03FF;

temp1 =結果1;

結果1> = 925&&結果1 <(存在する場合= 930)



output2();



)無効output1に(ボイド)



RB7 = 1;

)無効output2(ボイド)



RB6 = 1;



 
あなたが使用している場合は、clockfrequency指定しなかったがでPICを。

何がdelay.hには内部deley.cと?

宜しく

 
私はソ¥ースコードのこの使用PIC16f877aのために。
クロック周波数が使用さ4MHzです。
delay.hにとdelay.c時間を遅らせるものの使用するプログラム。
ありがとう。

 
[OK]を周波数のクロック5 MHzのAとして試して使用して他の値のためにADCON0と2.5の間で切り替えてくださいするソ¥ース/ Dクロックの8 Tosc

新しい値がADCON0あなたはその0x49はこのとなることが0x41。

について期待できますこれは、最高

 

Welcome to EDABoard.com

Sponsor

Back
Top