コード例 #1
0
bool RTC_DS3231::setAlarm(uint8_t alarm) {
   clearAlarm(alarm);
   uint8_t ctrl = read_i2c_register(DS3231_ADDRESS, DS3231_CONTROL);
   ctrl |= 0x04;  // turn on INTCN
   ctrl |= alarm;  // set bit alarm
   write_i2c_register(DS3231_ADDRESS, DS3231_CONTROL, ctrl);
   return true;
}
コード例 #2
0
bool RTC_DS3231::clearAlarm(uint8_t alarm) {
   uint8_t regStatus = read_i2c_register(DS3231_ADDRESS, DS3231_STATUSREG);
   if(alarm==0)
      regStatus &= ~0x03;
   else
      regStatus &= ~alarm;
   write_i2c_register(DS3231_ADDRESS, DS3231_STATUSREG, regStatus);
   return true;
}
コード例 #3
0
bool RTC_DS3231::switchClock(bool state) {
   uint8_t ctrl = read_i2c_register(DS3231_ADDRESS, DS3231_CONTROL);
   if(state)
      ctrl |= 0x04;  // turn on INTCN
   else
      ctrl &= ~0x04; // turn off INTCN
   write_i2c_register(DS3231_ADDRESS, DS3231_CONTROL, ctrl);
   return true;
}
コード例 #4
0
ファイル: bluetooth.c プロジェクト: jmeed/373proj
void init_bl() {
	// Set up Bluetooth
	write_i2c_register(BL_WAADR, BL_LCR, 0x80); // 0x80 to program baudrate
	write_i2c_register(BL_WAADR, BL_DLH, 0x00); // ([14.7456 * 10 ^ 6] / 1) / (115200 * 16) = 8 => 0x0008
	write_i2c_register(BL_WAADR, BL_DLL, 0x08); // The desired baud rate is 115200
	write_i2c_register(BL_WAADR, BL_LCR, 0x03); // 8 data bit, 1 stop bit, no parity
	write_i2c_register(BL_WAADR, BL_FCR, 0x06); // reset TXFIFO, reset RXFIFO, non FIFO mode
	write_i2c_register(BL_WAADR, BL_FCR, 0x01); // enable FIFO mode
	write_i2c_register(BL_WAADR, BL_IER, 0x01); // enable RHR interrupt
}
コード例 #5
0
void RTC_DS3231::writeSqwPinMode(Ds3231SqwPinMode mode) {
  uint8_t ctrl;
  ctrl = read_i2c_register(DS3231_ADDRESS, DS3231_CONTROL);

  ctrl &= ~0x04; // turn off INTCON
  ctrl &= ~0x18; // set freq bits to 0

  if (mode == DS3231_OFF) {
    ctrl |= 0x04; // turn on INTCN
  } else {
    ctrl |= mode;
  }
  write_i2c_register(DS3231_ADDRESS, DS3231_CONTROL, ctrl);
}
コード例 #6
0
ファイル: RTClib.cpp プロジェクト: gutierrezps/RTClib
void RTC_DS3231::adjust(const DateTime& dt) {
  Wire.beginTransmission(DS3231_ADDRESS);
  Wire._I2C_WRITE((byte)0); // start at location 0
  Wire._I2C_WRITE(bin2bcd(dt.second()));
  Wire._I2C_WRITE(bin2bcd(dt.minute()));
  Wire._I2C_WRITE(bin2bcd(dt.hour()));
  Wire._I2C_WRITE(bin2bcd(0));
  Wire._I2C_WRITE(bin2bcd(dt.day()));
  Wire._I2C_WRITE(bin2bcd(dt.month()));
  Wire._I2C_WRITE(bin2bcd(dt.year() - 2000));
  Wire.endTransmission();

  uint8_t statreg = read_i2c_register(DS3231_ADDRESS, DS3231_STATUSREG);
  statreg &= ~0x80; // flip OSF bit
  write_i2c_register(DS3231_ADDRESS, DS3231_STATUSREG, statreg);
}