亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
www国产精品av| 日韩亚洲欧美成人一区| 奇米四色…亚洲| 香蕉成人伊视频在线观看| 亚洲自拍欧美精品| 午夜精品爽啪视频| 偷窥少妇高潮呻吟av久久免费| 欧美国产综合色视频| 国产欧美日韩综合| 亚洲天堂精品视频| 久久久久成人黄色影片| 国产精品美女一区二区三区 | 亚洲欧美二区三区| 中文字幕综合网| 亚洲一区二区四区蜜桃| 美女www一区二区| 国产剧情在线观看一区二区| 成人av网站免费| 色呦呦一区二区三区| 欧美日韩第一区日日骚| 欧美一级欧美一级在线播放| 2017欧美狠狠色| 中文字幕亚洲电影| 亚洲一区视频在线| 久久99国产精品免费网站| 国产一区日韩二区欧美三区| av成人老司机| 91麻豆精品91久久久久久清纯| 欧美va在线播放| 国产精品久久久久久久蜜臀| 亚洲第一搞黄网站| 韩国av一区二区三区| 99国产精品99久久久久久| 欧美美女一区二区| 久久久久国产精品麻豆| 婷婷开心激情综合| 国产精品一卡二| 欧美日韩在线综合| 中文字幕亚洲精品在线观看| 日韩av在线免费观看不卡| 成人一级黄色片| 制服丝袜激情欧洲亚洲| 亚洲私人影院在线观看| 久久精品免费看| 欧洲精品在线观看| 国产亚洲1区2区3区| 日韩中文字幕1| 99久久精品免费| 欧美精品一区视频| 日韩精品三区四区| 99热99精品| 国产午夜精品一区二区| 日韩精品成人一区二区在线| 成人app在线观看| www成人在线观看| 日本欧美大码aⅴ在线播放| 99天天综合性| 国产精品日韩精品欧美在线| 精品一区二区三区蜜桃| 欧美系列在线观看| 亚洲欧美日韩国产中文在线| 国产精品99久久久久| 欧美v国产在线一区二区三区| 亚洲国产成人tv| 91福利在线播放| 有码一区二区三区| 99在线视频精品| 中文字幕日韩av资源站| 成人激情av网| 国产精品狼人久久影院观看方式| 国产一区二区三区黄视频 | 国产在线一区观看| 精品欧美乱码久久久久久| 青青草精品视频| 91精品久久久久久久99蜜桃| 亚洲成人av一区二区| 欧美妇女性影城| 热久久国产精品| 精品国产一区二区在线观看| 精品影视av免费| 久久久久九九视频| av亚洲精华国产精华精华| 日韩毛片在线免费观看| 欧美视频完全免费看| 日韩电影在线看| wwwwxxxxx欧美| 国产自产v一区二区三区c| wwwwww.欧美系列| 国产成人精品免费视频网站| 国产欧美日韩麻豆91| www.欧美色图| 亚洲制服欧美中文字幕中文字幕| 在线亚洲一区二区| 奇米色一区二区三区四区| 久久人人超碰精品| jlzzjlzz亚洲女人18| 亚洲成人动漫在线免费观看| 91精品国产色综合久久不卡电影 | 精品国产乱码久久久久久影片| 精品亚洲porn| 中文字幕不卡在线观看| 在线观看日韩电影| 国精产品一区一区三区mba视频| 欧美成人aa大片| 成人av先锋影音| 日韩精品一二三四| 中文在线资源观看网站视频免费不卡 | 亚洲精品国产a| 欧美一级二级在线观看| 成人免费黄色大片| 亚洲va欧美va人人爽| 久久影院电视剧免费观看| 在线观看欧美精品| 国产一区福利在线| 亚洲国产精品一区二区久久恐怖片 | 国产日产亚洲精品系列| 在线观看不卡视频| 久久国产精品色婷婷| 中文字幕在线不卡| 日韩欧美区一区二| 日本高清视频一区二区| 久久精品国产亚洲一区二区三区| 亚洲天堂免费看| 国产亚洲午夜高清国产拍精品| 欧美色图12p| 成人av中文字幕| 国产精品一级黄| 日本不卡一区二区三区高清视频| 欧美国产日产图区| 欧美va天堂va视频va在线| 色综合天天视频在线观看| 国产一区 二区 三区一级| 三级一区在线视频先锋 | 日韩avvvv在线播放| 亚洲男同性视频| 国产精品国产三级国产有无不卡| 日韩免费高清视频| 7777精品伊人久久久大香线蕉经典版下载| av一区二区三区在线| 国产成人免费网站| 久久99热狠狠色一区二区| 日韩av不卡一区二区| 日韩精品一二三区| 天天综合色天天| 亚洲成人7777| 一区二区三区四区亚洲| 国产精品对白交换视频| 日本一区二区视频在线| 久久精品免费在线观看| 精品成人一区二区三区| 日韩欧美电影一二三| 日韩免费一区二区三区在线播放| 884aa四虎影成人精品一区| 欧美亚一区二区| 在线看日本不卡| 欧美精品丝袜中出| 91精品国产综合久久国产大片| 欧美精品久久久久久久多人混战 | 亚洲品质自拍视频| 中文字幕制服丝袜成人av| 国产精品色哟哟| 国产精品美女一区二区三区| 日韩一区欧美小说| 一个色在线综合| 亚洲国产欧美在线人成| 婷婷夜色潮精品综合在线| 蜜臀av一区二区在线免费观看| 狠狠色伊人亚洲综合成人| 成人永久免费视频| 色一情一乱一乱一91av| 欧美日韩国产欧美日美国产精品| 欧美剧情电影在线观看完整版免费励志电影 | 欧美在线影院一区二区| 欧美日韩免费高清一区色橹橹| 欧美精品tushy高清| 日韩视频永久免费| 国产精品日韩精品欧美在线| 一区二区在线看| 国内成人免费视频| 懂色av一区二区三区蜜臀| 91浏览器入口在线观看| 91精品国产综合久久久久久久 | 国产精品久久久久久久久久免费看| 1000精品久久久久久久久| 亚洲第一av色| 国产一区美女在线| 色综合天天狠狠| 精品理论电影在线| 日韩美女视频一区| 久久精品国产成人一区二区三区 | 欧美成人官网二区| 国产精品网站导航| 蜜桃av一区二区| 91在线播放网址| 精品少妇一区二区三区在线播放 | 粉嫩av一区二区三区| 精品视频在线免费看| 国产日韩欧美高清| 麻豆极品一区二区三区| 91麻豆蜜桃一区二区三区|