test

Dependencies:   ad5422_arduino mbed LT1446 ADS1248-1 LM35-1 Flash FT813 PGA280_ADS1259

main.h

Committer:
nikmaos
Date:
2020-09-01
Revision:
7:c364201bc3ed
Parent:
6:cfe7cb0bdb1a

File content as of revision 7:c364201bc3ed:

#include "PerifConfig.h"
#include "PGA280.h"
#include "ADS1259.h"
#include "PGA280ADS1259.h"
#include "ad5422_arduino.h"
#include "lm35.h"
#include "LT1446.h"
#include "ads1248.h"
#include "flashwrapper.h"
#include <cmath>
#include "FT_Platform.h"
#include "display.h"

/*тип для хранение настроек ПИДа*/  
#ifndef _PID_T //если ещё нету определения типа то создать
typedef struct{
    float kP,kI,kD,sampleTime;
    uint32_t chkd;
    uint8_t
    enabled:1,
    :7;
    }PID_t;
#endif
//тип для "удобного" хранения настроек калибровки дисплея
typedef struct{
    char  calibration[25];
    }Calibration_t;
    
//"переходник" между "голыми" и "осмысленными" данными
typedef union
{
    struct{
    float temp_u;
    float rashod_u;
    PID_t PID;//пид для нагрева колонки
    PID_t PID_R; //ПИД для расхода
    char calibration[25];
    struct {
        float k,b;
    }ADS1248Calibr;
    };
    //массив слов по 4 байта
    uint32_t w[2*sizeof(float)+2*(sizeof(PID_t)/sizeof(uint32_t))+sizeof(Calibration_t)/sizeof(uint32_t)+2*sizeof(float)];
}Mem_t;
Mem_t Mem;//экземпляр "переходника"

typedef struct{
volatile float Error, dError, last_Error;    //Ошибка и предыдущее значение для ПИД
volatile float Integral;    //Интегральная составляющая ПИД-регулятора    
    }PID_prom_t;  //промежуточные значения ПИД

typedef struct{
        float kp,ki,kd,st;
    }PID_defs_t; //тип для хранения настроек по умолчанию

float inline NormADC(long data);
void ComandCheck();
float PID (PID_t *pidx, PID_prom_t *prom);
void printtemp();
float BufToFloat(unsigned char *buf);
void setPIDdefault(PID_t *pidx,PID_defs_t *defs);
void pressed();