Vitaliy Loginov / LT1446
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers LT1446.h Source File

LT1446.h

00001 #ifndef LT1446_H
00002 #define LT1446_H
00003 /*Начало файла*/
00004 #include "PerifConfig.h"
00005 
00006 /*записывам в DACA и DACB а отправляем байты. Байт 2 содержит часть от обоих каналов*/
00007 typedef union{
00008     struct{
00009         uint32_t
00010          DACB:12,
00011          DACA:12;
00012         };
00013         struct{
00014             uint8_t
00015         b3,
00016         b2,
00017         b1;
00018         };
00019     } LT1446_MEM_t;    //объявление типа
00020     //объявление внешней переменной (продолжение в cpp файле)
00021     extern LT1446_MEM_t LT1446_MEM;
00022  
00023  /*Оперативное значение калибровки*/
00024  typedef struct {
00025      float k,Volts,b;    
00026      struct{
00027      uint16_t Code:12; //вывод в ЦАП
00028      uint16_t       //резерв под флаги 
00029       f0:1,   
00030       f1:1,
00031       f2:1,
00032       f3:1;
00033      };
00034      }LT1446_Calibr_t;     
00035 
00036 /*типа для создания экземпляра ЦАПа если их несколько*/
00037 typedef struct {
00038     LT1446_Calibr_t dacA;
00039     LT1446_Calibr_t dacB;
00040     } LT1446_t;
00041     
00042     //объект по умолчанию
00043     extern LT1446_t LT1446_0;
00044 
00045      /*Функция калибровки (присвоение коэффициентов)*/
00046      void LT1446_CalibrateCh(LT1446_Calibr_t *dac,float k, float b);
00047      void LT1446_CalculateCh(LT1446_Calibr_t *dac);
00048      /*записать данные в память микросхемы*/
00049      void LT1446_Write(LT1446_t *chip);
00050 /*Конец файла*/
00051 #endif