/***************************************************************************
 *   Copyright (C) 2021 by Santiago González                               *
 *                                                                         *
 ***( see copyright.txt file at root folder )*******************************/

#pragma once

#include "mcuvref.h"

class PicVref : public McuVref
{
    public:
        PicVref( eMcu* mcu, QString name );
        ~PicVref();

        virtual void setup() override;
        virtual void initialize() override;

        virtual void configureA( uint8_t newVRCON ) override;

    protected:
        //virtual void setMode( uint8_t mode ) override;

        bool m_vrr;
        bool m_vroe;

        regBits_t m_VREN;
        regBits_t m_VROE;
        regBits_t m_VRR;
        regBits_t m_VR;
};

class PicVrefE : public McuVref
{
    public:
        PicVrefE( eMcu* mcu, QString name );
        ~PicVrefE();

        virtual void setup() override;

        virtual void configureA( uint8_t newFVRCON ) override;

        double getAdcVref();
        double getDacVref();

    private:
        double m_adcVref;
        double m_dacVref;

        regBits_t m_FVREN;
        regBits_t m_CDAFVR;
        regBits_t m_ADFVR;
};
