l1_mftab.h

来自「是一个手机功能的模拟程序」· C头文件 代码 · 共 576 行 · 第 1/3 页

H
576
字号
#if (L1_GPRS)
  const T_FCT BLOC_BCCHN_TRAN[] =     
  { 
                                  {l1s_ctrl_nnb,BCCHN_TRAN,NO_PAR},{NULL,NO_PAR,NO_PAR}, // frame 1
                                                                   {NULL,NO_PAR,NO_PAR}, // frame 2 
                                                                   {NULL,NO_PAR,NO_PAR}, // frame 3 
                                                                   {NULL,NO_PAR,NO_PAR}, // frame 4 
                                                                   {NULL,NO_PAR,NO_PAR}, // frame 5 
                                                                   {NULL,NO_PAR,NO_PAR}, // frame 6  
                                  {l1s_read_nnb,BCCHN_TRAN,NO_PAR},{NULL,NO_PAR,NO_PAR}  // frame 7              
  }; 
#endif

  /*----------------------------------------------------*/
  /* TASK: Synchronization (camp on a new serving cell) */
  /*----------------------------------------------------*/
  const T_FCT  BLOC_SYNCHRO[] =      
  { 
    {l1s_new_synchro,NO_PAR,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 1
  }; 
           

  /*----------------------------------------------------*/
  /* TASK: ADC measurement in CS_MODE0                  */
  /*       C                                            */
  /* the ADC is performed inside the frame and the      */
  /* result is red in the same frame due to an          */
  /* Interrupt (handle by Riviera)                      */
  /*----------------------------------------------------*/
  const T_FCT  BLOC_ADC[] =      
  { 
    {l1s_ctrl_ADC,NO_PAR,NO_PAR},{NULL,NO_PAR,NO_PAR}  // frame 1
  };

           
  /*----------------------------------------------------*/
  /* TASK: Short Message Service Cell Broadcast         */
  /*----------------------------------------------------*/
  /* frame   1 2 3 4 5 6                                */  
  /*         | | | | | |                                */  
  /*         C W R | | | -> hopp. + burst 1             */  
  /*           C W R | | -> hopp. + burst 2             */  
  /*             C W R | -> hopp. + burst 3             */  
  /*               C W R -> hopp. + burst 4 + Synch back*/  
  /*----------------------------------------------------*/
  const T_FCT  BLOC_SMSCB[] =      
  { 
    {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_ctrl_smscb, SMSCB,BURST_1},                                {NULL,NO_PAR,NO_PAR}, // frame 1
    {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_ctrl_smscb, SMSCB,BURST_2},                                {NULL,NO_PAR,NO_PAR}, // frame 2
    {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_read_snb_dl,SMSCB,BURST_1},{l1s_ctrl_smscb, SMSCB,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
    {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_read_snb_dl,SMSCB,BURST_2},{l1s_ctrl_smscb, SMSCB,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
                                                                    {l1s_read_snb_dl,SMSCB,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
                                                                    {l1s_read_snb_dl,SMSCB,BURST_4},{NULL,NO_PAR,NO_PAR}  // frame 6
  }; 
  
  /*----------------------------------------------------*/
  /* TASK: Normal Paging...                             */
  /*----------------------------------------------------*/
  /* frame 1 2 3 4 5 6                                  */  
  /*       | | | | | |                                  */  
  /*       C W R | | |     -> burst 1                   */  
  /*         C W R | |     -> burst 2                   */  
  /*           C W R |     -> burst 3                   */  
  /*             C W R     -> burst 4                   */  
  /*----------------------------------------------------*/
  const T_FCT  BLOC_NP[] =      
  { 
    {l1s_ctrl_snb_dl,NP,BURST_1},                             {NULL,NO_PAR,NO_PAR}, // frame 1
    {l1s_ctrl_snb_dl,NP,BURST_2},                             {NULL,NO_PAR,NO_PAR}, // frame 2
    {l1s_read_snb_dl,NP,BURST_1},{l1s_ctrl_snb_dl,NP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
    {l1s_read_snb_dl,NP,BURST_2},{l1s_ctrl_snb_dl,NP,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
                                 {l1s_read_snb_dl,NP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
                                 {l1s_read_snb_dl,NP,BURST_4},{NULL,NO_PAR,NO_PAR}  // frame 6
  }; 
           
  /*----------------------------------------------------*/
  /* TASK: Extended Paging task...                      */
  /*----------------------------------------------------*/
  /* frame 1 2 3 4 5 6                                  */  
  /*       | | | | | |                                  */  
  /*       C W R | | |     -> burst 1                   */  
  /*         C W R | |     -> burst 2                   */  
  /*           C W R |     -> burst 3                   */  
  /*             C W R     -> burst 4                   */  
  /*----------------------------------------------------*/
  const T_FCT  BLOC_EP[] =      
  { 
    {l1s_ctrl_snb_dl,EP,BURST_1},                             {NULL,NO_PAR,NO_PAR}, // frame 1
    {l1s_ctrl_snb_dl,EP,BURST_2},                             {NULL,NO_PAR,NO_PAR}, // frame 2
    {l1s_read_snb_dl,EP,BURST_1},{l1s_ctrl_snb_dl,EP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
    {l1s_read_snb_dl,EP,BURST_2},{l1s_ctrl_snb_dl,EP,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
                                 {l1s_read_snb_dl,EP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
                                 {l1s_read_snb_dl,EP,BURST_4},{NULL,NO_PAR,NO_PAR}  // frame 6
  }; 

  /*----------------------------------------------------*/
  /* TASK: All CCCH reading task...                     */
  /*----------------------------------------------------*/
  /* frame 1 2 3 4 5 6                                  */  
  /*       | | | | | |                                  */  
  /*       C W R | | |     -> burst 1                   */  
  /*         C W R | |     -> burst 2                   */  
  /*           C W R |     -> burst 3                   */  
  /*             C W R     -> burst 4                   */  
  /*----------------------------------------------------*/
  const T_FCT  BLOC_ALLC[] =      
  { 
    {l1s_ctrl_snb_dl,ALLC,BURST_1},                               {NULL,NO_PAR,NO_PAR}, // frame 1
    {l1s_ctrl_snb_dl,ALLC,BURST_2},                               {NULL,NO_PAR,NO_PAR}, // frame 2
    {l1s_read_snb_dl,ALLC,BURST_1},{l1s_ctrl_snb_dl,ALLC,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
    {l1s_read_snb_dl,ALLC,BURST_2},{l1s_ctrl_snb_dl,ALLC,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
                                   {l1s_read_snb_dl,ALLC,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
                                   {l1s_read_snb_dl,ALLC,BURST_4},{NULL,NO_PAR,NO_PAR}  // frame 6
  }; 

  /*----------------------------------------------------*/
  /* TASK: SDCCH                                        */
  /*----------------------------------------------------*/
  /* frame 1 2 3 4 5 6                                  */  
  /*       | | | | | |                                  */  
  /*       C W R | | |     -> burst 1                   */  
  /*         C W R | |     -> burst 2                   */  
  /*           C W R |     -> burst 3                   */  
  /*             C W R     -> burst 4                   */  
  /*----------------------------------------------------*/
  const T_FCT  BLOC_DDL[] = 
  { 
    {l1s_hopping_algo,DDL,NO_PAR},{l1s_ctrl_snb_dl,  DDL,BURST_1},                                {NULL,NO_PAR,NO_PAR}, // frame 1
    {l1s_hopping_algo,DDL,NO_PAR},{l1s_ctrl_snb_dl,  DDL,BURST_2},                                {NULL,NO_PAR,NO_PAR}, // frame 2
    {l1s_hopping_algo,DDL,NO_PAR},{l1s_read_dedic_dl,DDL,BURST_1},{l1s_ctrl_snb_dl,  DDL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
    {l1s_hopping_algo,DDL,NO_PAR},{l1s_read_dedic_dl,DDL,BURST_2},{l1s_ctrl_snb_dl,  DDL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
                                                                  {l1s_read_dedic_dl,DDL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
                                                                  {l1s_read_dedic_dl,DDL,BURST_4},{NULL,NO_PAR,NO_PAR}  // frame 6
  }; 

  const T_FCT  BLOC_DUL[] = 
  { 
    {l1s_hopping_algo,DUL,NO_PAR},{l1s_ctrl_snb_ul,   DUL,BURST_1},                                 {NULL,NO_PAR,NO_PAR}, // frame 1
    {l1s_hopping_algo,DUL,NO_PAR},{l1s_ctrl_snb_ul,   DUL,BURST_2},                                 {NULL,NO_PAR,NO_PAR}, // frame 2
    {l1s_hopping_algo,DUL,NO_PAR},{l1s_read_tx_result,DUL,BURST_1},{l1s_ctrl_snb_ul,   DUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
    {l1s_hopping_algo,DUL,NO_PAR},{l1s_read_tx_result,DUL,BURST_2},{l1s_ctrl_snb_ul,   DUL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
                                                                   {l1s_read_tx_result,DUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
                                                                   {l1s_read_tx_result,DUL,BURST_4},{NULL,NO_PAR,NO_PAR}  // frame 6
  }; 

  const T_FCT  BLOC_ADL[] = 
  { 
    {l1s_hopping_algo,ADL,NO_PAR},{l1s_ctrl_snb_dl,  ADL,BURST_1},                                {NULL,NO_PAR,NO_PAR}, // frame 1
    {l1s_hopping_algo,ADL,NO_PAR},{l1s_ctrl_snb_dl,  ADL,BURST_2},                                {NULL,NO_PAR,NO_PAR}, // frame 2
    {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_dedic_dl,ADL,BURST_1},{l1s_ctrl_snb_dl,  ADL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
    {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_dedic_dl,ADL,BURST_2},{l1s_ctrl_snb_dl,  ADL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
                                                                  {l1s_read_dedic_dl,ADL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
                                                                  {l1s_read_dedic_dl,ADL,BURST_4},{NULL,NO_PAR,NO_PAR}  // frame 6
  }; 

  const T_FCT  BLOC_AUL[] = 
  { 
    {l1s_hopping_algo,AUL,NO_PAR},{l1s_ctrl_snb_ul,   AUL,BURST_1},                                 {NULL,NO_PAR,NO_PAR}, // frame 1
    {l1s_hopping_algo,AUL,NO_PAR},{l1s_ctrl_snb_ul,   AUL,BURST_2},                                 {NULL,NO_PAR,NO_PAR}, // frame 2
    {l1s_hopping_algo,AUL,NO_PAR},{l1s_read_tx_result,AUL,BURST_1},{l1s_ctrl_snb_ul,   AUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
    {l1s_hopping_algo,AUL,NO_PAR},{l1s_read_tx_result,AUL,BURST_2},{l1s_ctrl_snb_ul,   AUL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
                                                                   {l1s_read_tx_result,AUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
                                                                   {l1s_read_tx_result,AUL,BURST_4},{NULL,NO_PAR,NO_PAR}  // frame 6
  }; 
                
  /*-----------------------------------------------------------------------*/
  /* SPECIAL CASE: (ADL4,DDL4),(ADL5,DDL5),(ADL6,DDL6).           */
  /*-----------------------------------------------------------------------*/
  /* frame 1        2        3        4        5        6        7         */  
  /*       |        |        |        |        |        |        |         */  
  /*       C(DUL,1) W(DUL,1) R(DUL,1) |        |        |        |         */
  /*       C(ADL,1) W(ADL,1) R(ADL,1) |        |        |         */
  /*       C(DUL,2) W(DUL,2) R(DUL,2) |        |        |         */
  /*                C(ADL,2) W(ADL,2) R(ADL,2) |        |         */
  /*                C(DUL,3) W(DUL,3) R(DUL,3) |        |         */
  /*                         C(ADL,3) W(ADL,3) R(ADL,3) |         */
  /*                         C(DUL,4) W(DUL,4) R(DUL,4) |         */
  /*                                  C(ADL,4) W(ADL,4) R(ADL,4)  */
  /*-----------------------------------------------------------------------*/
  const T_FCT  BLOC_DUL_ADL_MIXED[] = 
  { 
    {l1s_hopping_algo,AUL,NO_PAR},{l1s_ctrl_snb_ul,   DUL,BURST_1},                                                                                                  {NULL,NO_PAR,NO_PAR}, // frame 1
    {l1s_hopping_algo,ADL,NO_PAR},{l1s_ctrl_snb_dl,   ADL,BURST_1},{l1s_ctrl_snb_ul,   DUL,BURST_2},                                                                 {NULL,NO_PAR,NO_PAR}, // frame 2
    {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_tx_result,DUL,BURST_1},{l1s_ctrl_snb_dl,   ADL,BURST_2},{l1s_ctrl_snb_ul,  DUL,BURST_3},                                 {NULL,NO_PAR,NO_PAR}, // frame 3
    {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_dedic_dl, ADL,BURST_1},{l1s_read_tx_result,DUL,BURST_2},{l1s_ctrl_snb_dl,  ADL,BURST_3},{l1s_ctrl_snb_ul,   DUL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
    {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_dedic_dl, ADL,BURST_2},{l1s_read_tx_result,DUL,BURST_3},{l1s_ctrl_snb_dl,  ADL,BURST_4},                                 {NULL,NO_PAR,NO_PAR}, // frame 5
                                                                                                    {l1s_read_dedic_dl,ADL,BURST_3},{l1s_read_tx_result,DUL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 6
                                                                                                    {l1s_read_dedic_dl,ADL,BURST_4},                                 {NULL,NO_PAR,NO_PAR}  // frame 7
  };
  
  /*----------------------------------------------------*/
  /* ABORT: used to abort a running task when a new     */

⌨️ 快捷键说明

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