新聞中心

AVR位操作記錄

作者: 時(shí)間:2016-11-22 來源:網(wǎng)絡(luò) 收藏
說實(shí)話,偶是頭一次遇到這么用的,Mark。

本文引用地址:http://2s4d.com/article/201611/320038.htm

#defineBIT(x) (1<<(x))


#defineGET_PORT(x,bit) (PORT##x)

#defineGET_PIN(x,bit) (PIN##x)

#define GET_BIT(x,bit) (bit)

#definePORT_OUT0(portx_bit) (GET_PORT(portx_bit)&=~BIT(GET_BIT(portx_bit)))

#definePORT_OUT1(portx_bit) (GET_PORT(portx_bit)|=BIT(GET_BIT(portx_bit)))

#definePORT_IN(portx_bit) (GET_PIN(portx_bit)&BIT(GET_BIT(portx_bit)))

===================================
我自己寫的,定義好這個(gè)后,只要再定義端口就好了,
比如
#defineKEY1 A,2
#defineLED_RED A,3

if(PORT_IN(KEY1))
{
PORT_OUT1(LED_RED);
}

ICCAVR編譯出的代碼已經(jīng)是位操作了...讀起來也很直觀


關(guān)鍵詞: AVR位操

評論


技術(shù)專區(qū)

關(guān)閉