[問題] AT89S51 keil c 的語法問題 switch case

看板Electronics作者 (怪獸)時間13年前 (2012/09/15 20:50), 編輯推噓5(5012)
留言17則, 5人參與, 最新討論串1/1
不好意思我想問一下 有關 AT89S51 keil c 的語法問題 目前在學switch case的語法 我用整個8bit PORT 0當輸入 下面的程式是沒問題的 switch (P0) { case 0xFF: { P1=0XF0; } break; case 0xFE: { P1=0X0F; } break; } 但若改port 0.7只有一個bit當輸入的話(如下) 下面的程式是有問題的 switch (P0_7) { case 1: { P1=0XF0; } break; case 0: { P1=0X0F; } break; } compiler就過不去了 他說switch expression has illeagl type 想問一下如果只想用一個bit來做迴圈判斷式的話 可以做到嗎? 謝謝 -- HEY~~~HEY~~~CHAAAAARLIE~!   。。。。。 1 http://ppt.cc/Mvip ⊙ . ▼▼▼▼ 2 http://ppt.cc/Waty \▲▲▲▲ 3 http://ppt.cc/Vk@J φ . \ . δ ./ㄨ \\/ˊ▄▄ \|/ㄑ ( ︶ ˋ\///\/. by Armour@joke 掐~~~~~力 掐~~~~~力 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.205.245

09/15 23:52, , 1F
用if不行嗎?
09/15 23:52, 1F

09/15 23:57, , 2F
if 二個都可以 只是想學學switch case~~
09/15 23:57, 2F

09/15 23:59, , 3F
這是電子版 就不回文章了
09/15 23:59, 3F

09/16 00:00, , 4F
ANSI C Standard: The switch statement
09/16 00:00, 4F

09/16 00:00, , 5F
The controlling expression of a switch statement
09/16 00:00, 5F

09/16 00:00, , 6F
shall have integral type.
09/16 00:00, 6F

09/16 12:13, , 7F
把 data type 轉換成 int 就可以了, 不能直接用 bit
09/16 12:13, 7F

09/16 12:13, , 8F
因為 switch-case 翻譯成組合語言時是用查表法
09/16 12:13, 8F

09/16 12:15, , 9F
話說 C51 & Keil C 好像沒有適合的看板可以去
09/16 12:15, 9F

09/16 12:16, , 10F
ASM 板是歡迎 Keil C, 但是在 ASM 看到 C 我會以為走錯板
09/16 12:16, 10F

09/17 17:46, , 11F
查表?這我不確定,我倒沒去探討,
09/17 17:46, 11F

09/17 17:47, , 12F
至於KeilC適合去哪個板,我想這個板跟C語言板都可以吧
09/17 17:47, 12F

09/17 17:48, , 13F
不回文指是因為這個問題是純粹的語法問題,跟硬體無關
09/17 17:48, 13F

09/18 03:06, , 14F
單bit只有1與0 何須用到switch.. switch多用於無先後的判斷
09/18 03:06, 14F

09/18 17:40, , 15F
樓上,Switch要注意先後順序的喔~
09/18 17:40, 15F
謝謝樓上各位 ※ 編輯: l1l1l1l1 來自: 123.193.205.245 (09/18 20:43)

08/13 19:31, , 16F
話說 C51 & Ke https://noxiv.com
08/13 19:31, 16F

09/17 23:24, , 17F
//noxiv.com https://daxiv.com
09/17 23:24, 17F
文章代碼(AID): #1GL7ci8X (Electronics)