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

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

?? upsd3300_timer.c

?? 51單片機I2C源代碼
?? C
字號:
/*------------------------------------------------------------------------------
upsd3300_timer.c

Version:
August 2004 Ver 2.0 - Updated include file names, modified comments.

Dependencies:
FREQ_OSC - used to set up timer properly.  
FREQ_OSC is specified in upsd3300_hardware.h and must be defined
Timer0 ISR makes use of Register Set 1.

Description:
uPSD3300 Timer 0 device driver functions.  This function sets
up timer 0 as a timer used to count 10ms periods used to
delay and timing functions.


Copyright (c) 2004 STMicroelectronics Inc.

This example demo code is provided as is and has no warranty,
implied or otherwise.  You are free to use/modify any of the provided
code at your own risk in your applications with the expressed limitation
of liability (see below) so long as your product using the code contains
at least one uPSD product (device).

LIMITATION OF LIABILITY:   NEITHER STMicroelectronics NOR ITS VENDORS OR 
AGENTS SHALL BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF USE, LOSS OF DATA,
INTERRUPTION OF BUSINESS, NOR FOR INDIRECT, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES OF ANY KIND WHETHER UNDER THIS AGREEMENT OR
OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
------------------------------------------------------------------------------*/

#include "upsd3300.h"
#include "upsd3300_hardware.h"
#include "upsd3300_timer.h"

/*------------------------------------------------------------------------------
              Global Variable Declarations
------------------------------------------------------------------------------*/
static unsigned int idata timer0_tick;
static unsigned int idata timer0_value;

/*------------------------------------------------------------------------------
timer0_isr()

This function is an interrupt service routine for TIMER 0.  It should never
be called by a C or assembly function.  It will be executed automatically
when TIMER 0 overflows.

This ISR stops timer0, adjusts the counter so that another interrupt occurs in
10ms, and then restarts the timer.
------------------------------------------------------------------------------*/
static void timer0_isr (void) interrupt TF0_VECTOR using 1
{
    TR0 = 0;                      /* stop timer 0 */
    TL0 = (timer0_value & 0x00FF);
    TH0 = (timer0_value >> 8);
    TR0 = 1;                      /* start timer 0 */
    timer0_tick++;                // Increment global var timer_tick (number of 10ms ticks)
}

/*------------------------------------------------------------------------------
timer0_init();

This function enables TIMER 0.  TIMER 0 will generate a synchronous interrupt
once every 100Hz (10ms).
------------------------------------------------------------------------------*/
void timer0_init (void)
{
    EA = 0;                 /* disable interrupts */
    timer0_tick = 0;
    TR0 = 0;                /* stop timer 0 */
    TMOD &= 0xF0;           /* clear timer 0 mode bits - bottom 4 bits */
    TMOD |= 0x01;           /* put timer 0 into 16-bit no prescale */

    // Calculate timer rollover based on FREQ_OSC to be 10ms periods (100hz)
    timer0_value = 0x10000 - ( ((FREQ_OSC * 5L) / 6L) - 17L);
    TL0 = (timer0_value & 0x00FF);
    TH0 = (timer0_value >> 8);

    PT0 = 1;                /* set high priority interrupt for timer 0 */
    ET0 = 1;                /* enable timer 0 interrupt */
    TR0 = 1;                /* start timer 0 */
    EA = 1;             /* enable interrupts */
}


/*------------------------------------------------------------------------------
timer0_count ();

This function returns the current Timer 0 tick count.
------------------------------------------------------------------------------*/
unsigned int timer0_count (void)
{
    unsigned int t;

    EA = 0;               // disable interrupts to read a non-changing value
    t = timer0_tick;
    EA = 1;               // enable interrupts
    return(t);
}

/*------------------------------------------------------------------------------
timer0_delay (count);

This is a delay function that waits for the specified number of timer 0 ticks to
pass before returning.

count   - unsigned int
        - the number of timer ticks to wait before returning from function.
------------------------------------------------------------------------------*/
void timer0_delay (unsigned int count)
{
    unsigned int start_count;

    start_count = timer0_count(); /* get the start count */

    while ((timer0_count() - start_count) <= count)   /* wait for count "ticks" */
    {
        PCON |= 0x01;    // Idle MCU to wait for timer tick
    }
}


/*------------------------------------------------------------------------------
delay_10ms ();

This is a 10 ms delay function.
------------------------------------------------------------------------------*/
void delay_10ms()
{
    timer0_delay(1);
}

/*------------------------------------------------------------------------------
delay_1sec ();

This is a 1 second delay function.
------------------------------------------------------------------------------*/
void delay_1sec(void)
{
    timer0_delay(100);
}

/*------------------------------------------------------------------------------
delay_2sec ();

This is a 2 second delay function.
------------------------------------------------------------------------------*/
void delay_2sec(void)
{
    delay_1sec();
    delay_1sec();
}

/*------------------------------------------------------------------------------
delay_10sec ();

This is a 10 second delay function.
------------------------------------------------------------------------------*/
void delay_10sec(void)
{
    delay_2sec();
    delay_2sec();
    delay_2sec();
    delay_2sec();
    delay_2sec();
}

/*------------------------------------------------------------------------------
delay_0_5sec ();

This is a 0.5 second delay function.
------------------------------------------------------------------------------*/
void delay_0_5sec(void)
{
    timer0_delay(50);
}

/*------------------------------------------------------------------------------
delay0_1sec ();

This is a 0.1 second delay function.
------------------------------------------------------------------------------*/
void delay_0_1sec(void)
{
    timer0_delay(10);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕欧美一区| 成人免费视频国产在线观看| 久色婷婷小香蕉久久| 99re免费视频精品全部| 日韩视频一区二区三区在线播放| 亚洲欧洲国产日本综合| 精品一区二区在线视频| 欧美日韩一本到| 国产精品电影一区二区| 精彩视频一区二区三区| 欧美电影在线免费观看| 1024成人网色www| 国产精品自产自拍| 91精品国产综合久久国产大片| 中国av一区二区三区| 韩国成人精品a∨在线观看| 欧美日韩卡一卡二| 伊人开心综合网| youjizz国产精品| 国产喷白浆一区二区三区| 麻豆精品在线看| 91.麻豆视频| 亚洲在线观看免费视频| 色综合久久综合网欧美综合网| 久久综合九色欧美综合狠狠| 免费成人在线影院| 日韩一区二区免费视频| 日韩和欧美的一区| 欧美日韩一区二区三区四区| 亚洲精品免费一二三区| 91黄色小视频| 亚洲图片欧美视频| 欧美日韩大陆一区二区| 亚洲成人www| 欧美群妇大交群的观看方式| 亚洲第一搞黄网站| 欧美精品一卡二卡| 青青草91视频| 日韩一区二区在线看| 裸体一区二区三区| 精品人伦一区二区色婷婷| 久久99热99| 久久久久国色av免费看影院| 国产高清精品网站| 亚洲欧洲在线观看av| 色国产综合视频| 一区二区成人在线| 3d成人h动漫网站入口| 蜜臂av日日欢夜夜爽一区| 欧美电影免费提供在线观看| 国产自产v一区二区三区c| 国产亚洲综合在线| 99久久99久久精品免费看蜜桃| 亚洲视频在线观看三级| 欧美日韩国产综合一区二区三区| 青椒成人免费视频| 日本一区二区三区国色天香 | bt7086福利一区国产| 亚洲日本va午夜在线影院| 欧美日韩视频在线观看一区二区三区| 亚洲高清视频的网址| 日韩美一区二区三区| 成人免费观看男女羞羞视频| 自拍av一区二区三区| 欧美精品在线观看播放| 国产精品亚洲午夜一区二区三区 | 日韩一区二区高清| 国产成人在线网站| 亚洲午夜久久久久久久久电影网| 日韩午夜在线观看视频| 粉嫩av一区二区三区粉嫩| 亚洲高清久久久| 久久精品无码一区二区三区| 在线亚洲一区二区| 激情图区综合网| 亚洲欧美另类久久久精品| 日韩欧美激情四射| 在线观看一区二区精品视频| 加勒比av一区二区| 亚洲777理论| 国产精品久久久久久久第一福利 | 在线中文字幕不卡| 国产精品亚洲成人| 亚洲第一二三四区| 日韩伦理av电影| 国产喂奶挤奶一区二区三区| 欧美视频一区二区三区在线观看| 国产真实乱子伦精品视频| 亚洲成人综合网站| 亚洲卡通动漫在线| 国产午夜久久久久| 欧美一区二区不卡视频| 在线精品视频一区二区| 成人app软件下载大全免费| 青椒成人免费视频| 午夜精品一区二区三区电影天堂 | 国产精品系列在线观看| 日韩av一区二区三区| 一区二区三区在线视频免费| 国产免费成人在线视频| 久久综合狠狠综合久久综合88| 欧美午夜精品免费| 91同城在线观看| 成人免费毛片高清视频| 国产精品18久久久久久久久 | 欧美疯狂性受xxxxx喷水图片| proumb性欧美在线观看| 国产成人免费视| 国内精品免费**视频| 午夜精品久久久久| 亚洲成人综合网站| 亚洲第一在线综合网站| 亚洲成av人片| 性感美女极品91精品| 亚洲444eee在线观看| 日韩精品亚洲一区二区三区免费| 一区二区三区自拍| 亚洲成av人片一区二区梦乃| 午夜精品爽啪视频| 日韩电影网1区2区| 另类小说视频一区二区| 美女网站在线免费欧美精品| 国产性做久久久久久| 欧美日韩一级二级三级| 在线观看一区二区视频| 一本色道久久综合狠狠躁的推荐| 粉嫩蜜臀av国产精品网站| 亚洲欧美另类在线| 裸体歌舞表演一区二区| 日本强好片久久久久久aaa| 日本麻豆一区二区三区视频| 麻豆久久久久久久| 成人性视频网站| 91亚洲国产成人精品一区二区三| 972aa.com艺术欧美| 欧美三级蜜桃2在线观看| 欧美一区2区视频在线观看| 久久美女高清视频| 综合久久给合久久狠狠狠97色| 一级日本不卡的影视| 日本欧美肥老太交大片| 国产露脸91国语对白| 91色在线porny| 精品视频999| 久久伊人中文字幕| 亚洲日本一区二区| 日本va欧美va精品| 国产999精品久久| 欧美视频一区二区三区在线观看| 日韩欧美在线1卡| 亚洲欧洲一区二区在线播放| 亚洲国产欧美在线人成| 久久精品噜噜噜成人88aⅴ| 丰满亚洲少妇av| 欧美性一区二区| ww久久中文字幕| 亚洲成人自拍网| 成人免费av在线| 91精品国产欧美一区二区| 国产精品久久夜| 日本视频一区二区| 99精品视频在线播放观看| 日韩欧美一级片| 综合欧美亚洲日本| 蜜臀国产一区二区三区在线播放| 99re热这里只有精品免费视频| 欧美巨大另类极品videosbest | 亚洲一区二三区| 国产在线一区观看| 欧美浪妇xxxx高跟鞋交| 国产精品不卡在线| 国精产品一区一区三区mba桃花 | 18成人在线观看| 精品在线播放免费| 欧美日韩国产中文| 成人免费在线播放视频| 国内精品国产成人国产三级粉色 | 性欧美大战久久久久久久久| www.亚洲在线| 国产日韩v精品一区二区| 青青青爽久久午夜综合久久午夜 | 欧美日韩情趣电影| 国产精品成人在线观看| 狠狠色综合播放一区二区| 欧美精品视频www在线观看| 亚洲欧美偷拍三级| 波多野结衣在线aⅴ中文字幕不卡| 日韩精品在线一区| 日本美女视频一区二区| 欧美午夜在线观看| 亚洲综合色网站| 97成人超碰视| 中文字幕佐山爱一区二区免费| 国产精品69久久久久水密桃| 日韩欧美第一区| 美腿丝袜一区二区三区| 91精品国产色综合久久不卡电影 | 国产精品电影院| 高清在线不卡av| 国产精品视频麻豆|