n

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
Kovalev_D
Date:
Wed Feb 03 10:44:42 2016 +0300
Revision:
23:12e6183f04d4
[thyz

Who changed what in which revision?

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