[問題] io輸出問題
test =0xFFFF;
while(1)
{
for (cnt_byte=0;cnt_byte<8;cnt_byte++)
{
PORTB.1 =test & 0x8000;
test = test<<1;
}
}
之前用這code跑8051,PORTB.1都會輸出1的訊號
後來將這code貼到別牌的mcu
PORTB.1會一直為0
我將程式改成
test =0xFFFF;
while(1)
{
for (cnt_byte=0;cnt_byte<8;cnt_byte++)
{
PORTB.1 =test & 0x0001;
test = test>>1;
}
}
PORTB.1 就會1...
很好奇,為什麼會有這個差別, 看之前的code沒有什麼問題.
想問一下是不是哪邊設定可以把他改回來...
因為我的資料是要從高位元1個個丟出去,改低位元很不方便...
另外, 我用模擬看到 移位是 以LOW BYTE 移完再移 HIGH BYTE
也就是 FFFF-> FF7F -> FF3F -> FF1F.......7F00->3F00
test不是word嗎?跟我想的不太一樣...
我以為是...ffff->7fff ->3fff.....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: CuckooBoy 來自: 114.32.236.8 (06/30 22:43)
推
06/30 22:45, , 1F
06/30 22:45, 1F
→
06/30 22:45, , 2F
06/30 22:45, 2F
→
06/30 22:46, , 3F
06/30 22:46, 3F
→
06/30 22:55, , 4F
06/30 22:55, 4F
→
06/30 22:57, , 5F
06/30 22:57, 5F
→
06/30 22:58, , 6F
06/30 22:58, 6F
推
06/30 23:13, , 7F
06/30 23:13, 7F
→
06/30 23:14, , 8F
06/30 23:14, 8F
推
06/30 23:16, , 9F
06/30 23:16, 9F
ASM 近期熱門文章
PTT數位生活區 即時熱門文章
61
135