碰到需要長時間需要關閉所有中斷以保證通信協議不被打斷的項目,這么保證參考時間盡可能減少誤差呢?不要小看這一問題,您要是有更好的想法或思路記得在后臺給我留言哦
#include
uinsigned char time_num = 0; //時間緩存
uinsigned char time_100us = 0; //時間標準
void initT0()
{
TMOD |= 0x01; //使用方式1,16位定時器
TH0 = 0x0FF; //給TH1和TL1初初值
TL0 = 0xCE; //延時時間為50us
EA = 1; //總中斷打開
ET0 = 1; //定時器中斷打開
TR0 = 1; //定時器開關打開
}
void Do(void)
{
......
}
void Protocol(void)
{
static unsigned int ii;
for( ii = 0; ii < 1000; ii++) //約50MS
{
Do(); //假設執行一次50us
time_num++;
if( time_num>= 2)
{
time_num = 0;
time_100us++;
}
if( time_100us )
{
time_100us = 0;
//==========參考時間任務========
......
//-----------------------------
}
}
}
void Delay_50us(void)
{
......
}
void main(void)
{
//初始化定時器
initT0();
initT1();
while(1)
{
EA = 0;
Protocol();
EA = 1;
Delay_50us(); //協議需要
//======任務==========
......
//--------------------
}
}
//===============================
//t0定時器中斷服務程序
//每隔50us進入一次該程序
//===============================
void t0Intr() interrupt 1
{
TH0 = 0x0FF; //給TH1和TL1初初值
TL0 = 0xCE; //延時時間為50us
time_num++;
}
//--------------------------------
有同學就會問這么麻煩,誤差還挺大的,為啥不用DMA呢,而我想說這只是提供一種思路,畢竟不是什么單片機都有DMA可以使用,有時候做項目的時候都會受單片機硬件的限制(主要的目的就是把控成本),很多時候都會想辦法從軟件層面上提出解決方案(軟件改動方便,付出的成本低)。
收錄于合集 **#**Frame
7個
上一篇單片機實用框架(一)下一篇框架|軟件定時時間片
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
單片機
+關注
關注
6039文章
44575瀏覽量
636386 -
軟件
+關注
關注
69文章
4968瀏覽量
87701 -
dma
+關注
關注
3文章
565瀏覽量
100665
發布評論請先 登錄
相關推薦
AVR單片機C語言程序框架(單片機最簡操作系統)及詳解
本帖最后由 lvhoujun 于 2014-2-28 00:37 編輯
這是本人以ATMEGA128為例編寫的C語言程序框架,做簡單的修改即適合AVR所有單片機??梢哉f是一個單片機
發表于 02-12 20:27
CAFrame單片機程序框架分享
CAFrame單片機程序框架簡介程序運行優先級CAFrame配置通用事件應用FLowchart流程圖簡介CAFrame 單片機C語言程序開發框架可用于不同的
發表于 11-24 07:18
單片機應用技術選編2
單片機應用技術選編(2) 目錄 第一章 單片機系統綜合應用技術1 1.1 析8098單片機特點及HSO編程技術21.2 8031單片機DMA
發表于 03-21 22:25
?320次下載
原創分享:自制輕量級單片機UI框架
原創分享:自制輕量級單片機UI框架框架元素用戶接口代碼開源平時??碿sdn,但是從來沒有自己寫過。正好這幾天需要用單片機做一個簡易的ui界面,于是自己寫了一個輕量級的ui
發表于 11-05 15:20
?29次下載
單片機裸機程序框架
單片機裸機程序框架##單片機裸機開發時,要處理多個任務程序框架:輪詢系統int main(void){ init_something(); while(1) { do_someth
發表于 11-13 19:21
?12次下載
單片機學習筆記————51單片機實現判斷數據尾來接收一串數據的串口通用程序框架
單片機學習筆記————51單片機實現判斷數據尾來接收一串數據的串口通用程序框架
發表于 11-23 17:06
?8次下載
單片機學習筆記————51單片機實現在串口接收中斷里即時解析數據頭的特殊程序框架
單片機學習筆記————51單片機實現在串口接收中斷里即時解析數據頭的特殊程序框架
發表于 11-23 17:06
?16次下載
單片機學習筆記————51單片機(利用return)實現判斷數據頭來接收一串數據的串口通用程序框架
單片機學習筆記————51單片機(利用return)實現判斷數據頭來接收一串數據的串口通用程序框架
發表于 11-23 17:06
?17次下載
從單片機基礎到程序框架
單片機應用的核心技術是什么?是按鍵,數碼管,流水燈,串口。是它們的程序框架。按鍵和數碼管是
輸入是人機界面,把它們的程序框架研究透了,以后做彩屏或者更花銷的顯示界面,程序框架也可以通
發表于 09-07 14:45
?9次下載
在單片機中使用的RTOS代碼框架
在這次開發中,也是遇到了很多的問題,主要的感想是關于代碼的框架。在單片機開發中,特別是使用了RTOS的時候,一個良好的代碼框架真的是相當的必要的。
評論