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

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

?? timer_soft.c

?? 采用USB設計的數據采集系統, PC及FIRMWARE代碼
?? C
字號:
/*C**************************************************************************
* NAME:         timer_soft.c
*----------------------------------------------------------------------------
* Copyright (c) 2003 Atmel.
*----------------------------------------------------------------------------
* RELEASE:      c5131-usb-kbd-light-1_0_2      
* REVISION:     1.8     
*----------------------------------------------------------------------------
* PURPOSE: 
* This file controls the temporizations of the application. 
* The tempo value is a define symbol in c51_time.h file.
* The oscillator value is a parameter in c51_time.h file.
*****************************************************************************/

/*_____ I N C L U D E S ____________________________________________________*/
#include "config.h"
#include "timer_soft.h"
#include "usb_drv.h"
long int buf2[4];
//int i;

/*_____ M A C R O S ________________________________________________________*/


/*_____ D E F I N I T I O N S ______________________________________________*/
/*V**************************************************************************
* NAME: gl_soft_timer_tick
*----------------------------------------------------------------------------
* PURPOSE: 
* Number of ms since mcu reset.
* This variable is used by soft timers, it must be updated periodically (usually
* by timer interrupt routine).
*****************************************************************************/
volatile Uint32 data gl_soft_timer_tick;

/*_____ D E C L A R A T I O N S ____________________________________________*/

/*F**************************************************************************
* NAME: tempo
*----------------------------------------------------------------------------
* PARAMS:
* delay: tempo value in ms
* return:   none
*----------------------------------------------------------------------------
* PURPOSE: 
* This function manages the temporization.
*----------------------------------------------------------------------------
* EXAMPLE:
* tempo(TIMER_1_S); // Wait 1 sec.
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
void tempo(Uint16 delay)
{
register Timer16s timer;

timer=set_timer16s(delay);
while (!std_timeout16s(timer));
}


#ifndef I_HAVE_SETUP_SOFT_TIMER_TICK
Uint16 gl_reminder_inc_ms;

#ifdef SOFT_TIMER_CUSTOM_FOSC
Uint16  REMINDER_INC_MS;

/*F**************************************************************************
* NAME: reload_TH0
*----------------------------------------------------------------------------
* PARAMS:
* return:   value to load on TH0
*----------------------------------------------------------------------------
* PURPOSE: 
* This function calculate the value to load in TH0 when FOSC is custom (FOSC
* is not a precomputed value).
* This function update REMINDER_INC_MS to keep accuracy of timers.
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
Byte reload_TH0(void)
{
Byte b;
Byte n;

REMINDER_INC_MS=((Uint16)FOSC/(Uint16)12*(Uint16)INC_MS);
b=(REMINDER_INC_MS>>8);
     if (b&128) b=0;
else if (b&64)  b=128;
else if (b&32)  b=192;
else if (b&16)  b=224;
else if (b&8)   b=240;
else if (b&4)   b=248;
else if (b&2)   b=252;
else if (b&1)   b=254;
else            b=255;
REMINDER_INC_MS=((Uint16)b<<8)-REMINDER_INC_MS;
// Do REMINDER_INC_MS*12*65536/FOSC with the maximum accuracy<=>REMINDER_INC_MS*3*2^18/FOSC
for (n=0;n<18;n++)
  {
  if (REMINDER_INC_MS&32768)
    {
    REMINDER_INC_MS/=FOSC;
    REMINDER_INC_MS*=3;
    }
  else REMINDER_INC_MS<<=1;
  }
return b;
}
#endif


/*F**************************************************************************
* NAME: init_soft_timers
*----------------------------------------------------------------------------
* PARAMS:
* return:   none
*----------------------------------------------------------------------------
* PURPOSE:
* This function initialise the soft timer library.  
*----------------------------------------------------------------------------
* EXAMPLE:
* init_soft_timer();
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
void init_soft_timers (void)
{
gl_soft_timer_tick=0;
gl_reminder_inc_ms=0;
TL0 = 0;
TH0 = RELOAD_TH0;
TMOD |= 0x01; // timer0 is mode1 : 16 bits
Set_timer0_x1_mode(); // timer0 always in x1 mode, even if x2 mode is set for std clk.
TR0=1;
Enable_interrupt(); //Enable global interrupt
ET0=1;



}
/*
void timer1_init(void)
{
TMOD&=0x0F;
TL1=0;
TH1=0;
ET1=1;
EA=1;
TR1=1;
}
*/
void data_init(void)
{
buf2[0]=0;
buf2[1]=0;
buf2[2]=0;
buf2[3]=0;
}
void data_deal(void)
{
buf2[0]=buf2[0]+2;
if(buf2[0]>10)buf2[0]=0;
buf2[1]=buf2[1]+2;
if(buf2[1]>10)buf2[1]=0;
buf2[2]=buf2[2]+2;
if(buf2[2]>10)buf2[2]=0;
buf2[3]=buf2[3]+2;
if(buf2[3]>10)buf2[3]=0;
Usb_select_ep(1);
Usb_write_byte(buf2[0]);
Usb_write_byte(buf2[1]);
Usb_write_byte(buf2[2]);
Usb_write_byte(buf2[3]);
  Usb_set_tx_ready();
//WriteEp(1,4,buf2);
}
/*void timer1_interrupt(void) interrupt 3
{
buf[0]=buf[0]+1;
buf[1]=buf[1]+1;
buf[2]=buf[2]+1;
buf[3]=buf[3]+1;
WriteEp(1,4,buf);
}
*?
/*F**************************************************************************
* NAME: Timer0_interrupt
*----------------------------------------------------------------------------
* PARAMS:
* return:   none
*----------------------------------------------------------------------------
* PURPOSE: 
* This function is the interrupt program for the timer 0.
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
Interrupt (void Timer0_interrupt(void),IRQ_T0)
{
// TIMER0_OVF, interrupt cleared by hardware
TH0|=RELOAD_TH0; // Update Physical Clock ( logical OR to keep accuracy after long IT )
// Update gl_soft_timer_tick : number of ms till Reset, REMINDER_INC_MS to keep accuracy
gl_soft_timer_tick+=(((gl_reminder_inc_ms+=REMINDER_INC_MS)<REMINDER_INC_MS)?INC_MS+1:INC_MS);



}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91九色最新地址| 69堂成人精品免费视频| 亚洲国产另类av| 欧美精品一区二区在线播放| 色av成人天堂桃色av| 国产精品69久久久久水密桃| 亚洲高清视频在线| 中文字幕中文字幕在线一区| 日韩欧美中文字幕一区| 在线亚洲欧美专区二区| 成人毛片视频在线观看| 人人狠狠综合久久亚洲| 亚洲午夜精品久久久久久久久| 久久无码av三级| 欧美高清视频一二三区| 97se亚洲国产综合在线| 国产成人无遮挡在线视频| 乱中年女人伦av一区二区| 伊人婷婷欧美激情| 中文字幕一区二区三区乱码在线| 日韩免费视频一区| 欧美日韩你懂得| 91亚洲男人天堂| www.久久精品| 成人黄页毛片网站| 国产99精品在线观看| 久久91精品国产91久久小草| 日韩成人免费电影| 亚洲成av人片观看| 亚洲资源在线观看| 一区二区三区欧美激情| 亚洲视频1区2区| 亚洲男人的天堂在线观看| 综合激情成人伊人| 国产精品久久久久久亚洲毛片| 国产亚洲一区二区三区| 久久综合久久99| 国产网站一区二区| 久久久亚洲精品石原莉奈| 久久亚洲捆绑美女| 亚洲国产精品t66y| 国产精品久久久久桃色tv| 国产精品日韩精品欧美在线| 国产精品网站在线观看| 国产精品天干天干在观线| 中文av一区特黄| 国产精品网站一区| 亚洲精品老司机| 亚洲夂夂婷婷色拍ww47| 亚洲成人免费电影| 日本成人超碰在线观看| 美女网站色91| 国产精品自拍在线| 成人污污视频在线观看| av亚洲产国偷v产偷v自拍| 色八戒一区二区三区| 欧美视频一区在线| 日韩免费在线观看| 国产欧美日韩中文久久| 亚洲桃色在线一区| 亚洲123区在线观看| 麻豆91在线播放| 岛国一区二区三区| 在线观看国产精品网站| 欧美高清视频一二三区| 欧美精品一区二区三区蜜桃| 国产精品国产a| 亚洲一区二区五区| 蜜桃av一区二区在线观看| 国产精品77777| 色偷偷久久一区二区三区| 欧美日韩三级一区二区| 精品久久久久久久久久久院品网| 国产亚洲福利社区一区| 一区二区三区在线免费视频| 日本伊人午夜精品| 国产suv精品一区二区三区| 色婷婷一区二区| 日韩一区二区电影| 国产精品国产馆在线真实露脸 | bt7086福利一区国产| 在线观看av一区| 精品剧情在线观看| 亚洲视频在线一区观看| 日本不卡高清视频| 91影视在线播放| 精品国产一区二区三区忘忧草| 亚洲欧美日韩系列| 久久99精品久久久久久动态图| 91视频一区二区三区| 日韩欧美国产综合一区 | 95精品视频在线| 日韩一区二区三区在线观看| 国产精品短视频| 九一九一国产精品| 91国偷自产一区二区开放时间| 日韩欧美一二三四区| 亚洲乱码中文字幕| 国产毛片精品视频| 欧美精品成人一区二区三区四区| 国产女人18毛片水真多成人如厕 | 国产麻豆视频一区二区| 欧美高清视频在线高清观看mv色露露十八 | 亚洲婷婷综合久久一本伊一区| 青青草国产成人99久久| 色综合视频一区二区三区高清| 国产亚洲自拍一区| 久久99国产精品免费| 欧美精品123区| 一区av在线播放| 99视频精品全部免费在线| 26uuu久久综合| 麻豆freexxxx性91精品| 欧美日韩免费观看一区二区三区| 中文字幕二三区不卡| 国产乱人伦偷精品视频不卡| 欧美一区二区三区爱爱| 一区二区在线免费观看| 成人性色生活片免费看爆迷你毛片| 欧美一区日韩一区| 天天综合网 天天综合色| 色成年激情久久综合| 国产精品电影一区二区| 国产高清在线观看免费不卡| 日韩欧美在线网站| 视频一区视频二区中文| 欧美日韩精品二区第二页| 亚洲黄色小说网站| 91久久人澡人人添人人爽欧美| 亚洲欧洲精品一区二区精品久久久 | 91国偷自产一区二区开放时间| 国产精品久久久久久一区二区三区| 国产在线不卡一卡二卡三卡四卡| 日韩欧美电影一区| 久久精品999| 日韩免费看的电影| 蜜臂av日日欢夜夜爽一区| 日韩一级完整毛片| 久久99精品久久久久久久久久久久| 欧美一级国产精品| 免费人成在线不卡| 精品久久久久久久久久久久久久久 | 不卡av在线免费观看| 国产婷婷一区二区| 成人综合日日夜夜| 中文字幕一区二区三区在线观看 | 久久一区二区三区国产精品| 国产一区三区三区| 亚洲国产成人在线| 不卡区在线中文字幕| 亚洲精品国产精华液| 欧美特级限制片免费在线观看| 午夜精品一区二区三区免费视频| 91超碰这里只有精品国产| 青青草97国产精品免费观看 | 99精品国产99久久久久久白柏| 综合色中文字幕| 欧美日韩一区二区在线视频| 日本一区中文字幕| 国产亚洲综合性久久久影院| 95精品视频在线| 午夜激情久久久| 久久五月婷婷丁香社区| av电影天堂一区二区在线| 亚洲午夜久久久久久久久电影院 | 欧美成人免费网站| 成人午夜碰碰视频| 亚洲一区成人在线| 久久这里只有精品6| 91捆绑美女网站| 亚洲成av人片在线观看无码| 日韩免费福利电影在线观看| 国产成人av一区二区| 亚洲欧洲制服丝袜| 日韩一区二区三区精品视频 | 国产一区二区影院| 夜夜爽夜夜爽精品视频| 精品久久久久久最新网址| 一本色道久久综合精品竹菊| 日本麻豆一区二区三区视频| 国产精品久久久久一区二区三区| 欧美日韩一区二区三区不卡| 国产mv日韩mv欧美| 日韩高清不卡一区二区| 亚洲图片你懂的| 精品国产一区二区三区久久久蜜月| 99re免费视频精品全部| 蜜桃视频免费观看一区| 亚洲欧美综合在线精品| 日韩亚洲欧美一区| 色综合久久中文综合久久97| 久久国产精品区| 一区二区三区在线观看国产| 日韩欧美国产一区二区在线播放| 色综合天天综合色综合av| 国产一本一道久久香蕉| 亚洲一区二区三区四区在线观看 | 亚洲国产综合色| 国产精品欧美久久久久无广告| 56国语精品自产拍在线观看|