fork

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
igor_v
Date:
Wed Feb 03 07:19:30 2016 +0000
Revision:
21:bc8c1cec3da6
Parent:
1:f2adcae3d304
Child:
89:a0d344db227e
?????????? ??????? ??????????, ???????? ??? ?????? ?????????? ??????????? ?????????.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
igor_v 1:f2adcae3d304 1 #ifndef InputOutput_H
igor_v 1:f2adcae3d304 2 #define InputOutput_H
igor_v 0:8ad47e2b6f00 3
igor_v 0:8ad47e2b6f00 4
igor_v 0:8ad47e2b6f00 5 #include "stdint.h"
igor_v 0:8ad47e2b6f00 6
igor_v 21:bc8c1cec3da6 7 //******************************I2C*************************************************
igor_v 0:8ad47e2b6f00 8 #define I2C0
igor_v 0:8ad47e2b6f00 9
igor_v 0:8ad47e2b6f00 10 #define I2C_IDLE 1
igor_v 0:8ad47e2b6f00 11 #define I2C_BUSY 0
igor_v 0:8ad47e2b6f00 12
igor_v 0:8ad47e2b6f00 13 #define I2CONSET_I2EN 0x0000040 /* I2C Control Set Register */
igor_v 0:8ad47e2b6f00 14 #define I2CONSET_AA 0x0000004
igor_v 0:8ad47e2b6f00 15 #define I2CONSET_SI 0x0000008
igor_v 0:8ad47e2b6f00 16 #define I2CONSET_STO 0x0000010
igor_v 0:8ad47e2b6f00 17 #define I2CONSET_STA 0x0000020
igor_v 0:8ad47e2b6f00 18
igor_v 0:8ad47e2b6f00 19 #define I2CONCLR_AAC 0x0000004 /* I2C Control clear Register */
igor_v 0:8ad47e2b6f00 20 #define I2CONCLR_SIC 0x0000008
igor_v 0:8ad47e2b6f00 21 #define I2CONCLR_STAC 0x0000020
igor_v 0:8ad47e2b6f00 22 #define I2CONCLR_I2ENC 0x0000040
igor_v 0:8ad47e2b6f00 23
igor_v 0:8ad47e2b6f00 24 #define I2SCLH_SCLH 0x00000080 /* I2C SCL Duty Cycle High Reg */
igor_v 0:8ad47e2b6f00 25 #define I2SCLL_SCLL 0x00000080 /* I2C SCL Duty Cycle Low Reg */
igor_v 0:8ad47e2b6f00 26
igor_v 0:8ad47e2b6f00 27 #define I2C_WRITELENGTH 0x00000006 /*Buffer length*/
igor_v 0:8ad47e2b6f00 28 #define A_ADDRESS 0x0000005E /*address of slave potentiometer (table 6-2 of pot's manual)*/
igor_v 0:8ad47e2b6f00 29 #define B_ADDRESS 0x0000005C /*address of slave potentiometer (table 6-2 of pot's manual)*/
igor_v 0:8ad47e2b6f00 30 #define WRITE_CMD 0x00000000 /*address of wiper0 register in memory map*/
igor_v 0:8ad47e2b6f00 31
igor_v 0:8ad47e2b6f00 32 //********************************SPI************************************************
igor_v 0:8ad47e2b6f00 33 #define HALFWORDS_FOR_ADCs 3
igor_v 0:8ad47e2b6f00 34
igor_v 0:8ad47e2b6f00 35 #define WRITE_DAC0 0x00000030 //write data to DAC 0
igor_v 0:8ad47e2b6f00 36 #define WRITE_DAC1 0x00000031 //write data to DAC 1
igor_v 0:8ad47e2b6f00 37
igor_v 0:8ad47e2b6f00 38 #define DAC (1<<23) //DAC identifer
igor_v 0:8ad47e2b6f00 39 #define ADC (1<<16) //ADC identifer
igor_v 0:8ad47e2b6f00 40
igor_v 0:8ad47e2b6f00 41 #define SetCS(a) LPC_GPIO0->FIOSET = a //set CS signal for ADC or DAC
igor_v 0:8ad47e2b6f00 42 #define ResetCS(a) LPC_GPIO0->FIOCLR = a //reset CS signal for ADC or DAC
igor_v 0:8ad47e2b6f00 43 #define SetDAC(a) LPC_GPIO0->FIOSET = a //set CS signal for ADC or DAC
igor_v 0:8ad47e2b6f00 44 #define ResetDAC(a) LPC_GPIO0->FIOCLR = a //reset CS signal for ADC or DAC
igor_v 0:8ad47e2b6f00 45
igor_v 0:8ad47e2b6f00 46
igor_v 0:8ad47e2b6f00 47
igor_v 0:8ad47e2b6f00 48 #define SSPCR1_SSE 0x00000002
igor_v 0:8ad47e2b6f00 49
igor_v 0:8ad47e2b6f00 50 #define TX_SSP_EMPT 0x00000001
igor_v 0:8ad47e2b6f00 51 #define RX_SSP_notEMPT 0x00000004
igor_v 0:8ad47e2b6f00 52 #define TX_SSP_notFULL 0x00000002
igor_v 0:8ad47e2b6f00 53 #define RX_SSP_FULL 0x00000008
igor_v 0:8ad47e2b6f00 54 #define SSP_BUSY 0x00000010
igor_v 0:8ad47e2b6f00 55
igor_v 0:8ad47e2b6f00 56 #define ADC_ERR_MSK 0x00000001
igor_v 0:8ad47e2b6f00 57 #define DAC_ERR_MSK 0x00000002
igor_v 0:8ad47e2b6f00 58
igor_v 0:8ad47e2b6f00 59 #define TIMEOUT 1000
igor_v 0:8ad47e2b6f00 60
igor_v 21:bc8c1cec3da6 61 typedef union
igor_v 21:bc8c1cec3da6 62 {
igor_v 21:bc8c1cec3da6 63 int ArrayOut[31];
igor_v 21:bc8c1cec3da6 64 struct {
igor_v 21:bc8c1cec3da6 65 int WP_reg; //e. PLC output voltage
igor_v 21:bc8c1cec3da6 66 int WP_sin; //r. сигнал поиска СРП - синус 250 Гц
igor_v 21:bc8c1cec3da6 67 int WP_pll; //r. выход XOR ФД контура СРП
igor_v 21:bc8c1cec3da6 68 int HF_reg; //e. HFO output voltage
igor_v 21:bc8c1cec3da6 69
igor_v 21:bc8c1cec3da6 70 int HF_dif;
igor_v 0:8ad47e2b6f00 71
igor_v 21:bc8c1cec3da6 72 int WP_Phase_Det_Array[8]; //e. arrays for "worms" output //r. массивы для вывода "червячков"
igor_v 21:bc8c1cec3da6 73 int WP_sin_Array[8];
igor_v 21:bc8c1cec3da6 74 int WP_scope1, WP_scope2; //e. temporary variables for Rate3 monitoring //r. временные переменные для наблюдения в Rate3
igor_v 21:bc8c1cec3da6 75
igor_v 21:bc8c1cec3da6 76 uint32_t F_ras; //e. really output frequency, divided by 16 (for transmission)
igor_v 21:bc8c1cec3da6 77 uint32_t L_Vibro; //e. period of oscillation of the dither drive //r. период колебания вибропривода
igor_v 21:bc8c1cec3da6 78 uint32_t T_Vibro; //e. pulse width of the dither drive //r. длительность импульса вибропривода
igor_v 21:bc8c1cec3da6 79 uint32_t T_VB_pll; //e. PD output of the frequency regulator of the dither drive //r. выход ФД регулятора частоты вибропривода
igor_v 0:8ad47e2b6f00 80
igor_v 21:bc8c1cec3da6 81 int PS_dif;
igor_v 21:bc8c1cec3da6 82 int BINS_dif;
igor_v 21:bc8c1cec3da6 83 int Cnt_Dif;
igor_v 21:bc8c1cec3da6 84 int Cnt_Pls;
igor_v 21:bc8c1cec3da6 85 int Cnt_Mns;
igor_v 21:bc8c1cec3da6 86 int Tmp_Out[6];
igor_v 0:8ad47e2b6f00 87
igor_v 21:bc8c1cec3da6 88 __int64 SF_dif;
igor_v 21:bc8c1cec3da6 89
igor_v 21:bc8c1cec3da6 90 } Str;
igor_v 21:bc8c1cec3da6 91 } OUTPUT;
igor_v 0:8ad47e2b6f00 92
igor_v 0:8ad47e2b6f00 93
igor_v 21:bc8c1cec3da6 94 typedef union
igor_v 21:bc8c1cec3da6 95 {
igor_v 21:bc8c1cec3da6 96 int ArrayIn[3];
igor_v 21:bc8c1cec3da6 97 struct {
igor_v 21:bc8c1cec3da6 98 int Tmp_in[2];
igor_v 21:bc8c1cec3da6 99 int HF_out;
igor_v 21:bc8c1cec3da6 100 int WP_sel;
igor_v 21:bc8c1cec3da6 101 }StrIn;
igor_v 21:bc8c1cec3da6 102 } INPUT;
igor_v 0:8ad47e2b6f00 103
igor_v 0:8ad47e2b6f00 104 extern INPUT Input;
igor_v 0:8ad47e2b6f00 105 extern OUTPUT Output;
igor_v 0:8ad47e2b6f00 106
igor_v 0:8ad47e2b6f00 107 void DAC_ADC_Exchange_Init(void);
igor_v 0:8ad47e2b6f00 108 void DAC_ADC_Exchange(void);
igor_v 0:8ad47e2b6f00 109 void ADC_Input(void);
igor_v 0:8ad47e2b6f00 110
igor_v 0:8ad47e2b6f00 111 void clc_HFO(void);
igor_v 0:8ad47e2b6f00 112
igor_v 0:8ad47e2b6f00 113 int clc_WP_sin(void);
igor_v 0:8ad47e2b6f00 114 void clc_PLC(void);
igor_v 0:8ad47e2b6f00 115 void init_PLC(void);
igor_v 0:8ad47e2b6f00 116
igor_v 0:8ad47e2b6f00 117 void clc_Pulses(void);
igor_v 0:8ad47e2b6f00 118 void SOI_Init(void);
igor_v 0:8ad47e2b6f00 119
igor_v 0:8ad47e2b6f00 120 void VibroDither_SwitchOn(void);
igor_v 0:8ad47e2b6f00 121 void VibroDither_SwitchOff(void);
igor_v 0:8ad47e2b6f00 122 void VibroDither_Set(void);
igor_v 0:8ad47e2b6f00 123 void DACInit(void);
igor_v 0:8ad47e2b6f00 124 void DAC_Output(int);
igor_v 0:8ad47e2b6f00 125 void clc_ThermoSensors(void);
igor_v 0:8ad47e2b6f00 126
igor_v 0:8ad47e2b6f00 127 void Out_G_photo(unsigned, unsigned);
igor_v 0:8ad47e2b6f00 128 void G_Photo_Init( void );
igor_v 0:8ad47e2b6f00 129 void G_Photo_Exchange(void);
igor_v 0:8ad47e2b6f00 130
igor_v 21:bc8c1cec3da6 131 //endof file
igor_v 21:bc8c1cec3da6 132
igor_v 1:f2adcae3d304 133 #endif // InputOutput_H
igor_v 0:8ad47e2b6f00 134