⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 corraddr.h

📁 GPS导航定位程序
💻 H
📖 第 1 页 / 共 3 页
字号:
/***************************************************************************
* Plessey GP2021-3 GPS Correlator register addresses (displacement from
* the device's base address). 17/02/95.
***************************************************************************/

/***************************************************************************
* Define the base address of each channel's control registers.
***************************************************************************/

#define CH01_CONTROL                     0x000
#define CH02_CONTROL                     0x020
#define CH03_CONTROL                     0x040
#define CH04_CONTROL                     0x060
#define CH05_CONTROL                     0x080
#define CH06_CONTROL                     0x0A0
#define CH07_CONTROL                     0x0C0
#define CH08_CONTROL                     0x0E0
#define CH09_CONTROL                     0x100
#define CH10_CONTROL                     0x120
#define CH11_CONTROL                     0x140
#define CH12_CONTROL                     0x160
#define MULTI_CONTROL                    0x180
#define ALL_CONTROL                      0x1C0

/***************************************************************************
* Define the base address of each channel's accumulate registers.
***************************************************************************/

#define CH01_ACCUMULATE                  0x210
#define CH02_ACCUMULATE                  0x220
#define CH03_ACCUMULATE                  0x230
#define CH04_ACCUMULATE                  0x240
#define CH05_ACCUMULATE                  0x250
#define CH06_ACCUMULATE                  0x260
#define CH07_ACCUMULATE                  0x270
#define CH08_ACCUMULATE                  0x280
#define CH09_ACCUMULATE                  0x290
#define CH10_ACCUMULATE                  0x2A0
#define CH11_ACCUMULATE                  0x2B0
#define CH12_ACCUMULATE                  0x2C0
#define MULTI_ACCUMULATE                 0x2D0
#define ALL_ACCUMULATE                   0x2E0

/***************************************************************************
* Define the offset from the base control address for each control
* register.
***************************************************************************/

/* First the read addresses */

#define CODE_SLEW_READ                   0x000
#define CODE_PHASE                       0x004
#define CARRIER_CYCLE_COUNTER_LOW        0x008
#define CARRIER_DCO_PHASE                0x00C
#define EPOCH_COUNT                      0x010
#define CODE_DCO_PHASE                   0x014
#define CARRIER_CYCLE_COUNTER_HIGH       0x018
#define EPOCH_CHECK                      0x01C

/* Now the write addresses */

#define SATCNTL                          0x000
#define CODE_PHASE_COUNTER               0x004
#define CARRIER_CYCLE_COUNTER            0x008
#define CARRIER_DCO_INCR_HIGH            0x00C
#define CARRIER_DCO_INCR_LOW             0x010
#define CODE_DCO_INCR_HIGH               0x014
#define CODE_DCO_INCR_LOW                0x018
#define EPOCH_LOAD                       0x01C

/***************************************************************************
* Define the offset from the base accumulate address for each accumulate
* register.
***************************************************************************/

/* First the read addresses */

#define I_TRACK                          0x000
#define Q_TRACK                          0x004
#define I_PROMPT                         0x008
#define Q_PROMPT                         0x00C

/* Now the write addresses */

#define CODE_SLEW_WRITE                  0x000
#define ACCUM_RESET                      0x004
#define CODE_DCO_PRESET_PHASE            0x00C

/***************************************************************************
* Define the address shift bewteen the correclator address lines and the
* PC address lines.
*
* The correlator addresses are all word aligned (2 LSBs zero) so that it
* possible to connect A<9:2> on the correlator to A<7:0> on the processor
* for non word aligned systems.
*
* Set ADDRESS_SHIFT as follows:
*
* Word aligned     : 0x000
*
* Non word aligned : 0x002
*
***************************************************************************/

#define ADDRESS_SHIFT                    0x002

/***************************************************************************
* Define each individual channel control register address as a function of
* the channel control register base address, the offset from the base and
* the address shift.
***************************************************************************/

/* Read */

#define CH01_CODE_SLEW_READ              ((CH01_CONTROL+CODE_SLEW_READ)>>ADDRESS_SHIFT)
#define CH01_CODE_PHASE                  ((CH01_CONTROL+CODE_PHASE)>>ADDRESS_SHIFT)
#define CH01_CARRIER_CYCLE_COUNTER_LOW   ((CH01_CONTROL+CARRIER_CYCLE_COUNTER_LOW)>>ADDRESS_SHIFT)
#define CH01_CARRIER_DCO_PHASE           ((CH01_CONTROL+CARRIER_DCO_PHASE)>>ADDRESS_SHIFT)
#define CH01_EPOCH_COUNT                 ((CH01_CONTROL+EPOCH_COUNT)>>ADDRESS_SHIFT)
#define CH01_CODE_DCO_PHASE              ((CH01_CONTROL+CODE_DCO_PHASE)>>ADDRESS_SHIFT)
#define CH01_CARRIER_CYCLE_COUNTER_HIGH  ((CH01_CONTROL+CARRIER_CYCLE_COUNTER_HIGH)>>ADDRESS_SHIFT)
#define CH01_EPOCH_CHECK                 ((CH01_CONTROL+EPOCH_CHECK)>>ADDRESS_SHIFT)

/* Write */

#define CH01_SATCNTL                     ((CH01_CONTROL+SATCNTL)>>ADDRESS_SHIFT)
#define CH01_CODE_PHASE_COUNTER          ((CH01_CONTROL+CODE_PHASE_COUNTER)>>ADDRESS_SHIFT)
#define CH01_CARRIER_CYCLE_COUNTER       ((CH01_CONTROL+CARRIER_CYCLE_COUNTER)>>ADDRESS_SHIFT)
#define CH01_CARRIER_DCO_INCR_HIGH       ((CH01_CONTROL+CARRIER_DCO_INCR_HIGH)>>ADDRESS_SHIFT)
#define CH01_CARRIER_DCO_INCR_LOW        ((CH01_CONTROL+CARRIER_DCO_INCR_LOW)>>ADDRESS_SHIFT)
#define CH01_CODE_DCO_INCR_HIGH          ((CH01_CONTROL+CODE_DCO_INCR_HIGH)>>ADDRESS_SHIFT)
#define CH01_CODE_DCO_INCR_LOW           ((CH01_CONTROL+CODE_DCO_INCR_LOW)>>ADDRESS_SHIFT)
#define CH01_EPOCH_LOAD                  ((CH01_CONTROL+EPOCH_LOAD)>>ADDRESS_SHIFT)

/* Read */

#define CH02_CODE_SLEW_READ              ((CH02_CONTROL+CODE_SLEW_READ)>>ADDRESS_SHIFT)
#define CH02_CODE_PHASE                  ((CH02_CONTROL+CODE_PHASE)>>ADDRESS_SHIFT)
#define CH02_CARRIER_CYCLE_COUNTER_LOW   ((CH02_CONTROL+CARRIER_CYCLE_COUNTER_LOW)>>ADDRESS_SHIFT)
#define CH02_CARRIER_DCO_PHASE           ((CH02_CONTROL+CARRIER_DCO_PHASE)>>ADDRESS_SHIFT)
#define CH02_EPOCH_COUNT                 ((CH02_CONTROL+EPOCH_COUNT)>>ADDRESS_SHIFT)
#define CH02_CODE_DCO_PHASE              ((CH02_CONTROL+CODE_DCO_PHASE)>>ADDRESS_SHIFT)
#define CH02_CARRIER_CYCLE_COUNTER_HIGH  ((CH02_CONTROL+CARRIER_CYCLE_COUNTER_HIGH)>>ADDRESS_SHIFT)
#define CH02_EPOCH_CHECK                 ((CH02_CONTROL+EPOCH_CHECK)>>ADDRESS_SHIFT)
            
/* Write */

#define CH02_SATCNTL                     ((CH02_CONTROL+SATCNTL)>>ADDRESS_SHIFT)
#define CH02_CODE_PHASE_COUNTER          ((CH02_CONTROL+CODE_PHASE_COUNTER)>>ADDRESS_SHIFT)
#define CH02_CARRIER_CYCLE_COUNTER       ((CH02_CONTROL+CARRIER_CYCLE_COUNTER)>>ADDRESS_SHIFT)
#define CH02_CARRIER_DCO_INCR_HIGH       ((CH02_CONTROL+CARRIER_DCO_INCR_HIGH)>>ADDRESS_SHIFT)
#define CH02_CARRIER_DCO_INCR_LOW        ((CH02_CONTROL+CARRIER_DCO_INCR_LOW)>>ADDRESS_SHIFT)
#define CH02_CODE_DCO_INCR_HIGH          ((CH02_CONTROL+CODE_DCO_INCR_HIGH)>>ADDRESS_SHIFT)
#define CH02_CODE_DCO_INCR_LOW           ((CH02_CONTROL+CODE_DCO_INCR_LOW)>>ADDRESS_SHIFT)
#define CH02_EPOCH_LOAD                  ((CH02_CONTROL+EPOCH_LOAD)>>ADDRESS_SHIFT)

/* Read */

#define CH03_CODE_SLEW_READ              ((CH03_CONTROL+CODE_SLEW_READ)>>ADDRESS_SHIFT)
#define CH03_CODE_PHASE                  ((CH03_CONTROL+CODE_PHASE)>>ADDRESS_SHIFT)
#define CH03_CARRIER_CYCLE_COUNTER_LOW   ((CH03_CONTROL+CARRIER_CYCLE_COUNTER_LOW)>>ADDRESS_SHIFT)
#define CH03_CARRIER_DCO_PHASE           ((CH03_CONTROL+CARRIER_DCO_PHASE)>>ADDRESS_SHIFT)
#define CH03_EPOCH_COUNT                 ((CH03_CONTROL+EPOCH_COUNT)>>ADDRESS_SHIFT)
#define CH03_CODE_DCO_PHASE              ((CH03_CONTROL+CODE_DCO_PHASE)>>ADDRESS_SHIFT)
#define CH03_CARRIER_CYCLE_COUNTER_HIGH  ((CH03_CONTROL+CARRIER_CYCLE_COUNTER_HIGH)>>ADDRESS_SHIFT)
#define CH03_EPOCH_CHECK                 ((CH03_CONTROL+EPOCH_CHECK)>>ADDRESS_SHIFT)

/* Write */

#define CH03_SATCNTL                     ((CH03_CONTROL+SATCNTL)>>ADDRESS_SHIFT)
#define CH03_CODE_PHASE_COUNTER          ((CH03_CONTROL+CODE_PHASE_COUNTER)>>ADDRESS_SHIFT)
#define CH03_CARRIER_CYCLE_COUNTER       ((CH03_CONTROL+CARRIER_CYCLE_COUNTER)>>ADDRESS_SHIFT)
#define CH03_CARRIER_DCO_INCR_HIGH       ((CH03_CONTROL+CARRIER_DCO_INCR_HIGH)>>ADDRESS_SHIFT)
#define CH03_CARRIER_DCO_INCR_LOW        ((CH03_CONTROL+CARRIER_DCO_INCR_LOW)>>ADDRESS_SHIFT)
#define CH03_CODE_DCO_INCR_HIGH          ((CH03_CONTROL+CODE_DCO_INCR_HIGH)>>ADDRESS_SHIFT)
#define CH03_CODE_DCO_INCR_LOW           ((CH03_CONTROL+CODE_DCO_INCR_LOW)>>ADDRESS_SHIFT)
#define CH03_EPOCH_LOAD                  ((CH03_CONTROL+EPOCH_LOAD)>>ADDRESS_SHIFT)

/* Read */

#define CH04_CODE_SLEW_READ              ((CH04_CONTROL+CODE_SLEW_READ)>>ADDRESS_SHIFT)
#define CH04_CODE_PHASE                  ((CH04_CONTROL+CODE_PHASE)>>ADDRESS_SHIFT)
#define CH04_CARRIER_CYCLE_COUNTER_LOW   ((CH04_CONTROL+CARRIER_CYCLE_COUNTER_LOW)>>ADDRESS_SHIFT)
#define CH04_CARRIER_DCO_PHASE           ((CH04_CONTROL+CARRIER_DCO_PHASE)>>ADDRESS_SHIFT)
#define CH04_EPOCH_COUNT                 ((CH04_CONTROL+EPOCH_COUNT)>>ADDRESS_SHIFT)
#define CH04_CODE_DCO_PHASE              ((CH04_CONTROL+CODE_DCO_PHASE)>>ADDRESS_SHIFT)
#define CH04_CARRIER_CYCLE_COUNTER_HIGH  ((CH04_CONTROL+CARRIER_CYCLE_COUNTER_HIGH)>>ADDRESS_SHIFT)
#define CH04_EPOCH_CHECK                 ((CH04_CONTROL+EPOCH_CHECK)>>ADDRESS_SHIFT)

/* Write */

#define CH04_SATCNTL                     ((CH04_CONTROL+SATCNTL)>>ADDRESS_SHIFT)
#define CH04_CODE_PHASE_COUNTER          ((CH04_CONTROL+CODE_PHASE_COUNTER)>>ADDRESS_SHIFT)
#define CH04_CARRIER_CYCLE_COUNTER       ((CH04_CONTROL+CARRIER_CYCLE_COUNTER)>>ADDRESS_SHIFT)
#define CH04_CARRIER_DCO_INCR_HIGH       ((CH04_CONTROL+CARRIER_DCO_INCR_HIGH)>>ADDRESS_SHIFT)
#define CH04_CARRIER_DCO_INCR_LOW        ((CH04_CONTROL+CARRIER_DCO_INCR_LOW)>>ADDRESS_SHIFT)
#define CH04_CODE_DCO_INCR_HIGH          ((CH04_CONTROL+CODE_DCO_INCR_HIGH)>>ADDRESS_SHIFT)
#define CH04_CODE_DCO_INCR_LOW           ((CH04_CONTROL+CODE_DCO_INCR_LOW)>>ADDRESS_SHIFT)
#define CH04_EPOCH_LOAD                  ((CH04_CONTROL+EPOCH_LOAD)>>ADDRESS_SHIFT)

/* Read */

#define CH05_CODE_SLEW_READ              ((CH05_CONTROL+CODE_SLEW_READ)>>ADDRESS_SHIFT)
#define CH05_CODE_PHASE                  ((CH05_CONTROL+CODE_PHASE)>>ADDRESS_SHIFT)
#define CH05_CARRIER_CYCLE_COUNTER_LOW   ((CH05_CONTROL+CARRIER_CYCLE_COUNTER_LOW)>>ADDRESS_SHIFT)
#define CH05_CARRIER_DCO_PHASE           ((CH05_CONTROL+CARRIER_DCO_PHASE)>>ADDRESS_SHIFT)
#define CH05_EPOCH_COUNT                 ((CH05_CONTROL+EPOCH_COUNT)>>ADDRESS_SHIFT)
#define CH05_CODE_DCO_PHASE              ((CH05_CONTROL+CODE_DCO_PHASE)>>ADDRESS_SHIFT)
#define CH05_CARRIER_CYCLE_COUNTER_HIGH  ((CH05_CONTROL+CARRIER_CYCLE_COUNTER_HIGH)>>ADDRESS_SHIFT)
#define CH05_EPOCH_CHECK                 ((CH05_CONTROL+EPOCH_CHECK)>>ADDRESS_SHIFT)

/* Write */

#define CH05_SATCNTL                     ((CH05_CONTROL+SATCNTL)>>ADDRESS_SHIFT)
#define CH05_CODE_PHASE_COUNTER          ((CH05_CONTROL+CODE_PHASE_COUNTER)>>ADDRESS_SHIFT)
#define CH05_CARRIER_CYCLE_COUNTER       ((CH05_CONTROL+CARRIER_CYCLE_COUNTER)>>ADDRESS_SHIFT)
#define CH05_CARRIER_DCO_INCR_HIGH       ((CH05_CONTROL+CARRIER_DCO_INCR_HIGH)>>ADDRESS_SHIFT)
#define CH05_CARRIER_DCO_INCR_LOW        ((CH05_CONTROL+CARRIER_DCO_INCR_LOW)>>ADDRESS_SHIFT)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -