Re: [問題] RS232問題

看板ASM (組合語言)作者 (我愛ASM)時間15年前 (2009/03/04 22:54), 編輯推噓5(506)
留言11則, 2人參與, 最新討論串1/2 (看更多)
※ 引述《BlueFeel (藍色感覺)》之銘言: : 8051是用C寫的 : 寫完後測試功能 : 發現9600胞率的RS232常會出現 按下去,但終端機沒反應的情況. : 多按幾次才出現,有時又可以馬上出來.. uart是用中斷嗎?還是在main()裡面用輪詢的?用輪詢去做, 如果其他工作跑太久的確會漏資料.... : 我朋友用過之後 : 懷疑是main寫得太長,使得RS232跑很久.... ?看不懂你在說什麼...看樣子你好像是用輪詢的.... : 可能跳到別地方,以至那次沒反應 : 建議我可以在某些函式加判斷式...加快執行速度 : 不過我不太明白他說的那個指令... 判斷就是if...else、switch...case一類的,不過一開始沒規劃 好也是枉然。 : 另外... : 不太明白什麼情況那個函式前需要那個指令 : main裡頭是一些 使用者按 1 就呼叫某函式 2 又呼叫某函式.....方式 : 這樣說來, 應該都沒在使用, 等使用者按數字才動... 如果上述為真,那你朋友判斷是錯的..... -- 不要問我從哪來,我只是一個浪跡天涯的工程師.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.132.23.74

03/04 23:20, , 1F
輪詢的意思是.....?
03/04 23:20, 1F

03/04 23:53, , 2F
會不會是在說 #pragma disable, #ifndef ?
03/04 23:53, 2F

03/05 00:21, , 3F
輪詢就是開一個loop一直去檢查
03/05 00:21, 3F

03/05 00:21, , 4F
你按按鍵有加上反彈跳嗎?
03/05 00:21, 4F

03/05 00:31, , 5F
我是用pc keyboard的數字鍵,再用rs232傳
03/05 00:31, 5F

03/05 00:32, , 6F
For裡面有SBUF,check SBUF='e'就跳開
03/05 00:32, 6F

03/05 00:33, , 7F
RS232有用到中斷
03/05 00:33, 7F

03/05 00:34, , 8F
static void Serial_Port_ISR (void)interrupt 4 using 3
03/05 00:34, 8F

03/05 00:45, , 9F
你應該把RS232 RX讀到的值先存到另一個暫存器,再去判斷
03/05 00:45, 9F

03/05 00:45, , 10F
那個暫存器,而非直接去判斷SBUF,你RX到的SBUF很有可能會
03/05 00:45, 10F

03/05 00:46, , 11F
被TX的loop的寫入SBUF蓋掉,這樣就判斷不到了
03/05 00:46, 11F
文章代碼(AID): #19hfP1_Y (ASM)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 1 之 2 篇):
文章代碼(AID): #19hfP1_Y (ASM)