[問題] 單晶片可以用 fork 跑多個 process 嗎

看板ASM (組合語言)作者 (休假妳好)時間14年前 (2011/04/03 12:29), 編輯推噓7(703)
留言10則, 8人參與, 最新討論串1/1
※ [本文轉錄自 Electronics 看板 #1Db_TEME ] 作者: shawnwang (休假妳好) 看板: Electronics 標題: [問題] 單晶片可以用 fork 跑多個 process 嗎 時間: Sun Apr 3 12:27:56 2011 程式運行在 89S51 上,遇到一個小問題 有 10 個腳位在偵測低電位,一旦偵測到,就會呼叫蜂鳴器副程式 (大約響 0.5 秒結束) 由於呼叫副程式,因此在這 0.5 秒之中,此 10 個腳位便無法再進行偵測動作 這樣是個大問題,因為隨時可能會有低電位進來 因此我想用 C 的 fork 來執行蜂鳴器的動作,讓 parent process 繼續回去偵測腳位 但卻發現 Keil C 好像沒辦法使用 fork?? 一旦 include #include <unistd.h> 或 #include <sys/types.h> 皆顯示找不到此標頭檔,如此一來就沒辦法使用 fork 函式了... === 此篇其實有兩個方向想參考大家的意見 一個是如果蜂鳴器響很久的話,大家都怎麼讓程式能繼續偵測腳位 另一個是 Keil C 是否真的無法使用 fork 函式呢 感謝大家~~ -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.129.141.188 ※ 編輯: shawnwang 來自: 220.129.141.188 (04/03 12:30)

04/03 13:03, , 1F
那就改寫蜂嗚器的副程式 (用硬體pwm或timer去完成)
04/03 13:03, 1F

04/03 13:04, , 2F
或是那十根IO用二極體接到一個外部中斷源,用中斷偵測LOW
04/03 13:04, 2F

04/03 13:34, , 3F
寫個kernel,自己implement fork
04/03 13:34, 3F

04/03 15:10, , 4F
花點時間看看 KEIL C的RTX51吧
04/03 15:10, 4F

04/03 16:00, , 5F
用 timer 就夠用了
04/03 16:00, 5F

04/03 16:47, , 6F
有一種叫做rtos的好物
04/03 16:47, 6F

04/04 23:00, , 7F
外接555, 觸發第2腳使之觸發充放電. 響聲時間可以RC*1.1決定
04/04 23:00, 7F

04/05 02:33, , 8F
其實只要好好安排單工程序,並不需要太複雜的技巧 =.=
04/05 02:33, 8F

04/05 21:18, , 9F
觀念能多工 程式就可多工
04/05 21:18, 9F

04/17 22:38, , 10F
謝謝大家~~ 長知識了!!
04/17 22:38, 10F
文章代碼(AID): #1Db_UO0F (ASM)
文章代碼(AID): #1Db_UO0F (ASM)