Dmitry Kovalev
/
LGstaandart
forkd
Fork of LG2 by
host/Source/App/InputOutput.h@23:12e6183f04d4, 2016-02-03 (annotated)
- Committer:
- Kovalev_D
- Date:
- Wed Feb 03 10:44:42 2016 +0300
- Revision:
- 23:12e6183f04d4
[thyz
Who changed what in which revision?
User | Revision | Line number | New 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 |