[英]C macro to turn a pin on or off
我知道之前有人問過這個問題,但我花了幾個小時尋找並測試了一些東西,卻找不到解決方案。
我想替換這個:
#define LED_ON PORTA|=(1<<6)
#define LED_OFF PORTA&=~(1<<6)
用這樣的東西:
#define ON 1
#define OFF 0
#define LED(x) if (x==ON) PORTA|=(1<<6) else if (x==OFF) PORTA&=~(1<<6)
那么這樣做的正確方法(或最佳方式?)是什么?
像這樣?
#define LED(x) (x==ON) ? (PORTA|=(1<<6)) : (PORTA&=~(1<<6))
編輯:輕微的錯誤,我道歉。 這是你想要的嗎?
您也可以使用三元運算符。
#define ON 1
#define OFF 0
#define LED(X) (X)?(PORTA|=(1<<6)):(PORTA &= ~(1<<6));
你可以通過將引腳號替換為更通用的宏:
#define ON 1
#define OFF 0
#define LED(STATE, PIN) (STATE)?(PORTA|=(1<<PIN)):(PORTA &= ~(1<<PIN));
此外,您可以通過將PortName替換為以下內容使其成為所有端口的通用:
#define ON 1
#define OFF 0
#define LED(STATE, PORT, PIN) (STATE)?(PORT|=(1<<PIN)):(PORT&=~(1<<PIN));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.