asd

ad5422_arduino.h

Committer:
vitlog
Date:
2020-06-22
Revision:
0:9a5218876095

File content as of revision 0:9a5218876095:

#ifndef _AD5422_ARDUINO_H    /* Guard against multiple inclusion */
#define _AD5422_ARDUINO_H
#include <stdint.h>
/* Provide C++ Compatibility */
#ifdef __cplusplus
extern "C" {
#endif

#define AD5422_ADR                           0
////////////////////////////////////////////// 
// ************ Commands AD5422 *********** //
//////////////////////////////////////////////
    
#define AD5422_NOP                        0x00
#define AD5422_REG_DATA                   0x01
#define AD5422_READBACK                   0x02
#define AD5422_REG_CONTROL                0x55
#define AD5422_REG_RESET                  0x56

//////////////////////////////////////////////
// *********** READ Registers ****************** //
//////////////////////////////////////////////

#define AD5422_STATUS_REGISTER            0x00
#define AD5422_DATA_REGISTER              0x01
#define AD5422_CONTROL_REGISTER           0x10

    typedef union{
        struct{
            uint16_t
            R0:1,
            R1:1,
            R2:1,
            DCEN:1,
            SREN:1,
            SRSTEP:3,
            SRCLOCK:4,
            OUTEN:1,
            REXT:1,
            OVRRNG:1,
            CLRSEL:1;            
        };        
        struct{
            uint16_t 
            L:8,
            H:8;            
        };
    }AD5422_CONTROL_t;
    extern AD5422_CONTROL_t AD5422_CONTROL;
    
    typedef union{
        struct{
            uint16_t
            OverTemp:1,
            SlewActive:1,
            IoutFault:1,
            :13;
        };     
        uint16_t w:16;
        
    }AD5422_STATUS_t;
    extern AD5422_STATUS_t AD5422_STATUS;
    
    void ad5422_init ( void );
    void ad5422_resetDevice (  unsigned char adr );
    void ad5422_powerDownDevice ( unsigned char adr );
    void ad5422_powerUpDevice ( unsigned char adr );
    char ad5422_readyDevice ( unsigned char ch );
    char ad5422_sendCommandDevice ( unsigned char reg, unsigned char high_byte, unsigned char low_byte, unsigned char adr );
    uint32_t ad5422_readReg ( unsigned char reg, unsigned char adr );
    unsigned int ad5422_setRegisters ( void );
    unsigned int ad5422_setRegistersChannal ( char channal );
    unsigned char ad5422_setVoltageChannal ( float voltage, char channal );

    /* Provide C++ Compatibility */
#ifdef __cplusplus
}
#endif

#endif /* _EXAMPLE_FILE_NAME_H */

/* *****************************************************************************
 End of File
 */