時間片輪設計思想
分層思想
1)開始寫硬件層程序,完成映射
#defineKYE_MIN 0X01#defineKEY_PLUS 0X01unsignedchar KeyDat;voidReadPort(void){if (P1 & KEY_PLUS == 0 ){KeyDat |= 0x01 ;}if (P2 & KEY_MIN == 0 ){KeyDat |= 0x02 ;}}
C語言應該很容易看懂吧?如果KEY_PLUS按下,P10口讀到低電平,則P1 &KEY_PLUS 的結果為0 (xxxx xxx0 & 0000 0001),滿足if 的條件,進入KeyDat |=0x01是將KeyDat 的bit0置一,也就是說,將KEY_PLUS映射到KeyDat的 bit0
KEY_MIN是同樣的道理映射到KeyDat的bit1
如果KeyDat的bit0為1,則說明KEY_PLUS按下,反則亦然。
不需要想的很神秘,映射就是這么一回事。如果還有其他按鍵的話,用同樣辦法,將他們全部映射到KeyDat上面。
2)驅動層程序編寫
如果將KeyDat想象成P1口,那么這個跟學習板那標準的掃描程序不就是一樣了嗎?對的,這個就是底層映射的目的了。
3)應用層程序編寫
時間片輪設計思想
高速CAN、容錯CAN、LIN總線有什么區別?
大佬終于把鴻蒙OS講明白了,收藏了!