PICから始めよう、遊ぼう、楽しもう、PICキットの構築
周辺モジュールB群 製作編 その1
PICキット 周辺モジュールの製作
周辺モジュールと言っても、簡単なものばかりで、製作にてこずる事はありません。
と言うより、笑っちゃう様な物ばかりです・・・
ここからNO表示が20番台になります。
周辺モジュールと言っても、簡単なものばかりで、製作にてこずる事はありません。
と言うより、笑っちゃう様な物ばかりです・・・
ここからNO表示が20番台になります。
NO-20 温度・湿度センサモジュール AE-HDC-1000
秋月電子で購入した、I2C接続温湿度センサモジュールです
主な仕様
温度(摂氏)-20℃~+85℃ 計測精度±0.2℃
湿度0%~100% 計測精度±3%
インターフェイスは、I2Cでクロック最大400KHZ
I2Cアドレスは、80H固定です。
ピン配置(②③④プルアップ抵抗内蔵)
① +V 3~5V(絶対最大定格6V)
② SDA
③ SCL
④ RDY 出力のみで、1=計測中、0=スタンバイあるいは計測終了
⑤ GND
製作
画像の様に、電源ラインとSCL/SDAラインの2本をハンダ付けしただけ
数分で完成となります・・・ (^^ゞ
レジスタアドレス マップ
00H Temperature 温度提示レジスタ
01H Humidity 湿度提示レジスタ
02H Configuration
bit15 RST 1書込みでリセット、その後ノーマル動作に移行で、0となる
bit14~13 Reserved 必ず0に設定
bit12 MODE
0=個別測定モードでデータを16ビットで送信、指定レジスタはそれぞれ
1=同時測定モードでデータを32ビットで送信、指定レジスタは00H
bit11 BTST 電源電圧状態表示ビット、1で2.8V以下、0で2.8V以上
bit10 TRES 温度の分解能設定ビット
0=14ビット分解能
1=11ビット分解能
bit9~8 HRES 湿度の分解能設定ビット
00=14ビット分解能
01=11ビット分解能
10=8ビット分解能
bit7~0 Reserved 必ず0に設定
FBH Serial ID
FCH Seial ID
FDH Seroal ID
FEH Manufacturer ID 5449H
FFH Device ID 1000H
基本制御プログラムの流れ
①START→I2Cアドレス送信80H(WRITE=+0)
②CONFIGアドレス 02H送信
③CONFIGコマンド上位8bit 10H送信(温度湿度32bit連続送信設定)
④CONFIGコマンド下位8bit 00H送信(ここは常に00H送信)
⑤STOP
⑥START→I2Cアドレス送信80H(WRITE=0)
⑦ポインタアドレス温度提示00H送信、計測開始(事実上の計測開始コマンド)
⑧STOP 及び計測ウエイト
⑨START→I2Cアドレス送信81H(READ=+1)
⑩データ受信 温度15-8bit分
⑪データ受信 温度7-0bit分
⑫データ受信 湿度15-8bit分
⑬データ受信 湿度7-0bit分
⑭STOP
取得生データの演算処理方法
センサからのデータは解像度に関わらず、16bit左詰めで送信されます。
温度(℃)=(DATA×165÷65536)-40
湿度(%)=DATA×100÷65536
上記を計算して、LCD等に表示すればOK、と言った案配で、一見シンプルですが・・・
AE-HDC1000用XC8制御関数
PIC内臓モジュールMSSPを使用しますので、MSSP制御関数群も必要です。
詳細はサンプルソースを参照してください。
(1)HDC1000制御関数群
1) HDC1K_WRT_CONFIG(unsigned int)
HDC1000のCONFIGレジスタに指定データの書き込みを行います
引数:16bitの符号無整数
戻値:無
2) HDC1K_RCV_TMP(void)
温度を計測し、その温度データの受信を行います
計測時間のためのウエイトが入っています
引数:無
戻値:16bitの符号無整数
3) HDC1K_RCV_HUM(void)
湿度を計測し、その湿度データの受信を行います
計測時間のためのウエイトが入っています
引数:無
戻値:16bitの符号無整数
4) HDC1K_RCV_REG(unsigned char)
指定のレジスタから16bitレジスタデータを読込ます
ウエイトが入っていないため、計測値の受信には使えません
引数:レジスタアドレス
戻値:16bitの符号無整数
秋月電子で購入した、I2C接続温湿度センサモジュールです
主な仕様
温度(摂氏)-20℃~+85℃ 計測精度±0.2℃
湿度0%~100% 計測精度±3%
インターフェイスは、I2Cでクロック最大400KHZ
I2Cアドレスは、80H固定です。
ピン配置(②③④プルアップ抵抗内蔵)
① +V 3~5V(絶対最大定格6V)
② SDA
③ SCL
④ RDY 出力のみで、1=計測中、0=スタンバイあるいは計測終了
⑤ GND
製作
画像の様に、電源ラインとSCL/SDAラインの2本をハンダ付けしただけ
数分で完成となります・・・ (^^ゞ
レジスタアドレス マップ
00H Temperature 温度提示レジスタ
01H Humidity 湿度提示レジスタ
02H Configuration
bit15 RST 1書込みでリセット、その後ノーマル動作に移行で、0となる
bit14~13 Reserved 必ず0に設定
bit12 MODE
0=個別測定モードでデータを16ビットで送信、指定レジスタはそれぞれ
1=同時測定モードでデータを32ビットで送信、指定レジスタは00H
bit11 BTST 電源電圧状態表示ビット、1で2.8V以下、0で2.8V以上
bit10 TRES 温度の分解能設定ビット
0=14ビット分解能
1=11ビット分解能
bit9~8 HRES 湿度の分解能設定ビット
00=14ビット分解能
01=11ビット分解能
10=8ビット分解能
bit7~0 Reserved 必ず0に設定
FBH Serial ID
FCH Seial ID
FDH Seroal ID
FEH Manufacturer ID 5449H
FFH Device ID 1000H
基本制御プログラムの流れ
①START→I2Cアドレス送信80H(WRITE=+0)
②CONFIGアドレス 02H送信
③CONFIGコマンド上位8bit 10H送信(温度湿度32bit連続送信設定)
④CONFIGコマンド下位8bit 00H送信(ここは常に00H送信)
⑤STOP
⑥START→I2Cアドレス送信80H(WRITE=0)
⑦ポインタアドレス温度提示00H送信、計測開始(事実上の計測開始コマンド)
⑧STOP 及び計測ウエイト
⑨START→I2Cアドレス送信81H(READ=+1)
⑩データ受信 温度15-8bit分
⑪データ受信 温度7-0bit分
⑫データ受信 湿度15-8bit分
⑬データ受信 湿度7-0bit分
⑭STOP
取得生データの演算処理方法
センサからのデータは解像度に関わらず、16bit左詰めで送信されます。
温度(℃)=(DATA×165÷65536)-40
湿度(%)=DATA×100÷65536
上記を計算して、LCD等に表示すればOK、と言った案配で、一見シンプルですが・・・
AE-HDC1000用XC8制御関数
PIC内臓モジュールMSSPを使用しますので、MSSP制御関数群も必要です。
詳細はサンプルソースを参照してください。
(1)HDC1000制御関数群
1) HDC1K_WRT_CONFIG(unsigned int)
HDC1000のCONFIGレジスタに指定データの書き込みを行います
引数:16bitの符号無整数
戻値:無
2) HDC1K_RCV_TMP(void)
温度を計測し、その温度データの受信を行います
計測時間のためのウエイトが入っています
引数:無
戻値:16bitの符号無整数
3) HDC1K_RCV_HUM(void)
湿度を計測し、その湿度データの受信を行います
計測時間のためのウエイトが入っています
引数:無
戻値:16bitの符号無整数
4) HDC1K_RCV_REG(unsigned char)
指定のレジスタから16bitレジスタデータを読込ます
ウエイトが入っていないため、計測値の受信には使えません
引数:レジスタアドレス
戻値:16bitの符号無整数
↑ NO-21 大気圧センサモジュール
↑ 秋月 AE-LPS25H
↑ 本モジュール基板の回路図
LPS25H用 XC8制御関数群
LPS25Hv1.h
LPS25Hv1.c
MSSP02b.h
MSSP02b.c
注意)
LPS25H関数はMSSP関数群を呼び出します
NO-21 大気圧 センサモジュール AE-LPS25H
秋月電子で購入した、大気圧センサモジュールです。
購入したままでは使い難いので、基板上に配置して簡単に使えるようにしています。
CPU基板との接続は、I2Cシリアルバスとなります。
本基板の入力ピンは、
①VDD 5V
②GND
③SCL
④SDA
以上の4種類となります。
製作した基板上には、センサ基板、レベルコンバータ基板、電源ICが乗っています。
左記回路図を参照して下さい。
さて、この小さなモジュールを購入すると、取扱説明書が同梱されています・・・
しかし、いきなりこれを見ても、プログラムミングなどは、まずできません。
HDC1000を事前に手を出していたので、何となく予想が付きますが・・・
基本的にデータシートを入手して、良く読まないと無理です・・・ (ーー;)
LPS25H8ピンDIPモジュールのピン配置
① VDD 1.7~3.6V(絶対最大定格4.8V)
② SCL
③ SDA
④ SDO スレーブアドレスの下位ビット決定
⑤ CS VDDに接続するとI2Cとなる、SPIの場合はチップセレクト
⑥ NC 無接続
⑦ INT1 インタラプト1
⑧ GND
I2Cバス用双方向電圧レベル変換モジュールのピン配置(PCA9306使用)
① VREF1 電圧の低い方(1.0V~3.3V)のVDDに接続、ここでは3.3V
② SCL1 電圧の低い方に使用(1KΩでプルアップ済)
③ SDA1 電圧の高い方に使用(1KΩでプルアップ済)
④ VPU
⑤ GND
⑥ SDA2 電圧の高い方に使用(1KΩでプルアップ済)
⑦ SCL2 電圧の高い方に使用(1KΩでプルアップ済)
⑧ VREF2 電圧の高い方のVDD(1.8V~5V)に接続、ここでは5V
*詳細は付属の取扱説明書を参照して下さい
LPS25H気圧センサー内部レジスタ表
色々な機能があり、センサ内部各レジスタに設定処理するのですが、
面倒なので、最低限使用するレジスタを下記に記します。
センサ内部レジスタ(抜粋)
REG_ADRS NAME TYPE DATA
0FH WHO_AM_I R デバイスナンバーBDH(READ)
20H CTRL_REG1 R/W 基本動作設定
21H CTRL_REG2 R/W 詳細動作設定
22H-26H 省略 詳細動作設定(マニュアル参照)
27H STATUS_REG R ステータス読み込み
28H PRESS_POUT_XL R 圧力データ最下位8bit
29H PRESS_OUT_L R 圧力データ中位8bit
2AH PRESS_OUT_H R 圧力データ上位8bit
2BH TEMP_OUT_L R 温度データ下位8bit
2CH TEMP_OUT_H R 温度データ上位8bit
CTRL_REG1 20H
bit7 PD パワーダウン制御
1=デバイスは通常(動作中)モード
0=パワーダウンモード(初期値)
bit6-4 ODRx 出力データ速度の設定
bit 圧力のデータ速度 温度のデータ速度
000 ワンショット(初期値) ←
001 1HZ 1HZ
010 7HZ(143ms) ←
011 12.5HZ(80ms) ←
100 25HZ(40ms) ←
101 予約
110 予約
111 予約
bit3 DEF_EN 圧力差割込み許可
1=有効
0=無効(初期値)
bit2 BDU ブロックデータ更新
1=読み込まれるまで更新しない
0=連続で更新する(初期値)
bit1 RESET_AZ オートゼロ機能のリセット
1=リセット
0=無効(初期値)
bit0 SIM SPIモードの選択
1=3線式SPI
0=4線式SPI
CTRL_REG2 21H
bit7 BOOT 再起動のメモリ内容、完了時に自動でクリア
1=再起動のメモリ内容
0=通常モード(初期値)
bit6 FIFO_EN FIFOを有効にする
1=有効
0=無効(初期値)
bit5 WTM_EN FIFOの基準値レベルの使用を有効にする
1=有効
0=無効(初期値)
bit4 FIFO_MEAN_DEC
1=有効
0=無効(初期値)
bit3 予約済み
bit2 SWRESET ソフトウエア・リセット
1=ソフトウエアリセット
0=通常モード(初期値)
bit1 AUTO_ZERO オートゼロ機能の許可
1=オートゼロを許可
0=通常モード(初期値)
bit0 ONE_SHOT ワンショットの許可
1=新たな変換の開始
0=測定終了・変換指示待ち
*このbitを1にして測定・変換を終了すると、自動的にbitは0となる
STATUS_REGにも結果が反映されます
STATUS_REG 27H
bit7-6 予約済み
bit5 P_OR 圧力データの上書き
1=上書きされた
0=上書きされていない(初期値)
*PRESS_OUT_Hが読み出しされると、このbitは常に0となる
bit4 T_OR 温度データの上書き
1=上書きされた
0=上書きされていない(初期値)
*TMEP_OUT_Hが読み出しされると、このbitは常に0となる
bit3-2 予約済み
bit1 P_DA 圧力データの準備状況
1=新しい圧力データが準備された
0=新データは準備されていない
*PRESS_OUT_Hが読み出しされると、このbitは常に0となる
bit0 T_DA 温度データの準備状況
1=新しい温度データが準備された
0=新データは準備されていない
*TMEP_OUT_Hが読み出しされると、このbitは常に0となる
基本制御プログラムの流れ
(1)初期設定
①START→I2Cアドレス送信B8H(WRITE=+0)
②CTRL_REG1アドレス 20H送信
③CTRL_REG1設定データ80Hor90H他送信
センサパワーオン設定、ワンショット測定或いは自動インタバル測定
④STOP
(2)測定命令
①START→I2Cアドレス送信B8H(WRITE=+0)
②CTRL_REG2アドレス 21H送信
③CTRL_REG2設定データ01H送信
ワンショット測定開始
④STOP
(3)測定完了時間待ち、或いはSTATUS_REGチェック
(4)測定値(気圧)読み込み
①START→I2Cアドレス送信B8H(WRITE=0)
②PRESS_POUT_XLアドレスA0H送信(連続READコマンド)
③RESTART→I2Cアドレス送信B9H(READ=+1)
④データ受信 気圧データ7-0bit分
⑤データ受信 気圧データ15-8bit分
⑥データ受信 気圧データ23-16bit分
⑦STOP
(5)測定値(気温)読み込み
①START→I2Cアドレス送信B8H(WRITE=0)
②TEMP_OUT_LアドレスABH送信(連続READコマンド)
③RESTART→I2Cアドレス送信B9H(READ=+1)
④データ受信 気圧データ7-0bit分
⑤データ受信 気圧データ15-8bit分
⑥STOP
注意
*MSSP低レベルルーチンVer0.2a以降でないと動作しません
取得生データの演算処理方法
センサからのデータは大気圧24bit、温度16bitで送信されます。
また、2の補数で表現されています。
しかし、大気圧はこのままの設定では事実上絶対値なので、そのまま演算できます。
気圧(hPa)=DATA÷4096
温度(℃)=40-(DATA÷480)
上記を計算して、LCD等に表示すればOK、と言った案配で、
大気圧計算はシンプルなのですが・・・
温度は2の補数表現なので、そのままでは除算が出来ず、ひと工夫が必要です
詳細は製作編のソースファイルを参照して下さい。
追記 2017年03月25日
XC8用制御関数
XC8による制御関数群
PIC内臓モジュールMSSPを使用しますので、MSSP制御関数群も必要です。
最低限、2),3),5),6)の関数呼び出しで気圧と気温が取得できます。
詳細はサンプルソースを参照してください。
(1)LPS25H制御関数群
1) LPS_INIT(void)
LPS25Hの通信確認を行います
通信が確立した場合、読み込んだデバイスナンバを返します
引数:無
戻値:8bitのデバイス番号(BDH)、符号無char
2) LPS_WRTRG1_(unsigned char)
LPS25HのCTRL_REG1の設定(書き込み)を行います
引数:8bitのCTRL_REG1の設定データ
戻値:無
3) LPS_WRTRG2(unsigned char)
LPS_25HのCTRL_REG2の設定(書き込み)を行います
引数:8bitのCTRL_REG2設定データ
戻値:無
4) LPS_WRTRG(unsigned char1,unsigned char2)
指定のレジスタに設定(書き込み)します
書き込んではいけないレジスタもありますので、注意
この関数はマニュアルを熟読してからご使用ください
引数1:レジスタアドレス
引数2:設定データ、1バイト
戻値:無
5) LPS_RCVP(void)
測定した圧力値を受信(24bit補数)します
マイナスは無いので、事実上符号は関係ありません。
引数:無
戻値:24bit大気圧測定データ(24bit整数)
6) LPS_RCVT(void)
測定した温度値を受信(16bit補数)します
引数:無
戻値:16bit気温測定データ(16bit符号付整数)
7) LPS_STATUS(void)
現在のステータスレジスタの値を受信します
引数:無
戻値:8bitステータスデータ(符号無char)
8) LPS_RCVRG(unsigned char)
指定のレジスタからデータを受信します
引数:レジスタアドレス
戻値:8bitのレジスタデータ(符号無char)
秋月電子で購入した、大気圧センサモジュールです。
購入したままでは使い難いので、基板上に配置して簡単に使えるようにしています。
CPU基板との接続は、I2Cシリアルバスとなります。
本基板の入力ピンは、
①VDD 5V
②GND
③SCL
④SDA
以上の4種類となります。
製作した基板上には、センサ基板、レベルコンバータ基板、電源ICが乗っています。
左記回路図を参照して下さい。
さて、この小さなモジュールを購入すると、取扱説明書が同梱されています・・・
しかし、いきなりこれを見ても、プログラムミングなどは、まずできません。
HDC1000を事前に手を出していたので、何となく予想が付きますが・・・
基本的にデータシートを入手して、良く読まないと無理です・・・ (ーー;)
LPS25H8ピンDIPモジュールのピン配置
① VDD 1.7~3.6V(絶対最大定格4.8V)
② SCL
③ SDA
④ SDO スレーブアドレスの下位ビット決定
⑤ CS VDDに接続するとI2Cとなる、SPIの場合はチップセレクト
⑥ NC 無接続
⑦ INT1 インタラプト1
⑧ GND
I2Cバス用双方向電圧レベル変換モジュールのピン配置(PCA9306使用)
① VREF1 電圧の低い方(1.0V~3.3V)のVDDに接続、ここでは3.3V
② SCL1 電圧の低い方に使用(1KΩでプルアップ済)
③ SDA1 電圧の高い方に使用(1KΩでプルアップ済)
④ VPU
⑤ GND
⑥ SDA2 電圧の高い方に使用(1KΩでプルアップ済)
⑦ SCL2 電圧の高い方に使用(1KΩでプルアップ済)
⑧ VREF2 電圧の高い方のVDD(1.8V~5V)に接続、ここでは5V
*詳細は付属の取扱説明書を参照して下さい
LPS25H気圧センサー内部レジスタ表
色々な機能があり、センサ内部各レジスタに設定処理するのですが、
面倒なので、最低限使用するレジスタを下記に記します。
センサ内部レジスタ(抜粋)
REG_ADRS NAME TYPE DATA
0FH WHO_AM_I R デバイスナンバーBDH(READ)
20H CTRL_REG1 R/W 基本動作設定
21H CTRL_REG2 R/W 詳細動作設定
22H-26H 省略 詳細動作設定(マニュアル参照)
27H STATUS_REG R ステータス読み込み
28H PRESS_POUT_XL R 圧力データ最下位8bit
29H PRESS_OUT_L R 圧力データ中位8bit
2AH PRESS_OUT_H R 圧力データ上位8bit
2BH TEMP_OUT_L R 温度データ下位8bit
2CH TEMP_OUT_H R 温度データ上位8bit
CTRL_REG1 20H
bit7 PD パワーダウン制御
1=デバイスは通常(動作中)モード
0=パワーダウンモード(初期値)
bit6-4 ODRx 出力データ速度の設定
bit 圧力のデータ速度 温度のデータ速度
000 ワンショット(初期値) ←
001 1HZ 1HZ
010 7HZ(143ms) ←
011 12.5HZ(80ms) ←
100 25HZ(40ms) ←
101 予約
110 予約
111 予約
bit3 DEF_EN 圧力差割込み許可
1=有効
0=無効(初期値)
bit2 BDU ブロックデータ更新
1=読み込まれるまで更新しない
0=連続で更新する(初期値)
bit1 RESET_AZ オートゼロ機能のリセット
1=リセット
0=無効(初期値)
bit0 SIM SPIモードの選択
1=3線式SPI
0=4線式SPI
CTRL_REG2 21H
bit7 BOOT 再起動のメモリ内容、完了時に自動でクリア
1=再起動のメモリ内容
0=通常モード(初期値)
bit6 FIFO_EN FIFOを有効にする
1=有効
0=無効(初期値)
bit5 WTM_EN FIFOの基準値レベルの使用を有効にする
1=有効
0=無効(初期値)
bit4 FIFO_MEAN_DEC
1=有効
0=無効(初期値)
bit3 予約済み
bit2 SWRESET ソフトウエア・リセット
1=ソフトウエアリセット
0=通常モード(初期値)
bit1 AUTO_ZERO オートゼロ機能の許可
1=オートゼロを許可
0=通常モード(初期値)
bit0 ONE_SHOT ワンショットの許可
1=新たな変換の開始
0=測定終了・変換指示待ち
*このbitを1にして測定・変換を終了すると、自動的にbitは0となる
STATUS_REGにも結果が反映されます
STATUS_REG 27H
bit7-6 予約済み
bit5 P_OR 圧力データの上書き
1=上書きされた
0=上書きされていない(初期値)
*PRESS_OUT_Hが読み出しされると、このbitは常に0となる
bit4 T_OR 温度データの上書き
1=上書きされた
0=上書きされていない(初期値)
*TMEP_OUT_Hが読み出しされると、このbitは常に0となる
bit3-2 予約済み
bit1 P_DA 圧力データの準備状況
1=新しい圧力データが準備された
0=新データは準備されていない
*PRESS_OUT_Hが読み出しされると、このbitは常に0となる
bit0 T_DA 温度データの準備状況
1=新しい温度データが準備された
0=新データは準備されていない
*TMEP_OUT_Hが読み出しされると、このbitは常に0となる
基本制御プログラムの流れ
(1)初期設定
①START→I2Cアドレス送信B8H(WRITE=+0)
②CTRL_REG1アドレス 20H送信
③CTRL_REG1設定データ80Hor90H他送信
センサパワーオン設定、ワンショット測定或いは自動インタバル測定
④STOP
(2)測定命令
①START→I2Cアドレス送信B8H(WRITE=+0)
②CTRL_REG2アドレス 21H送信
③CTRL_REG2設定データ01H送信
ワンショット測定開始
④STOP
(3)測定完了時間待ち、或いはSTATUS_REGチェック
(4)測定値(気圧)読み込み
①START→I2Cアドレス送信B8H(WRITE=0)
②PRESS_POUT_XLアドレスA0H送信(連続READコマンド)
③RESTART→I2Cアドレス送信B9H(READ=+1)
④データ受信 気圧データ7-0bit分
⑤データ受信 気圧データ15-8bit分
⑥データ受信 気圧データ23-16bit分
⑦STOP
(5)測定値(気温)読み込み
①START→I2Cアドレス送信B8H(WRITE=0)
②TEMP_OUT_LアドレスABH送信(連続READコマンド)
③RESTART→I2Cアドレス送信B9H(READ=+1)
④データ受信 気圧データ7-0bit分
⑤データ受信 気圧データ15-8bit分
⑥STOP
注意
*MSSP低レベルルーチンVer0.2a以降でないと動作しません
取得生データの演算処理方法
センサからのデータは大気圧24bit、温度16bitで送信されます。
また、2の補数で表現されています。
しかし、大気圧はこのままの設定では事実上絶対値なので、そのまま演算できます。
気圧(hPa)=DATA÷4096
温度(℃)=40-(DATA÷480)
上記を計算して、LCD等に表示すればOK、と言った案配で、
大気圧計算はシンプルなのですが・・・
温度は2の補数表現なので、そのままでは除算が出来ず、ひと工夫が必要です
詳細は製作編のソースファイルを参照して下さい。
追記 2017年03月25日
XC8用制御関数
XC8による制御関数群
PIC内臓モジュールMSSPを使用しますので、MSSP制御関数群も必要です。
最低限、2),3),5),6)の関数呼び出しで気圧と気温が取得できます。
詳細はサンプルソースを参照してください。
(1)LPS25H制御関数群
1) LPS_INIT(void)
LPS25Hの通信確認を行います
通信が確立した場合、読み込んだデバイスナンバを返します
引数:無
戻値:8bitのデバイス番号(BDH)、符号無char
2) LPS_WRTRG1_(unsigned char)
LPS25HのCTRL_REG1の設定(書き込み)を行います
引数:8bitのCTRL_REG1の設定データ
戻値:無
3) LPS_WRTRG2(unsigned char)
LPS_25HのCTRL_REG2の設定(書き込み)を行います
引数:8bitのCTRL_REG2設定データ
戻値:無
4) LPS_WRTRG(unsigned char1,unsigned char2)
指定のレジスタに設定(書き込み)します
書き込んではいけないレジスタもありますので、注意
この関数はマニュアルを熟読してからご使用ください
引数1:レジスタアドレス
引数2:設定データ、1バイト
戻値:無
5) LPS_RCVP(void)
測定した圧力値を受信(24bit補数)します
マイナスは無いので、事実上符号は関係ありません。
引数:無
戻値:24bit大気圧測定データ(24bit整数)
6) LPS_RCVT(void)
測定した温度値を受信(16bit補数)します
引数:無
戻値:16bit気温測定データ(16bit符号付整数)
7) LPS_STATUS(void)
現在のステータスレジスタの値を受信します
引数:無
戻値:8bitステータスデータ(符号無char)
8) LPS_RCVRG(unsigned char)
指定のレジスタからデータを受信します
引数:レジスタアドレス
戻値:8bitのレジスタデータ(符号無char)
NO-22 LEDモジュール
何の事は無い、ただのLEDを2本付けただけの代物・・・
とは言っても意外と使用頻度が高く、デバッグや実験に必需品です。
全くの初めてのPICプログラミング、のモチーフにも最適です。
実際はデバッグ用として、CPU基板初号器製作の頃から存在していたのですが、表に出す程の物でも無いと思い、今に至ります。
簡単に製作できるし使い勝手も良いので、現在までに複数個作っています。
使用方法はRA4とRA5ピンに、水晶発振器と同じ様に差し込むだけです。
もちろん、水晶モジュールと排他的での使用となります。
任意のプログラム中に、RA5あるいはRA4を1にすると、各々のLEDが点灯します。
RAピンから電流が流れ出る形となります。
何の事は無い、ただのLEDを2本付けただけの代物・・・
とは言っても意外と使用頻度が高く、デバッグや実験に必需品です。
全くの初めてのPICプログラミング、のモチーフにも最適です。
実際はデバッグ用として、CPU基板初号器製作の頃から存在していたのですが、表に出す程の物でも無いと思い、今に至ります。
簡単に製作できるし使い勝手も良いので、現在までに複数個作っています。
使用方法はRA4とRA5ピンに、水晶発振器と同じ様に差し込むだけです。
もちろん、水晶モジュールと排他的での使用となります。
任意のプログラム中に、RA5あるいはRA4を1にすると、各々のLEDが点灯します。
RAピンから電流が流れ出る形となります。