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

📄 timer1.lst

📁 cf8020+cp2200(网络)的驱动实现
💻 LST
字号:
C51 COMPILER V7.09   TIMER1                                                                06/28/2007 09:51:20 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE TIMER1
OBJECT MODULE PLACED IN TIMER1.obj
COMPILER INVOKED BY: F:\Keil\C51\BIN\C51.EXE tcp\TIMER1.C LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\TIMER1.lst) OBJECT(TIM
                    -ER1.obj)

line level    source

   1          //-----------------------------------------------------------------------------
   2          // Copyright (c) 2002 Jim Brady
   3          // Do not use commercially without author's permission
   4          // Last revised August 2002
   5          // Net TIMER.C
   6          //
   7          // This module sets up the timer and handles the timer interrupt
   8          //-----------------------------------------------------------------------------
   9          #include "net1.h"
  10          #include "timer1.h"
  11          
  12          
  13          extern uint  event_word;
  14          extern ulong initial_sequence_nr;
  15          
  16          #ifdef __cplusplus
              extern "C"{
              #endif
  19          //--------------------------------------------------------------------------
  20          // Timer 2 interrupt service routing. Intr vector location is
  21          // address 0x002B. The timer generates an interrupt every 25 msec
  22          // It is set to auto reload so do not need to reload it.
  23          //--------------------------------------------------------------------------
  24          void timer2_interrupt(void) 
  25          {
  26   1              static uint count1 = 0;
  27   1              static uint count2 = 0;
  28   1              
  29   1      //      TF2 = 0;                // Clear interrupt flag
  30   1      
  31   1              
  32   1              // Advance the initial sequence number
  33   1              initial_sequence_nr += 6250;
  34   1              // Keep it some distance from rolling over
  35   1              if (initial_sequence_nr & 0x10000000L) 
  36   1                      initial_sequence_nr = 1;
  37   1              
  38   1              count1++;
  39   1              // These events happens every 0.50 seconds, not simultaneously
  40   1              if (count1 == 5) 
  41   1                      event_word |= EVENT_ARP_RETRANSMIT;
  42   1              
  43   1              if (count1 == 10) 
  44   1                      event_word |= EVENT_TCP_INACTIVITY; //TCP保活时间标志
  45   1              
  46   1              if (count1 == 15) 
  47   1                      event_word |= EVENT_READ_ANALOG;
  48   1              
  49   1              if (count1 == 20)
  50   1              {
  51   2                      count1 = 0;
  52   2                      event_word |= EVENT_TCP_RETRANSMIT;  //TCP重发事件标志
  53   2              }
  54   1              
C51 COMPILER V7.09   TIMER1                                                                06/28/2007 09:51:20 PAGE 2   

  55   1              count2++;
  56   1              if (count2 == 2401)
  57   1              {
  58   2                      // This happens every 60.025 seconds, not simultaneous
  59   2                      // with above tasks
  60   2                      count2 = 0;
  61   2                      event_word |= EVENT_AGE_ARP_CACHE;  //ARP CACHE刷新事件标志
  62   2              }
  63   1      }
  64          
  65          
  66          #ifdef __cplusplus
              }
              #endif
  69          
  70          
  71          //--------------------------------------------------------------------------
  72          // Setup Timer2 in mode 1 which is 16 bit auto reload
  73          // Intr rate = 22.1184 MHz /(12 * (65536 - reload value))
  74          // For 25 msec reload value = 19456 = 0x4C00
  75          //--------------------------------------------------------------------------
  76          void init_timer2(void)
  77          {
  78   1      //      T2CON = 0x00;
  79   1      //      RCAP2H = 0x4C;          // Reload value
  80   1      //      RCAP2L = 0x00;
  81   1      //      TH2 = 0x4C;                             // Initial load value
  82   1      //      TL2 = 0x00;
  83   1      //      TR2 = 1;                                        // Timer 2 run
  84   1      }
  85          
  86          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    157    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =      4    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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