娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年12月20日(星期五)

正在發生

2019年12月20日 | MCU時間相關延時函數的編寫

發布者:巳午未 來源: eefocus關鍵字:MCU  延時函數  編寫 手機看文章 掃描二維碼
隨時隨地手機看文章

/******************************************************************************

       Filename:  timing_delay.h

    Description:  時間延時相關函數              

 *****************************************************************************/

 

#ifndef __TIMING_DELAY_H

#define __TIMING_DELAY_H

 

 

#include "stm8l15x.h"

 

#define SECONDS             (1000)  /* Jiffies unit is millisecond */

extern volatile uint32_t    jiffies;  /* 1 jiffies=1ms */

 

#define GET_TICK_COUNT( )   (jiffies) /* export for SX1278 */

#define TICK_RATE_MS( ms )  ( ms )

 

void msTimingDelay_Init(void);

void msTimingDelay_Decrement(void);

 

void udelay(int us);

void msleep(__IO uint32_t nTime);  /* millisecond sleep  */

void Delay(__IO uint16_t nCount);  

 

 

#define time_after(a,b)     

     ((int32_t)(b) - (int32_t)(a) < 0)

#define time_before(a,b)    time_after(b,a)

 

#define time_after_eq(a,b) 

     ((int32_t)(a) - (int32_t)(b) >= 0)

#define time_before_eq(a,b) time_after_eq(b,a)

 

/* Timeout happened, x should be last jiffies+timeout value */

#define timeout_happened(x) (time_after_eq(jiffies, x))

 

#endif /* __TIMING_DELAY_H */

 

1.jifies是啥????


jifies就是系統時間,假如要500ms內一直打H


首先要獲取當前時間


uint_32t      start_time;


start time=jifies; 


while(jiffles-starttime<500)


http://blog.51cto.com/decimal/410673


下面我們來考慮jiffies的溢出,我們將從以下幾個方面來闡述:

. 1.無符號整型溢出的具體過程

. 2.jiffies溢出造成程序邏輯出錯

. 3.Linux內核如何來防止jiffies溢出

.4.time_after等比較時間先/后的宏背后的原理

. 5.代碼中使用time_after等比較時間先/后的宏


. 1.無符號整型溢出的具體過程


如unsigned long  占四個字節  


0 1 2 3 4 5.....255 ->0 1 2 3 4 5


4. jiffies溢出造成程序邏輯出錯

下面,通過一個例子來看jiffies的溢出。

例4-1:jiffies溢出造成程序邏輯出錯


unsigned long timeout = jiffies + HZ/2; //0.5s超時 


do_somework();//干一些事

 

     if (timeout > jiffies) //在0.5s內運行完以上代碼 調用未超時執行函數 no_timeout_handler();

    {

         no_timeout_handler();

    }else {         //否則超時,調用超時函數timeout_handler();

 timeout_handler();

    }


本例的目的是從當前時間起,如果在0.5秒內執行完do_somework(),則調用no_timeout_handler()。如果在0.5秒后執行完do_somework(),則調用timeout_handler()。


我們來看看本例中一種可能的溢出情況,即在設置timeout并執行do_somework()后,jiffies值溢出,取值為0。設在設置 timeout后,timeout的值臨近無符號長整型的最大值,即小于2^32-1。設執行do_somework()花費了1秒,那么代碼應當調用 timeout_handler()。但是當jiffies值溢出取值為0后,條件timeout > jiffies成立,jiffies值(等于0)小于timeout(臨近但小于2^32-1),盡管從邏輯上講jiffies值要比timeout大。但最終代碼調用的是no_timeout_handler(),而不是timeout_handler()。

關鍵字:MCU  延時函數  編寫 引用地址:MCU時間相關延時函數的編寫

上一篇:stm8L 初始化系統時鐘
下一篇:stm8 Error[Li005]: no definition for XXX 的解決辦法

0

推薦閱讀

Anthony Levandowski,此前優步和Waymo之間自動駕駛技術訴訟案的關鍵人物,12月18日在一篇博客中宣布“回歸”,稱讓“自動駕駛拯救生命的潛能成為現實”是他畢生的使命,并且帶來了他的新公司Pronto.AI和首款產品。在博客中,Levandowski公布了一段視頻,稱其自動駕駛車輛在沒有人員干預的情況下從舊金山開到紐約。視頻顯示,此次行程于10月16日從金門大...
影響激光粒度分析儀器測試效果的因素有很多,本文討論以下幾點三點關鍵因素:光路對中,儀器校準,樣品分散。一 、光路對中對中是指激光束的焦點通過光電探測陣列的圓心,激光粒度儀在測試前首先要保證激光束的焦點通過光電探測陣列的圓心,并且在測試過程中不偏移,才能得到正確的結果。目前粒度儀采用的都是兩維對中系統,一般采用步進電機通過軸套來帶...
有記者問:美商務部12月18日宣布將59家中國實體列入出口管制“實體清單”。請問商務部有何回應?答:美國再次動用國家力量打壓中國企業,中方對此堅決反對,將采取必要措施,堅決維護中國企業合法權益。美方泛化國家安全,不斷濫用出口管制等措施對他國企業、機構和個人持續進行打壓,對國際經貿秩序和自由貿易規則造成嚴重破壞,對全球產業鏈供應鏈安全造...
如果 pinctrl 子系統將 PIN 復用為 GPIO,那么接下來就要配置 gpio 子系統,且 gpio 子系統依賴于 pinctrl 子系統來實現。?pinctrl 子系統作用:從設備樹中獲取 PIN 的描述信息來設置 PIN 的復用和電氣屬性,PIN 可復用為 I2C、SPI、GPIO。?gpio 子系統作用:初始化 GPIO 并且提供相應的 API 函數,比如設置 GPIO 為輸入輸出,讀取 GPIO 的值等。?

史海拾趣

問答坊 | AI 解惑

關于模擬電路設計。。。新人求助

剛進了一家公司?,F在做電機控制模擬電路設計一塊。感覺非常非常不容易。這個難和做數學題目的難不一樣,感覺考慮的東西太多,而且沒有清晰思路過程,及其繁雜.總之一看那些電路圖我就頭大.想問下初步會設計一些模擬電路需要哪些知識?(我只是看模電 ...…

查看全部問答∨

CE6編譯出錯,請指教!急,在線等

Done Doing PreMakeImage Custom Build Actions makeimg: Check for C:\\WINCE600\\OSDesigns\\YG3501B\\YG3501B\\RelDir\\NANO_ARMV4I_Release\\PreMakeImg.bat to run. makeimg: Found localization settings. makeimg: LOCALE: 0804 &nb ...…

查看全部問答∨

wavecom和單片機之間的通信

最近在用wavecom和單片機組合做短信和收發,可是發現單片機只能發送消息給gsm模塊,單片機卻收不到wavecom發來的任何信息,包括發送at的ok確認信息。所以現在整個系統只能發短信不能收短信。 具體情況: 1,串口這邊我只連了兩根線,一個收一個發 ...…

查看全部問答∨

Vista下,下載NK.bin總是中途停止

我在WinXP下,用PB、EShell、以及一些TFTP工具,通過Ethernet或USB RNDIS,下載NK.bin到WinCE5設備(Marvell XSCAL),從來沒有問題。 可是,在windows Vista,我用這些工具,通過Ethernet或USB RNDIS,下載NK.bin到WinCE5設備,總是下到40%或50% ...…

查看全部問答∨

萬利199元板升級,感受!

日前注冊了萬利板升級活動,選擇了"雅利(深圳)"作為升級點. 昨天打電話給"雅利(深圳)"咨詢此事,他們態度十分不好. 開始說他們不知道升級活動之事,我告訴他這是ST搞的升級活動 然后他問我從哪里買的板,我說賽格(忘記哪個商家了,貌似 ...…

查看全部問答∨

兩款開發板比較

LPC1766和LM3S8962這兩款開發板有什么區別呢?哪位大俠能指點指點呢?萬分感謝! …

查看全部問答∨

A7153,可以自由選擇MCU的ZIGBEE芯片資料下載

Amiccom公司最新推出的A7153,可以自由選擇MCU; [ 本帖最后由 lmq329778570 于 2012-4-27 17:16 編輯 ]…

查看全部問答∨

【曬心得】鬼影隨形

大家靈不丁一看這個題目覺得不可思異,宣傳封建迷信地來啦!!?。∑鋵嵅蝗弧? 我平時常聽“單田芳”講的評書,講到岳飛之子岳挺會一種功夫叫這個名字。大至是兩個人打著打著一個人找不到另一個啦,這時找人的那位就要歸位了。其實那個人功夫高躲在 ...…

查看全部問答∨

關于STM32用AD采集數據后顯示數據曲線

剛開始學STM32,請教各位大神,STM32里AD轉換模塊采集完的數據曲線在Keil MDK里面能實時顯示嗎?怎么操作?…

查看全部問答∨
小廣播
添点儿料...
无论热点新闻、行业分析、技术干货……
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 登封市| 望都县| 府谷县| 高尔夫| 聂荣县| 霍城县| 扎兰屯市| 乡城县| 兴国县| 滦南县| 蒙自县| 石河子市| 达尔| 涿州市| 陆良县| 东港市| 宝清县| 治多县| 淮安市| 望谟县| 高碑店市| 锡林浩特市| 巴林左旗| 临沭县| 临安市| 青河县| 九龙城区| 牟定县| 临武县| 乐东| 鸡泽县| 内丘县| 乌拉特前旗| 从江县| 射阳县| 开鲁县| 台安县| 滕州市| 滨州市| 信丰县| 兴海县|