2014-08-29 27 views
0

所以我只是最近聽說這些pthreads和我的理解是非常有限的,但我只想知道它是否能夠做到我想要的之前,我才真正進入瞭解它們。瞭解pthreads更多一點在C

我已經編寫了一個程序,它可以從一個微控制器產生兩個輸出脈衝,這些脈衝以不同的頻率,週期和佔空比發生。目前,輸出脈衝的功能正在循環中發揮作用,因爲我使用的時序是彼此的倍數,所以在不中斷另一個的情況下停止一個並不是太麻煩。

但是我希望它更具動態性,所以我可以輕鬆更改佔空比或週期,而無需針對這些定時製作一些複雜的環路......下面顯示了我試圖實現的快速草圖,以及我希望你能理解它...

enter image description here

所以基本上我的問題是,這樣的事情可能在C並行線程,即做他們同時運行這麼一個可以開和關脈動,而一個正在等待延遲完成?

如果不是有什麼我可以用它來代替嗎?

+2

什麼是最大脈搏率和多少抖動你能負擔得起? – 2014-08-29 09:54:47

+0

如果您有多個核心/處理器,則只能同時運行線程。對於單核心線程,只能串行運行,不能並行運行。使用pthreads不會奇蹟般地允許單個處理器同時運行多個指令序列。但是,如果一個線程正在等待(即沒有實際運行任何東西),則可以運行另一個線程,但是當等待線程需要喚醒併發出脈衝時,會在線程之間進行上下文切換。 – 2014-08-29 10:29:53

回答

2

一般來說,在uC上使用線程來處理這種功能是不值得的。對於這種有限的操作,額外堆棧等的成本是不值得的,誘惑它可能來自簡單的POV。

硬件定時器,中斷和事件的增量隊列可能是您可以做的最好的。