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

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

?? upsd3300_timer.c

?? UPSD單片機驅動程序
?? C
字號:
/*------------------------------------------------------------------------------
upsd3300_timer.c

Version:
November 2, 2004 - commented out functions not used by the PWM_ADC example
to reduce the total code size of the demo.

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一区二区三区免费野_久草精品视频
亚洲丝袜另类动漫二区| 欧美喷潮久久久xxxxx| 亚洲成人一区二区在线观看| 国产色产综合产在线视频| 福利一区福利二区| 麻豆成人久久精品二区三区红| 一区二区三区四区精品在线视频| 日韩视频一区在线观看| 欧美三级三级三级| 欧洲亚洲精品在线| 91麻豆成人久久精品二区三区| 国产成人亚洲精品狼色在线| 国内欧美视频一区二区| 美女任你摸久久| 午夜国产不卡在线观看视频| 亚洲图片自拍偷拍| 亚洲成人激情自拍| 日韩黄色小视频| 婷婷激情综合网| 青青草成人在线观看| 国产精品免费av| 国产精品女同一区二区三区| 国产精品伦理在线| 国产精品不卡一区| 亚洲男人的天堂一区二区| 久久久不卡影院| 国产精品久久久久久久久晋中| 国产精品视频你懂的| 国产精品国产三级国产a| 亚洲视频免费在线| 亚洲va欧美va天堂v国产综合| 婷婷久久综合九色国产成人| 蜜桃视频一区二区| 另类小说图片综合网| 国产伦精品一区二区三区视频青涩| 久久精品国产久精国产| 麻豆精品在线播放| 国产精品综合二区| 欧美主播一区二区三区美女| 久久久亚洲综合| 性感美女极品91精品| 成人av集中营| www国产亚洲精品久久麻豆| 一区二区在线观看视频 | 91视视频在线观看入口直接观看www | 色综合天天综合网国产成人综合天| 欧美日韩在线播放| 亚洲色图19p| 岛国一区二区三区| 亚洲精品一区在线观看| 午夜电影一区二区三区| av资源网一区| 久久精品夜色噜噜亚洲aⅴ| 2021中文字幕一区亚洲| 三级久久三级久久久| 97久久精品人人做人人爽50路| 欧美不卡视频一区| 日本三级亚洲精品| 欧美色爱综合网| 亚洲欧美另类图片小说| 国产成人日日夜夜| 精品国产乱码久久久久久图片| 日韩中文字幕不卡| 色噜噜偷拍精品综合在线| 国产精品乱人伦| 国产99久久久国产精品免费看| 欧美草草影院在线视频| 日本最新不卡在线| 正在播放亚洲一区| 亚洲va欧美va天堂v国产综合| 在线精品视频免费观看| 亚洲视频一区在线| 91亚洲精华国产精华精华液| 综合网在线视频| 99久久精品国产精品久久| 国产精品剧情在线亚洲| 国产不卡视频一区| 国产精品免费视频观看| eeuss鲁片一区二区三区| 国产精品色噜噜| 99精品欧美一区二区蜜桃免费 | 欧美一卡二卡三卡四卡| 天天综合色天天| 欧美高清性hdvideosex| 日韩av电影免费观看高清完整版 | 日韩成人一级大片| 欧美一区永久视频免费观看| 日本特黄久久久高潮| 精品免费视频一区二区| 国产一区二区三区高清播放| 国产亚洲成av人在线观看导航 | 亚洲成人动漫一区| 欧美一区国产二区| 粉嫩一区二区三区在线看| 中文字幕免费不卡| 99这里都是精品| 亚洲成人在线观看视频| 欧美sm极限捆绑bd| 波多野洁衣一区| 亚洲一区二区欧美| 精品久久久三级丝袜| 国产jizzjizz一区二区| 亚洲乱码国产乱码精品精小说| 欧美日韩国产小视频在线观看| 麻豆高清免费国产一区| 久久久久国色av免费看影院| 91网站最新地址| 蜜臀久久99精品久久久久宅男| 久久久久久久精| 91久久一区二区| 美女一区二区视频| 亚洲视频你懂的| 欧美大片顶级少妇| 日本伦理一区二区| 麻豆91精品视频| 一区二区视频在线看| 欧美成人一级视频| 91视视频在线观看入口直接观看www | 精品久久久久av影院| 成人免费毛片高清视频| 日韩电影在线免费看| 国产精品天干天干在线综合| 欧美日本在线视频| av亚洲精华国产精华精| 麻豆国产一区二区| 亚洲成人中文在线| 亚洲欧洲日产国码二区| 欧美一区二区三区啪啪| 在线亚洲高清视频| 成人黄色小视频在线观看| 麻豆91在线观看| 亚洲.国产.中文慕字在线| 中文字幕中文字幕中文字幕亚洲无线| 欧美一级片在线| 欧美日韩免费电影| 91香蕉视频在线| 成人性生交大片免费看中文网站| 美国十次综合导航| 日韩黄色在线观看| 午夜日韩在线电影| 亚洲一区二区视频在线观看| 欧美国产成人在线| 久久久91精品国产一区二区三区| 日韩欧美久久久| 日韩美女天天操| 91精品国产aⅴ一区二区| 欧美日韩国产一区二区三区地区| 91麻豆免费视频| 91丝袜呻吟高潮美腿白嫩在线观看| 国产一区二区剧情av在线| 久久99九九99精品| 国产中文字幕精品| 国产一区二区日韩精品| 国产河南妇女毛片精品久久久| 国产成人自拍网| 成人精品亚洲人成在线| aaa欧美日韩| 97久久超碰精品国产| a亚洲天堂av| 日本韩国一区二区三区| 99精品黄色片免费大全| 在线区一区二视频| 91精品午夜视频| 欧美一区二区观看视频| 精品日韩成人av| 国产午夜精品一区二区三区嫩草| 国产亚洲综合av| 中文字幕一区日韩精品欧美| 国产精品欧美精品| 成人欧美一区二区三区在线播放| 亚洲三级小视频| 亚洲成人av福利| 久久精品99国产精品| 国产成人一区在线| 91热门视频在线观看| 欧美日韩精品一二三区| 日韩精品一区二区三区视频在线观看 | 7777女厕盗摄久久久| 精品日韩欧美一区二区| 国产精品久久久久7777按摩| 亚洲综合色丁香婷婷六月图片| 首页国产欧美日韩丝袜| 国产成人午夜精品影院观看视频| 一本大道久久a久久精品综合| 欧美欧美欧美欧美| 国产日韩av一区二区| 亚洲国产日韩a在线播放性色| 日本美女一区二区三区视频| 高清国产一区二区| 欧美福利一区二区| 国产精品久久久久久久久搜平片 | 91免费视频观看| 日韩精品一区二区三区视频| 中文字幕一区二区三区乱码在线| 日韩avvvv在线播放| 91丨porny丨国产| 久久只精品国产| 日韩福利电影在线| 99久久久精品免费观看国产蜜| 日韩一级片网站|