亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? timer.c

?? TQ公司的STK16x開發(fā)系統(tǒng)的源碼
?? C
字號:
/* File: TIMER.C */

/****************************************************************************
*
* STK16XSW.TIMER
* ==============
*
* Timer routines
*                 
* TQ-Systems GmbH                                                         
* ---------------                                                         
* Customer: TQ-Components
* Project : STK16XSW
* Tools   : uVision 2.05
*
* 
* Rev: Date:     Name:            Modification:
* ----+---------+----------------+------------------------------------------
* 100  16.01.01  A. Lichte        taken over from STK16X.506                
*****************************************************************************/

/****************************************************************************
*
*                             availability summary
*
* available for Starterkit: STK16X STK16XU
* conformed for Starterkit: STK16X 
* available for Modul     : TQM164   TQM165   TQM165U  TQM166  TQM167
*                           TQM167LC TQM167U  TQM167UL
* conformed for Modul     : TQM164   TQM165   TQM165U  TQM166  TQM167
*                           TQM167LC TQM167U  TQM167UL
*****************************************************************************/

/*==========================================================================*
* pragmas:
*===========================================================================*/

/*=========================================================================*
* include files (#INCLUDE):
*==========================================================================*/
/*-------------------------------------------------------------------------*
* standard include files:
*--------------------------------------------------------------------------*/
#include <stdio.h>              /* standard I/O functions    */
#include <ctype.h>              /* typecast functions        */
#include <string.h>             /* String functions          */
#include <setjmp.h>             /* global jump functions     */
#include <absacc.h>             /* absolute accesss          */
#include <intrins.h>            /* intrinsic functions       */
#include <reg167.h>             /* Special function register */

/*-------------------------------------------------------------------------*
* project specific include files:
*--------------------------------------------------------------------------*/
#include "timer.h"              /* timer functions           */

/*=========================================================================*
* modul internal definitions (#DEFINE):
*==========================================================================*/
#define T3_ICTRL     T3IC^6     /* timer 3 interrupt control bit */

/*=========================================================================*
* modul internal type definitions(TYPEDEF):
*==========================================================================*/

/*=========================================================================*
* modul internal constants (CONST):
*==========================================================================*/

/*=========================================================================*
* extern available constants (CONST):
*==========================================================================*/

/*=========================================================================*
* modul internal variables:
*==========================================================================*/
TIMER_COUNTER idata timer_counter;    /* 10 ms counter variable           */
t_timer_idle_func   timer_idle_func;  /* idle function for timer interrupt*/
unsigned int        timer_looptime;

sbit t3_ictrl = T3_ICTRL;             /* timer 3 interrupt control bit    */

/*=========================================================================*
* global extern available variables (EXTERN):
*==========================================================================*/

/*=========================================================================*
* modul internal functions:
*==========================================================================*/

/*-------------------------------------------------------------------------*
* void timer3_int(void) interrupt 0x23
*--------------------------------------------------------------------------*
* FT: interrupt service routine for timer 3 over/underflow interrupt
* EP: -
* RW: -
* GP: timer_idlefunc = pointer to idle function for timer interrupt
*--------------------------------------------------------------------------*/
void timer3_int(void) interrupt 0x23
{
  timer_counter++;
  
  if (timer_idle_func) (*timer_idle_func) ();
}

/*=========================================================================*
* extern available functions:
*==========================================================================*/

/*--------------------------------------------------------------------------*
* BOOL timer_init(t_timer_idle_func idle_func)                            
*---------------------------------------------------------------------------*
* FT: init timer 3 time base; calculation refers to CPU frequency (20 MHz)
* EP: idlefunc = pointer to idle function, called  from interrupt service 
*                routine (NULL if not used)
* RW: TRUE = function succesfully; FALSE= function failed
* GP: 
*---------------------------------------------------------------------------*/
BOOL timer_init(t_timer_idle_func idle_func)
{ USHORT i, j;
    
  /* init timer 3:  */
  T2CON = 0x0027;          /* reload timer 2 at over/underflow of timer 3 */
  T3CON = 0x0080;            /* timer  mode: 400 ns time base, count down */
  T2    = 25000;              /* init timer 2 register: 10 ms T2 overflow */
  T3    = 25000;              /* init timer 3 register: 10 ms T3 overflow */
  T3IC  = T3INT_INI;           /* init timer 3 interrupt control register */
  T3R   = 1;                 /* init timer 3 enable register: 1 = running */

  timer_counter = TIMER_MIN;                          /* init 10 ms timer */
  IEN = 1;                                    /* general interrupt enable */

  *timer_idle_func = idle_func;                     /* init idle function */

  /* detect number of loops for 20 us delay: */
  for (i=0; i<0x3FF; i++)              /* time measurement for 3FFh loops */
  {
    for (j=0; j<1000; j++) _nop_();     /* 1000 x deceleration (us -> ms) */
  }                                 

  if ((timer_counter > 0x1FF) || (timer_counter < 0x04))
  { 
    timer_looptime=0xFF; return (FALSE);          /* initialization failed */
  } 

  /* get loops for 20 us counter (offset 2 for compensation of outer loop):*/
  timer_looptime = 0x7FF / timer_counter - 2; 

  return (TRUE);
} 

/*--------------------------------------------------------------------------*
* void timer_reset(void)
*---------------------------------------------------------------------------*
* FT: reset timer counter
* EP:  -
* RW: -
* GP: -
*---------------------------------------------------------------------------*/
void timer_reset(void)
{
  t3_ictrl = 0;     /* disable timer 3 interrupt (32 bit variable access) */
  timer_counter = TIMER_MIN;                          /* init 10 ms timer */
  t3_ictrl = 1;                            /* re-enable timer 3 interrupt */
}

/*--------------------------------------------------------------------------*
* TIMER_COUNTER timer_get_10ms(TIMER_COUNTER base_time)
*---------------------------------------------------------------------------*
* FT: calculate time difference between parameter t and current time
* EP: base_time = base time for calculate time difference 
* RW: -
* GP: -
*---------------------------------------------------------------------------*/
TIMER_COUNTER timer_get_10ms(TIMER_COUNTER t)
{ TIMER_COUNTER val;

  t3_ictrl = 0;     /* disable timer 3 interrupt (32 bit variable access) */
  val = timer_counter - t;                   /* calculate time difference */
  t3_ictrl = 1;                            /* re-enable timer 3 interrupt */

  return (val);
}

/*--------------------------------------------------------------------------*
* void timer_delay_10ms(TIMER_COUNTER len)
*---------------------------------------------------------------------------*
* FT: generate delay for len x 10 ms 
* EP: len = amount of 10 ms ticks (result of len = 0 may be 0..1)
* RW: -
* GP: -
*---------------------------------------------------------------------------*/
void timer_delay_10ms(TIMER_COUNTER len)
{ TIMER_COUNTER base_time;

  base_time = timer_get_10ms(0);
  while (timer_get_10ms(base_time) < len);
}


/*--------------------------------------------------------------------------*
* void timer_delay_20us(USHORT len)
*---------------------------------------------------------------------------*
* FT: generate delay for len x 20 us 
* EP: len = amount of 20 us ticks
* RW: -
* GP: -
*---------------------------------------------------------------------------*/
void timer_delay_20us(USHORT len)
{ USHORT i, j;

  for (i=0; i<len; i++)                         /* number of 20 us delays */
  {
     for (j=0; j<timer_looptime; j++);                  /* wait for 20 us */
  }
}





?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆精品视频在线观看免费| 国产成人av电影| 久久久久久一二三区| 精品视频在线免费看| 国产精品一级二级三级| 午夜不卡在线视频| 亚洲欧美一区二区三区久本道91| 欧美一区二区不卡视频| 在线观看国产日韩| 成人性生交大片免费看中文网站| 蜜乳av一区二区三区| 亚洲国产综合在线| 亚洲免费av高清| 国产精品视频一二三区| 欧美精品一区在线观看| 717成人午夜免费福利电影| 在线亚洲欧美专区二区| 成人三级伦理片| 狠狠色狠狠色综合系列| 三级亚洲高清视频| 香蕉av福利精品导航| 一区二区在线免费| 亚洲欧洲av在线| 国产精品视频yy9299一区| 26uuuu精品一区二区| 精品国产一区二区精华| 欧美一区二区三区视频在线 | 日韩成人免费看| 一区二区三区四区av| 国产精品久久看| 国产精品久久看| 国产欧美日韩三区| 欧美国产97人人爽人人喊| 久久综合九色综合欧美就去吻| 日韩欧美国产成人一区二区| 欧美一级片在线看| 欧美一区日韩一区| 日韩一级成人av| 欧美videofree性高清杂交| 欧美一区二区在线看| 欧美一区二区三区男人的天堂| 4438x成人网最大色成网站| 欧美日本一区二区在线观看| 欧美亚洲国产一卡| 欧美日韩精品电影| 日韩一区二区免费视频| 精品国产人成亚洲区| 精品国内二区三区| 国产日韩欧美在线一区| 国产精品乱人伦中文| 亚洲日本在线看| 亚洲综合999| 日本午夜一本久久久综合| 蜜乳av一区二区三区| 国产美女在线精品| 97精品国产97久久久久久久久久久久| 成人av网站免费| 在线免费观看日本欧美| 69精品人人人人| 久久久久久久久久久久久女国产乱| 国产亚洲综合av| 亚洲女人的天堂| 日韩国产一二三区| 国产传媒欧美日韩成人| 色偷偷88欧美精品久久久| 91麻豆精品国产91久久久更新时间| 欧美videos中文字幕| 国产精品久久久久一区| 午夜日韩在线电影| 国产剧情一区在线| 99国产精品一区| 日韩一区二区在线免费观看| 亚洲国产精品av| 亚洲成人在线免费| 粉嫩在线一区二区三区视频| 欧美中文一区二区三区| 欧美sm极限捆绑bd| 亚洲精品乱码久久久久久久久| 另类调教123区| eeuss鲁片一区二区三区| 欧美一区二区三区日韩视频| 欧美国产精品一区| 五月婷婷久久丁香| 国产成人鲁色资源国产91色综 | 日韩精品一区在线观看| 国产精品二三区| 免费看日韩a级影片| www.综合网.com| 日韩一区二区三区免费观看| 亚洲日本在线a| 国产乱码字幕精品高清av| 欧美日韩国产首页| 国产精品妹子av| 免费在线观看一区二区三区| 色婷婷亚洲精品| 国产日韩欧美激情| 久久精品国产99久久6| 91官网在线免费观看| 国产精品天干天干在观线| 久久99日本精品| 欧美美女黄视频| 亚洲欧美日韩人成在线播放| 久久不见久久见免费视频1| 色综合久久中文字幕综合网| 国产片一区二区| 久久国产尿小便嘘嘘尿| 欧美日韩国产美女| 亚洲综合在线第一页| www.成人在线| 久久久久久久久久看片| 久久国产精品无码网站| 欧美精品 日韩| 一二三区精品福利视频| av一区二区三区四区| 久久精品日产第一区二区三区高清版| 蜜桃一区二区三区在线观看| 欧美日精品一区视频| 亚洲欧美日韩国产综合| 成人影视亚洲图片在线| 国产亚洲一区二区三区在线观看| 蜜臀精品一区二区三区在线观看| 欧美日韩国产一级片| 亚洲专区一二三| 欧洲亚洲国产日韩| 亚洲成人免费观看| 欧美视频一区在线| 午夜影院久久久| 69av一区二区三区| 男女性色大片免费观看一区二区| 91麻豆精品91久久久久同性| 视频在线观看91| 欧美一区二区三区思思人| 美国一区二区三区在线播放| 91精品国产入口| 热久久一区二区| 精品国产免费人成电影在线观看四季 | 国产一区二区三区| 国产午夜精品一区二区三区视频| 国产一区二区三区免费播放 | 中文字幕一区在线观看视频| 懂色一区二区三区免费观看 | 久久精品免费观看| 欧美成人性福生活免费看| 麻豆精品久久精品色综合| 精品国产免费一区二区三区四区| 国产一区在线观看视频| 国产精品视频麻豆| 色婷婷国产精品| 天天av天天翘天天综合网| 日韩一区二区三区电影在线观看| 国产伦精一区二区三区| 国产精品亲子伦对白| 色激情天天射综合网| 亚洲电影欧美电影有声小说| 欧美一级在线观看| 国产v综合v亚洲欧| 一区二区三区日本| 5858s免费视频成人| 精东粉嫩av免费一区二区三区| 久久九九久久九九| 色欧美乱欧美15图片| 免费在线看一区| 国产精品丝袜91| 欧美日韩国产精品成人| 国产毛片一区二区| 亚洲女女做受ⅹxx高潮| 欧美一级黄色录像| 高清不卡在线观看av| 亚洲一区在线电影| 欧美mv日韩mv国产网站| voyeur盗摄精品| 日韩影院在线观看| 国产精品色婷婷久久58| 欧美日韩在线直播| 国产精品自拍av| 亚洲成a人v欧美综合天堂下载| 久久综合视频网| 在线亚洲免费视频| 国产真实乱子伦精品视频| 亚洲日本在线看| 久久综合久久综合九色| 在线观看一区二区精品视频| 麻豆精品视频在线观看视频| 亚洲欧美色综合| 久久精品视频在线看| 欧美日韩精品免费| 不卡一区在线观看| 精品一区二区精品| 亚洲一级二级在线| 国产精品素人视频| 精品久久人人做人人爽| 欧美午夜寂寞影院| av资源站一区| 国产美女一区二区| 日本视频在线一区| 亚洲va天堂va国产va久| 亚洲欧美韩国综合色| 国产片一区二区| 久久综合久久99| 日韩欧美一区在线|