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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? timer.c

?? TQ公司的STK16x開發系統的源碼
?? 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 */
  }
}





?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久先锋影音av鲁色资源网| 色婷婷综合中文久久一本| 国产精品一区二区果冻传媒| 精品蜜桃在线看| 亚洲免费观看高清完整版在线观看熊| 日韩激情在线观看| 99久久婷婷国产综合精品电影| 日韩一区二区在线观看视频播放| 亚洲欧洲另类国产综合| 国产伦精品一区二区三区免费迷 | 成人一区二区三区| 制服丝袜中文字幕亚洲| 亚洲免费电影在线| 成人免费黄色大片| 日本一区二区综合亚洲| 激情文学综合丁香| 欧美日韩一区二区三区四区 | 韩日av一区二区| 欧美日本在线视频| 一区二区三区丝袜| 99久久亚洲一区二区三区青草| 2020日本不卡一区二区视频| 日韩一区精品视频| 欧美性受极品xxxx喷水| 亚洲精品视频在线| 91蝌蚪porny| 国产精品美日韩| 国产a区久久久| 久久精品无码一区二区三区| 韩国三级电影一区二区| 亚洲精品一区二区三区福利 | 亚洲欧美日韩中文字幕一区二区三区| 国产高清一区日本| 国产人久久人人人人爽| 国产精品18久久久久| 久久九九久久九九| 国产福利一区二区三区视频在线 | 欧美精品tushy高清| 亚洲va欧美va国产va天堂影院| 在线观看91精品国产入口| 欧美精品乱码久久久久久按摩| av亚洲精华国产精华精华| 国产午夜精品一区二区三区四区| 麻豆精品国产传媒mv男同| 日韩一区二区在线播放| 蜜桃视频在线观看一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 国产91高潮流白浆在线麻豆| 中文字幕第一区综合| 波多野结衣精品在线| 亚洲乱码日产精品bd| 欧美撒尿777hd撒尿| 美国十次了思思久久精品导航| 制服丝袜中文字幕亚洲| 国产在线日韩欧美| 最新久久zyz资源站| 欧美四级电影网| 九色综合狠狠综合久久| 国产日韩欧美亚洲| 欧美调教femdomvk| 国产一区在线精品| 一二三四社区欧美黄| 日韩精品专区在线影院重磅| 国产综合一区二区| 综合色中文字幕| 欧美人狂配大交3d怪物一区| 国产精品资源网| 亚洲精品成a人| 精品久久国产老人久久综合| 91小视频免费看| 美女在线视频一区| 亚洲桃色在线一区| 日韩免费一区二区三区在线播放| www.日韩av| 免费看日韩a级影片| 国产精品国产三级国产专播品爱网| 欧美午夜片在线观看| 国产一区二区三区综合| 亚洲激情图片小说视频| 久久只精品国产| 欧美日韩视频不卡| 99精品久久只有精品| 久久国产精品99精品国产| 亚洲欧洲成人精品av97| 欧美成人精精品一区二区频| 色妞www精品视频| 国产在线精品免费| 91免费在线看| 久久精品国产第一区二区三区| 国产精品电影一区二区| 日韩精品专区在线影院观看 | 国产校园另类小说区| 欧美乱熟臀69xxxxxx| 91免费看片在线观看| 国产精品亚洲综合一区在线观看| 日韩制服丝袜先锋影音| 一区二区三区四区亚洲| 中文字幕欧美激情| 久久久青草青青国产亚洲免观| 欧美日本一区二区三区四区| 色综合久久综合| 成人av午夜影院| 欧美午夜精品电影| 欧洲视频一区二区| 成人av片在线观看| 成人毛片在线观看| 国产成人aaa| 国产乱理伦片在线观看夜一区| 久久国产人妖系列| 美女被吸乳得到大胸91| 精品久久免费看| 91小宝寻花一区二区三区| 国产99精品视频| 国产精品一区在线观看你懂的| 老色鬼精品视频在线观看播放| 日韩激情视频网站| 免费成人在线网站| 精品在线你懂的| 国产一区视频网站| 国产成人精品亚洲日本在线桃色 | 亚洲午夜在线视频| 亚洲高清免费在线| 亚洲成人精品一区| 亚洲韩国精品一区| 日韩精品亚洲专区| 免费成人结看片| 国产乱码精品一区二区三区av | 亚洲精品视频在线看| 一区二区三区在线视频播放 | 亚洲丰满少妇videoshd| 亚洲国产精品自拍| 日韩不卡一区二区| 国产综合久久久久影院| 高清不卡在线观看| 色婷婷综合久久久久中文| 欧美日韩精品是欧美日韩精品| 91精品国产欧美一区二区成人| 亚洲精品一区二区三区在线观看| 久久精品人人做人人爽97| 国产精品入口麻豆原神| 亚洲男人天堂一区| 日本aⅴ亚洲精品中文乱码| 国产在线播放一区二区三区| 成人avav在线| 欧美剧情片在线观看| 欧美成人艳星乳罩| 国产精品久久精品日日| 日韩黄色在线观看| 粉嫩绯色av一区二区在线观看| 欧美性大战xxxxx久久久| 精品剧情v国产在线观看在线| 中文字幕人成不卡一区| 日本中文字幕一区二区视频| 成人小视频在线| 欧美精品精品一区| 国产精品美女久久久久久2018 | 中文字幕日本乱码精品影院| 日韩在线a电影| 91浏览器入口在线观看| 精品精品欲导航| 亚洲黄色小视频| 国产美女久久久久| 精品视频一区二区不卡| 中文子幕无线码一区tr| 日韩成人一区二区三区在线观看| 99久久99久久精品国产片果冻 | 欧美视频完全免费看| 久久精品综合网| 日本强好片久久久久久aaa| 波多野结衣亚洲| 久久免费看少妇高潮| 亚洲不卡av一区二区三区| 99久久精品国产毛片| 久久久国产午夜精品| 麻豆中文一区二区| 欧美视频在线观看一区二区| 国产精品卡一卡二| 激情五月婷婷综合网| 欧美高清视频www夜色资源网| 国产精品麻豆视频| 国产伦精品一区二区三区免费| 91超碰这里只有精品国产| 亚洲精品中文在线影院| 成人avav影音| 国产精品你懂的在线欣赏| 激情综合网av| 日韩美女一区二区三区| 日韩不卡免费视频| 91麻豆精品国产91久久久久| 一区二区日韩av| 色噜噜夜夜夜综合网| 国产精品理论在线观看| 成人97人人超碰人人99| 日本一区二区三级电影在线观看| 久久精品国产99久久6| 91精品国产色综合久久| 奇米色一区二区| 91精品国产欧美一区二区18| 人妖欧美一区二区| 欧美一级高清片在线观看|