㈠ 單片機用線程讀ad會快嗎
應該不會,因為在它轉換時已經讀取了數據,只是它內部要去計算而已,即使產生中斷,單片機還是在轉換計算,而另一路去執行中斷程序。這個可以並行處理,那如果是單線程的單片機可能會先去執行中斷程序,等中斷程序執行完了之後,在來執行剛還沒有轉換完的程序,那麼實驗室輸出的結果還是正確的,當然如果斷電那就不一樣了。
㈡ 關於單片機問題
當然可以了——C8051F+ulinux 就可以實現了。
能否運行多個進程,主要是靠軟體來實現的,實際上與單片機的硬體關系不大(當然你的存儲空間要夠放下一個操作系統),主要在於你軟體是怎麼做的——當然,根據單片機和操作系統的性能,可能你運行多個進程比較慢就是了。
這里說明一點,實際上,多個進程是不可能做到真正的「同時運行」的(除非你有多個單片機),只是把多個進程切成小片輪流運行罷了。
你有興趣的話,也可以自己寫一個操作系統來完成這個功能啊
㈢ 51單片機如何實現多線程多任務有哪些程序可以在「後台」自己運行
51單片機可以實現執行時間片形式的多線程任務,具體做法是:1、弄個表兩位元組一個單位存一下各個任務的執行地址。2、在中斷級別較高的T0定時器中斷中,把中斷壓進堆棧的那兩個位元組保存到表裡。3、用表裡別的線程的地址重壓進堆棧。4、從中斷里退出就可以切到另一個線程繼續跑了。
我記得這個在早先2000年那時候的大學計算機系單片機原理專業課里講過,但是那科掛掉的實在太多,現在好像已經把這些獨門絕技大多給砍沒了,就剩背背匯編指令集。
㈣ 51單片機如何實現多線程多任務換距話說,有哪些程序可以在「後台」自己運行
2、51內部沒有捕捉器、AD轉換和硬體PWM;
3、中斷系統在執行中斷函數時是需要佔用cpu資源的,就是當前程序暫停跑過去執行中斷函數,結束了再回去繼續;
4、如果是用來設置功能或模式的寄存器,工作完成後其值是不會改變的,會改變的比如uart的數據緩存器以及定時器的時值,這些隨時改變的寄存器也不會影響正常工作;
舉例中的錯誤,51單片機定時器能夠定時ds最大周期是65535微秒,即65.535毫秒,不存在定時一秒的情況,除非定時中斷內用變數累加判斷。
㈤ 單片機有線程嗎
大部分單片機可以移植嵌入式實時操作系統的,操作系統內核會分配CPU給各個任務工作,也就是平時說的多線程,或者多任務
㈥ 51單片機是單線程么能不能有兩個無限循的函數
如果你是兩個無限循環的話, 程序會執行到第一個循環不挺的再循環的,你可以在循環里設立一個條件,達到條件跳出,然後 執行下面的循環,可以使用goto ,,也可以使用break;
㈦ 單片機中如何實現多線程,多任務
可以將不同任務放在定時器中斷里, 然後將任務分步驟執行(這大概就叫狀態機吧). 比如任務1放在主循環里, 任務2放在定時器1中斷里, 任務3放在定時器2中斷里. 或者自己利用定時器實現時間片輪換演算法. 關鍵是分配好任務執行的時間片, 以滿足對不同事件的響應. 感覺單片機實時性的要求很高。