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

歷史上的今天

今天是:2025年05月18日(星期日)

2020年05月18日 | 定時器計數、定時器中斷函數、while(1)之間如何協調、工作?

發布者:乘風翻浪 來源: eefocus關鍵字:定時器  計數  中斷函數  while(1) 手機看文章 掃描二維碼
隨時隨地手機看文章

51單片機程序,使用定時器時,定時器計數、定時器中斷函數、while(1)循環三者之間如何協調好整個流程?


我拿一個最經典的單片機應用——‘流水燈’來分析吧。


【定時器0實現間隔1s的流水燈】簡單示例

#include

 

typedef unsigned int u16;   //對數據類型進行聲明定義

typedef unsigned char u8;

 

#define LED P3

 

bit LED_flag=0;  //定時到1s的標志位

u8 n;            //循環變量,用作LED總線的位索引index

 

void InitTimer0(void); //定時器0,初始化

 

void main()

{

    LED=0XFF; //先初始化LED全滅(自上而下流動)

    InitTimer0();

    while(1)

    {

        if(LED_flag==1)

        {

            LED_flag=0;

            LED=~(0x01<>n);(自下而上流動)

            if(++n==8)

                n=0;

        }

    }

}

 

void InitTimer0(void) 

{

    TMOD |= 0x01;   //用|=防止配置沖突

    TH0 = (65536 - 50000)/256; ///定時器0,置初值(定時50ms)

    TL0 = (65536 - 50000)%256;

    EA = 1;

    ET0 = 1;

    TR0 = 1;

}

 

void Timer0() interrupt 1    //定時器0,中斷服務函數

{

    static u16 i;

    TH0 = (65536 - 50000)/256; ///定時器0,重裝初值(定時50ms)

    TL0 = (65536 - 50000)%256;

    i++;

    if(i==20) // 1s = 20 × 50ms 

    {

        i=0;

        LED_flag=1;

    }

}

 

第一、定時器什么時候開始工作呢?

TR0=1;//啟動定時器0,這個斷點就標志著定時器0開始工作了,不管同不同意中斷,它都在計時。


第二、什么時候進入中斷函數,進入中斷函數后定時器又是怎么工作的,怎么循環累加出延時時間的?

該示例程序配置了定時器的中斷時間為 50ms(12MHz晶振),也就是每隔 50ms 就進入一次中斷函數。


進入中斷后,程序又重新給定時器定時50ms(定時器0不會自動重裝初值),同時對中斷次數進行計數(i++)。


主程序只要查詢計數值(i),就能知道 定時器中斷了多少次了。


第三、while(1)循環里面又是怎么工作的呢?

首先,主函數的 while(1)表示系統是一個 循環系統,一直在循環,不結束。


當定時器產生中斷時,就會暫停主函數,這就稱為定時器中斷。等中斷服務函數執行結束后,又會在主函數被打斷的地方,繼續執行主函數的內容。


進一步理解

定時器等中斷服務屬于前臺工作,主函數屬于后臺工作。


這樣的系統稱為前后臺系統,包括一個死循環和若干個中斷服務程序:應用程序是一個無限循環,循環中調用API函數完成所需的操作,這個大循環就叫做后臺系統;而中斷服務程序,接收到系統的各種異步事件,也就是前臺系統。


這就像一個酒店服務流程一樣:酒店前臺柜員(中斷服務程序)接收到客戶的突發問題(單片機系統的各種異步事件),前臺柜員再將接收到的問題反饋給大堂經理(while(1)后臺)進行事件的處理解決。


這說明了:主函數在執行的時候,定時器中斷在前臺是一直在工作的(只要你開啟了)。


程序中,主函數的while(1),對定時器的中斷次數是否到達1s定時的標志位LED_flag進行查詢,如果==1,那它就將該標志位清0 ,并且執行流水燈事件。

關鍵字:定時器  計數  中斷函數  while(1) 引用地址:定時器計數、定時器中斷函數、while(1)之間如何協調、工作?

上一篇:51單片機(二十一)—— 定時器計數功能
下一篇:51單片機的中斷和定時器、計數器

推薦閱讀

--公司加強高性能時鐘產品的工程、銷售和客戶支持-- 中國上海 – 2018年5月18日 - 致力于建立一個更智能、更互聯世界的領先芯片、軟件和解決方案供應商Silicon Labs(亦稱“芯科科技”,NASDAQ:SLAB),今日宣布:其全新上海辦公室隆重開業,可為其員工和實驗室設備增添更多空間。公司還宣布正在擴大其位于上海辦公室的應用工程團隊,并正在尋找合...
2018年8月芯片代工廠臺積電突然遭受病毒入侵,在臺積電總部臺灣新竹科學園區的12英寸晶圓廠和營運總部均受到嚴重影響,生產線全部停擺數小時。根據臺積電官方給出的消息,在這短短的3天時間里,對臺積電第三季度營收造成了3%的損失。隨著我國發展集成電路產業的風頭正盛,如何保證晶圓廠的順利建設,保證建廠效率,以及實際運維的安全性穩定性等方面,EEWO...
5月18日消息,據臺灣媒體報道,華為緊急對臺積電追加7億美元訂單,產品涵蓋5nm及7nm制程,使得臺積電相關產能爆滿。 華為 臺積電此前考量疫情沖擊終端消費會在第3季反應,對第3季持較保守態度。業內人士分析,隨著華為旗下海思追加大單,臺積電5nm和7nm訂單爆滿,必須再增加產能,才能滿足客戶龐大的急單需求,也讓后續營運仍能維持強勁動能。 消息人士透...
引 言USB(Universal Serial Bus)是通用串行總線的縮寫,因其具有方便易用,動態分配帶寬,容錯性優越和高性價比等特點,現已成為計算機的主流接口。隨著嵌入式系統的廣泛應用,各種小型終端需要開發出與外界聯系的USB接口。目前,常用的技術有兩種。基于單片機的USB接口,特點是需要外置芯片,電路復雜,留下的 CPU資源不多;基于ARM的USB接口,特點是...

史海拾趣

問答坊 | AI 解惑

HT48R05A制作數字脈沖發生器

HT48R05A芯片功能很強大的可以做很多的事情…

查看全部問答∨

uc/osII源代碼分享

剛買了<嵌入式實時操作系統uc/osII>,邵貝貝譯。里邊帶張光盤有不少源代碼。拿來共享下。…

查看全部問答∨

自制TDA2030音響帶雙排閃爍燈

前一短時間覺得自己的電腦放音不夠大,于是起了制作音響的想法。對我我這樣的業余選手制作出什么曠世奇作基本不可能,所以我也知趣的選擇了集成音頻功放IC,在價格和易用性上選擇我買了2片TDA2030,于是搜集各大網站的關于TDA2030制作資料,后來發 ...…

查看全部問答∨

新手請教vxworks下zinc的圖形界面開發

我的畢業設計是要在vxworks下的zinc來構造一個車載導航界面,現在是新手,有以下問題請各位大俠們幫忙解決下,萬分感謝! 1.目前我用的是Windriver Tornado Ver2.2 For ARM的版本。看網上都是在pentium下安裝的wind2.0.3和zinc6.0,不知道for ARM ...…

查看全部問答∨

WINCE5.0 ARMV4I的模擬器的寬高能夠超過600*800?

BSP用的是MICROSOFT DEVICEEMULATOR:ARMV4I Platform-->SDK-->Config SD-->Emulation屬性頁中,大小不能修改,還有其他地方能修改模擬器的大小嗎?比如調整成 1024*768…

查看全部問答∨

如何把EMMC或是T卡,由已格式化狀態,改為非格式化狀態

如何把EMMC或是T卡,由已格式化狀態,改為非格式化狀態…

查看全部問答∨

外資公司急聘高級硬件工程師!!!

硬件工程師 職責: 1.        負責與客戶、營銷團隊、研發團隊、供應商或聯盟伙伴共同設計和研制工程產品或產品模塊的全過程. 2.        制定和建立設計規范和技術要求。 3.      &nbs ...…

查看全部問答∨

EVC編譯連結有問題.

剛剛裝了EVC4++. 里面還帶有SDK. 編譯運行<<windows CE程序設計>>中的例子程序時候. 在進入模擬器前. 編譯連結彈出對話框: ERROR:    An appliction targeting a Standard SDK for Windows CE.NET and built for the X86 CPU c ...…

查看全部問答∨

低功耗控制

                                 各位兄弟們,我有個問題想問一下,我用的是STM32F103芯片,用了一個系統中斷函數SysTick_ITConfig(ENABLE);在中斷 ...…

查看全部問答∨

STM32有沒有計劃提高主頻?

                                 比如說跑到200M?…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

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

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

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 三门县| 安平县| 海盐县| 昌黎县| 和林格尔县| 钟山县| 民权县| 镇宁| 商城县| 隆回县| 枣阳市| 文化| 大田县| 正安县| 伽师县| 安国市| 甘南县| 峡江县| 银川市| 西城区| 鹤岗市| 固安县| 漳州市| 曲阜市| 额尔古纳市| 社会| 普安县| 伊宁市| 贺兰县| 长宁县| 香格里拉县| 广灵县| 安康市| 兴仁县| 涡阳县| 岱山县| 汾阳市| 鄂伦春自治旗| 常州市| 万荣县| 民丰县|