Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h> // I2C通信のライブラリの取り組み
- #define DACADDR 0x11 // DACのアドレス
- // 初期設定
- void setup()
- {
- Wire.begin(); // I2C通信の開始
- Serial.begin(9600); // パソコンのシリアルモニタの使用開始
- // DAC_Reset
- Wire.beginTransmission(DACADDR);
- Wire.write(0x00); // move pointer to control1 address
- Wire.write(0x00); // sends 0x00 (hex) 00000000 (binary)
- Wire.endTransmission();
- // リセット待ち
- delay(20);
- // 10バイト一気に書き込む
- Wire.beginTransmission(DACADDR);
- byte reg[] = { 0x8F, 0x00, 0xA0, 0xEE, 0xEE, 0x42, 0x00, 0x00, 0x00, 0x01 };
- Wire.write(0x00); // 書き込み先頭アドレス
- Wire.write(reg, 10);
- Wire.endTransmission();
- //
- }
- // 本作業
- void loop()
- {
- Serial.println("00H\t01H\t02H\t03H\t04H\t05H\t06H\t07H\t08H\t09H");
- Wire.beginTransmission(DACADDR); // アドレス指定(バイナリ値)(7ビット)
- Wire.write(0x00); // 読みだす最初のレジスタアドレスを指定
- Wire.endTransmission(false); // 書込みから読み出しへ変更して続行(Repeated Start)
- Wire.requestFrom(DACADDR, 10); // デバイスに対し10バイトを要求
- while (Wire.available()) { // 受信バッファが空になるまで繰り返す
- byte c = Wire.read(); // 1バイトを受信
- Serial.print("0x");
- Serial.print(c, HEX);
- Serial.print("\t");
- }
- Serial.println(""); // 改行
- Serial.println(""); // 改行
- delay(1000);
- }
Add Comment
Please, Sign In to add comment