推 lion21:1改通訊協定2用查表法 07/25 10:32
推 cortex1234:把長串if-else if改成switch-case會讓效能變好 07/25 11:50
→ cortex1234:compiler會把switch-case翻譯成table access 07/25 11:50
→ cortex1234:virtually 就是一樓說的查表法 07/25 11:50
→ cortex1234:'0' - 'F' 轉二進位很簡單, P2 = SBUF-'0'; 07/25 11:51
推 MaxHaru:1)'0'~'F'==>0x00~0x0F存入n, 2)P2=set[n]; 07/25 11:58
→ cortex1234:上面寫錯: P2=SBUF<'A'?(SBUF-'0'):(SBUF-'A'+10); 07/25 12:03
→ ksmrt0123:把16個狀態編成'A'到'P', 51就 P2=SBUF-'A'; 07/25 19:01
謝謝,真是個好方法,但是我認為會降低程式可讀性,
我怕三個月之後自己會看不懂
※ 編輯: deo2000 來自: 118.168.14.52 (07/25 19:38)
推 cortex1234:我有個疑問 何不直接傳數字 而要編碼成字元? 07/25 19:43
→ cortex1234:一個 unsigned char 就可以放 0-255 的 8-bit 數字了 07/25 19:44
推 WolfLord:我猜是Windows端使用的comport元件問題吧?(stream queue) 07/25 19:50
因為我不知道怎麼讓SBUF收一串字 Orz...
※ 編輯: deo2000 來自: 118.168.14.52 (07/25 19:55)
→ MasterChang:queue 07/25 22:45
推 jheli:我也覺得在ISR應該先往queue塞,回到main後再讀出來處理 07/25 23:11