Exemplo n.º 1
0
        public void SetSquareWave(SquareWaveFrequency squareWaveFrequency, SquareWaveDisabledOutputControl outputControl = SquareWaveDisabledOutputControl.Zero)
        {
            byte register = (byte)outputControl;

            register <<= 3;   // bit 7 defines the square wave output level when disabled
            // bit 6 & 5 are unused

            if (squareWaveFrequency != SquareWaveFrequency.SQW_Off)
            {
                register |= 1;
            }

            register <<= 4; // bit 4 defines if the oscillator generating the square wave frequency is on or off.
            // bit 3 & 2 are unused

            register |= (byte)squareWaveFrequency; // bit 1 & 0 define the frequency of the square wave
            this._i2cDevice.Write(new byte[] { DS1307_SQUARE_WAVE_CTRL_REGISTER_ADDRESS, register });
        }
Exemplo n.º 2
0
        public void SquareWaveOutput(SquareWaveFrequency freq)
        {
            byte registerData;

            switch (freq)
            {
            case SquareWaveFrequency.Wave_1000Hz:
                registerData = (1 << 4);
                break;

            case SquareWaveFrequency.Wave_4096Hz:
                registerData = (1 << 4) | (1 << 0);
                break;

            case SquareWaveFrequency.Wave_8192Hz:
                registerData = (1 << 4) | (1 << 1);
                break;

            case SquareWaveFrequency.Wave_32768Hz:
                registerData = (1 << 4) | (1 << 0) | (1 << 1);
                break;

            case SquareWaveFrequency.Wave_Low:
                registerData = 0;
                break;

            case SquareWaveFrequency.Wave_High:
                registerData = (1 << 7);
                break;

            default:
                throw new NotSupportedException();
            }

            // control register is at 0x07
            _bus.Write(new byte[] { Address, 0x07, registerData });
        }