プログラミングSHT11 PIC24FJ16GA002を使用します。

D

dnsc

Guest
こんにちはみんな、

私は(SHT11にされている作業Sensirion温度/湿度センサ)PIC24FJ16GA002のために長い時間が今使用して。私は応答の午前は、最初のステップでも滞っているセンサです。私はセンサーを考えて私は焼かれ、1つの試み新しいしかし、私はこの問題を同じです有する。

私には今私の午前センサー確認からちょうどしようとする取得が送信されたコマンドを、それには、応答していません。以下の確認をコードで私はこの受信オーデルする。助けてください。

#が含まれます"p24fj16ga002.h"
#が含まれます"math.h"
#が含まれます"stdio.hに"
#が含まれます"string.hの"

_CONFIG1(JTAGEN_OFF&GCP_OFF&GWRP_OFF&FWDTEN_OFF)

_CONFIG2(IESO_OFF&FNOSC_FRC&FCKSM_CSDCMD&OSCIOFNC_OFF)

/ /データと0または1 SCKが設定する
1 =#定義DATA_SET_1 LATBbits.LATB3を
#0をLATBbits.LATB3を=定義DATA_SET_0の

#は、ドレインを定義ODCBbits.ODB3 = 1

1 =#定義SCK_SET_1 LATBbits.LATB2を
#0をLATBbits.LATB2を=定義SCK_SET_0の

#は、0 =定義DATA_OUT TRISBbits.TRISB3
#はDATA_IN定義TRISBbits.TRISB3 = 1
#0をSCK_OUT定義TRISBbits.TRISB2 =

READ_DATAを定義#PORTBbits.RB3

#00011定義MEASURE_TEMP 0x03に/ / 000
#00101定義MEASURE_HUMI 0x05と/ / 000

0 TEMPを#定義
1 4726#を定義する

0ノアック#を定義する
1 ACKを#定義

/ /プログラムで遅延を作成する所望の関数を使用

ボイド遅延(unsigned int型のdelay_count)

int型私は、jが;
0(一=;私は<delay_count;私 )

0(jは=; jは<delay_count; jは )

のasm揮発性("NOPを");




ボイドconnection_reset()

DATA_SET_1;
遅延(5);
int型一;
0(一=;私<10;私 )

SCK_SET_1;
遅延(50);
SCK_SET_0;
遅延(50);




無効のmain()


AD1PCFG = 0xffに。
ドレイン;
int型のテスト= 1;
unsigned int型私= 0;
/ / unsigned char型の値= 0;

/ / unsigned int型エラー;
/ / unsigned char型の値= 0;
/ /)trans_start(;

遅延は(400); / / 11ミリ秒の起動後、

SCK_OUT;
DATA_OUT;

)connection_reset(;
遅延(50);/ / DATA_SET_1;
遅延(50);
SCK_SET_0;
遅延(50);
DATA_SET_1;
遅延(50);
SCK_SET_1;
遅延(50);
DATA_SET_0;
遅延(50);
SCK_SET_0;
遅延(50);
SCK_SET_1;
遅延(50);
DATA_SET_1;
遅延(50);
SCK_SET_0;
遅延(50);0x80にしますfor(i =;私> 0; i /を= 2)/ /コマンドを送信

場合)(私&MEASURE_HUMI
DATA_SET_1;

DATA_SET_0;

遅延(50);
SCK_SET_1;
遅延(50);
SCK_SET_0;



DATA_IN;

(中READ_DATA == 1)




テスト= 0;)

場合Mhzのは1の電源は4.5Vの未満の周波数によると最大データシート。私がする頻度を、私の電源の午前使用して3.3VおよびHzですについて低とても8。

すべてのヘルプは大歓迎です大きく。

 

Welcome to EDABoard.com

Sponsor

Back
Top