這幾天給微控制器程式設計用到IIC,SPI,單匯流排等協議,需要嚴格的延時時序,哪位大哥有經驗,給幾個好的延時函式

時間 2022-07-02 10:15:11

1樓:

別人編的不代表你能用,不同的電路情況是有細微區別的,可以你晶振離cpu遠點 可能你晶振跟別人的不一個品牌 可能你那溫度比別人的高, 這都導致延時函式不準。

自己動手測量才是王道。用個示波器測一下,不費什麼功夫,而且自己心裡也有底了。

下面是我自己的延時函式,僅供參考

void delayms_110592(unsigned int time_)//延時時間為 1ms * x 晶振是11.0592m

void delayus_110592(unsigned int time_)//延時時間為 1us * x 晶振是11.0592m

delayms_110592();這個函式的形參越大相對誤差越小,一般都是大於標準值,比如delayms_110592(100);肯定大於100ms,而且delayms_110592(1000);的相對誤差要小一點

你可以用示波器測量來試一下,具體什麼原因,自己思考~~~

delayms_110592();這個函式的形參越小相對誤差越小,一般都是大於標準值

2樓:網抓手

首先你的時鐘要穩,不要用片內rc時鐘源,用外部晶振,如果你對彙編熟悉,可以編一個延時函式,編譯後檢視彙編**,根據彙編**計算、修改(一般通過插入空控作-nop)使其延時滿足一定的時基(如10us,100us,1ms等),如果對彙編不瞭解,那最好還是用中斷方式。

微控制器中的spi,i2c,單匯流排,匯流排什麼意思,什麼用,什麼區別,

3樓:胖大海君

嘿嘿 你提出的問題很多呀 我來幫你解答吧

1 先來回答你什麼是匯流排:

匯流排就是一個公共的計算機的連線線 所有外圍裝置 都可以通過它與計算機相連線 是資訊傳遞的通道 在它上面可以掛很多個外設元件。

2 匯流排的種類很多:

如晶片級的匯流排 如 spi,i2c,單匯流排 近距離進行cpu與其它外圍晶片的連線

他們多是採用序列方式傳送 資料的 即一位一位傳送資料 可以節省傳送線的條數

spi 需要3條線: 一條時鐘線 一條資料接收線 一條資料傳送線

i2c 需要2跳線 一條時鐘線 一條 資料線

單匯流排 即是用一條資料線來通訊 如ds18b20數字溫度感測器

還有rs-232 用於計算機和計算機或微控制器進行資料通訊的

還有rs-485 、can等工業現場匯流排 用於遠距離通訊 距離可達1000米。

3 匯流排的概念、種類、區別 都給你介紹了 呵呵 滿意 就給加分啊

對微控制器程式設計要用什麼軟體,我想學微控制器程式設計,應該用什麼軟體啊?

大哥,你是門外漢吧,微控制器直接用c語言程式設計,微軟那個就行,我們學校就是那麼教的,它內部實際運算時不需要軟體的,是用數位電路直接計算的,所以簡單的邏輯程式我們都用數位電路做。前期計算好,然後把閘電路或者觸發器計時器什麼的都連起來。 現在有silicon lab開發的和eclipse很相似的sim...

微控制器C語言程式設計題,微控制器C語言程式設計題

爬行的山羊 這是兩個題啊。哈哈好做,第一個有c語言的冒泡法排序,第二個用中斷,讀,輸出就可以 include define led0 0 define led1 1 define led2 2 define ledport p2 sbit sw0 p1 0 sbit sw1 p1 1 sbit sw...

微控制器程式設計題

一般都是共陽的接法,就假設是共陽的吧。接在p1口上。彙編 org 0000h mov a,0feh mov p1,a loop acall delay rl a rl a mov p1,a cjne a,7fh,next1 rr a ajmp next2 next1 cjne a,0bfh,next...