[問題] UART收到的字元(ASCII)如何轉為Bin或Hex?
目前用PC -> rs232 -> 8051 控制兩顆直流馬達的運動平台
每顆馬達 正 逆 停 煞 四個狀態 2bit,兩顆就有4bit,接在 P2^0,P2^1 和 P2^2,P2^3
也就是這個運動平台共有 16 種狀態,
在VS2010中編碼成 "0"~"F"傳送給8051 (因為我只會一次傳一個字元)
因為我不會直接把字元轉成對應的Bin或Hex,所以解碼的相當沒效率
(聽說分支指令在單晶片中,比PC要來得沒效率很多,真的嗎?)
8051端:
if(RI)
{
RI=0;
if(SBUF==0x30) //0,1111純停止
P2=0x00;
else if(SBUF==0x31) //1
P2=0x01;
else if(SBUF==0x32) //2
P2=0x02;
:
:
else if(SBUF==0x46) //F,1111 煞車
P2=0x0F;
}
請問ASCII可以直接解碼嗎? 或者其他更有效率的寫法?
目前速度還不錯,但是還有其他功能想加入,而且是real time,怕這裡中斷太久
PC大約每 30ms 會中斷一次8051
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.25.108
※ 編輯: deo2000 來自: 140.112.25.108 (07/25 09:21)
推
07/25 10:32, , 1F
07/25 10:32, 1F
推
07/25 11:50, , 2F
07/25 11:50, 2F
→
07/25 11:50, , 3F
07/25 11:50, 3F
→
07/25 11:50, , 4F
07/25 11:50, 4F
→
07/25 11:51, , 5F
07/25 11:51, 5F
推
07/25 11:58, , 6F
07/25 11:58, 6F
→
07/25 12:03, , 7F
07/25 12:03, 7F
→
07/25 19:01, , 8F
07/25 19:01, 8F
謝謝,真是個好方法,但是我認為會降低程式可讀性,
我怕三個月之後自己會看不懂
※ 編輯: deo2000 來自: 118.168.14.52 (07/25 19:38)
推
07/25 19:43, , 9F
07/25 19:43, 9F
→
07/25 19:44, , 10F
07/25 19:44, 10F
推
07/25 19:50, , 11F
07/25 19:50, 11F
因為我不知道怎麼讓SBUF收一串字 Orz...
※ 編輯: deo2000 來自: 118.168.14.52 (07/25 19:55)
→
07/25 22:45, , 12F
07/25 22:45, 12F
推
07/25 23:11, , 13F
07/25 23:11, 13F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
ASM 近期熱門文章
PTT數位生活區 即時熱門文章