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

📄 time.lst

📁 c8051f310xmodembootloader.rar
💻 LST
字号:
C51 COMPILER V8.16   TIME                                                                  12/10/2009 11:19:18 PAGE 1   


C51 COMPILER V8.16, COMPILATION OF MODULE TIME
OBJECT MODULE PLACED IN time.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE time.c LARGE BROWSE INTVECTOR(0X1000) DEBUG OBJECTEXTEND

line level    source

   1          #include "global.h"
   2          
   3          
   4          /******************************************************************************
   5          ** 函数: Timer0_Init ()
   6          ** 入参: 无
   7          ** 返回: 无
   8          ** 说明: 查询wiegand溢出,每5ms溢出中断,10ms溢出,手工装载
   9          ******************************************************************************/
  10          void Timer0_Init ()
  11          {
  12   1         CKCON |= 0x04;
  13   1         TMOD  &= ~0x0f;
  14   1         TMOD  |= 0x01;                      //16位手工载入
  15   1      
  16   1         RE_LOAD_TIME0;
  17   1      
  18   1         TR0=1;
  19   1         ET0=1;
  20   1          
  21   1      
  22   1      }
  23          
  24          
  25          
  26          /******************************************************************************
  27          ** 函数: Timer2_Init ()
  28          ** 入参: int counts
  29          ** 返回: 
  30          ** 说明:
  31          ** Timer2_Init SYSCLK no Interrupt
  32          ** Configure Timer2 to auto-reload at interval specified by <counts> (no 
  33          ** interrupt generated) using SYSCLK as its time base.
  34          ******************************************************************************/
  35          void Timer2_Init (int counts)
  36          {
  37   1         TMR2CN = 0x00;                      // STOP Timer2; Clear TF2H and TF2L;
  38   1                                             // disable low-byte interrupt; disable
  39   1                                             // split mode; select internal timebase
  40   1         CKCON |= 0x10;                     
  41   1      
  42   1         TMR2RL  = -counts;                  // Init reload values
  43   1         TMR2    = TMR2RL;                   // Init Timer2 with reload value
  44   1         ET2 = 1;                            // disable Timer2 interrupts
  45   1         TR2 = 1;                            // start Timer2
  46   1      }
  47          
  48          /******************************************************************************
  49          ** 函数:  Timer0_ISR (void) interrupt
  50          ** 入参: 
  51          ** 返回: 
  52          ** 说明:  5ms 中断
  53          ******************************************************************************/
  54          void Timer0_ISR (void) interrupt 1
  55          {
C51 COMPILER V8.16   TIME                                                                  12/10/2009 11:19:18 PAGE 2   

  56   1              
  57   1              PCA0CPH4 =255;                       //32.1ms 喂狗
  58   1      
  59   1          if(wie_str)
  60   1          {
  61   2            event_word |=event_wie_arrived;    //当脉冲捕获开始,每次都会重载初值
  62   2              }                                                                        //一旦溢出进入中断说明超过2ms
  63   1                                                   //没有脉冲,此时认为一帧wiegand收完
  64   1      
  65   1          RE_LOAD_TIME0;
  66   1              
  67   1      }
  68          
  69          /******************************************************************************
  70          ** 函数:  Timer2_ISR (void) interrupt
  71          ** 入参: 
  72          ** 返回: 
  73          ** 说明:  1ms 中断
  74          ******************************************************************************/
  75          void Timer2_ISR (void) interrupt 5
  76          {
  77   1              static unsigned int count1=0;
  78   1              static unsigned int count2=0;
  79   1              static unsigned int count3=0;
  80   1      
  81   1      
  82   1          TF2H = 0; 
  83   1              count1++;
  84   1              count2++;
  85   1              count3++;
  86   1      
  87   1              PCA0CPH4 =255;                         //32.1ms 喂狗
  88   1              if(count1==10)  
  89   1              {
  90   2                  count1=0;
  91   2                  event_word |=event_uart_arrived;   //50ms  查串口缓冲
  92   2      
  93   2              }
  94   1      
  95   1              if(count2==100)
  96   1              {
  97   2                      count2=0;
  98   2                      event_word |=event_time_100ms;     //100ms  搜索无线
  99   2              }
 100   1      
 101   1              if(count3==1000)                                           //1000ms 做长时间基准
 102   1              {
 103   2                      count3=0; 
 104   2                      event_word |=event_time_1000ms;
 105   2              }
 106   1      
 107   1              CountSysTimer();                       //倒计数组         
 108   1      }
 109          
 110          
 111          
 112          
 113          
 114          /******************************************************************************
 115          ** 函数:  InitSysTimer
 116          ** 入参: 
 117          ** 返回: 
C51 COMPILER V8.16   TIME                                                                  12/10/2009 11:19:18 PAGE 3   

 118          ** 说明:  初始化计数器
 119          ******************************************************************************/
 120          void InitSysTimer(void)
 121          {
 122   1          unsigned char i;
 123   1          for(i = 0; i < MAX_SYSTIMER_COUNT; i++)
 124   1          {
 125   2              sysTimer[i] = 0;
 126   2          }    
 127   1      }
 128          
 129          /******************************************************************************
 130          ** 函数:  CountSysTimer
 131          ** 入参: 
 132          ** 返回: 
 133          ** 说明:  计数减1
 134          ******************************************************************************/
 135          void CountSysTimer(void)
 136          {
 137   1          unsigned char i;
 138   1          for(i = 0; i < MAX_SYSTIMER_COUNT; i++)
 139   1          {
 140   2              if(sysTimer[i] > 0)
 141   2                  sysTimer[i]--;
 142   2          }    
 143   1      }
 144          
 145          /******************************************************************************
 146          ** 函数:  SetSysTimer
 147          ** 入参:  id   value
 148          ** 返回: 
 149          ** 说明:  设置认为号 和时间
 150          ******************************************************************************/
 151          unsigned char SetSysTimer(unsigned char id,unsigned int value)
 152          {
 153   1          if(id < MAX_SYSTIMER_COUNT)
 154   1          {
 155   2              sysTimer[id] = value;
 156   2              return 1;
 157   2          }
 158   1          else
 159   1              return 0;    
 160   1      }
 161          
 162          /******************************************************************************
 163          ** 函数:  GetSysTimer
 164          ** 入参:  id
 165          ** 返回: 
 166          ** 说明:  取任务状态
 167          ******************************************************************************/
 168          unsigned char GetSysTimer(unsigned char id)
 169          {
 170   1          if(sysTimer[id] == 0)
 171   1              return 1;
 172   1          else
 173   1              return 0;
 174   1      }       


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    376    ----
   CONSTANT SIZE    =   ----    ----
C51 COMPILER V8.16   TIME                                                                  12/10/2009 11:19:18 PAGE 4   

   XDATA SIZE       =      6    ----
   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 + -