/// <summary> /// Configure SquareWave output pin behaviour /// </summary> /// <param name="outputControl">Output level of SQW/OUT pin when square wave output is disabled</param> /// <param name="squareWaveEnable">Enable/disable oscillator output</param> /// <param name="rateSelect">Frequency of square wave output when enabled</param> public void ConfigureSquareWave(bool outputControl, bool squareWaveEnable, RateSelect rateSelect) { this.ramAddress[0] = CONTROL_ADDR; this.ReadRam(this.ramAddress, this.ramData); // output control this.ramData[0] = outputControl ? (byte)(this.ramData[0] | OUTPUT_CONTROL) : (byte)(this.ramData[0] & ~OUTPUT_CONTROL); // square wave enable this.ramData[0] = squareWaveEnable ? (byte)(this.ramData[0] | SQUARE_WAVE_ENABLE) : (byte)(this.ramData[0] & ~SQUARE_WAVE_ENABLE); // square wave output frequency this.ramData[0] = (byte)(this.ramData[0] & ~RATE_SELECT_MASK); this.ramData[0] |= (byte)rateSelect; this.WriteRam(this.ramAddress, this.ramData); }