我知道之前有人问过这个问题,但我花了几个小时寻找并测试了一些东西,却找不到解决方案.
我想替换这个:
#define LED_ON PORTA|=(1<<6)
#define LED_OFF PORTA&=~(1<<6)
Run Code Online (Sandbox Code Playgroud)
用这样的东西:
#define ON 1
#define OFF 0
#define LED(x) if (x==ON) PORTA|=(1<<6) else if (x==OFF) PORTA&=~(1<<6)
Run Code Online (Sandbox Code Playgroud)
那么这样做的正确方法(或最佳方式?)是什么?
I've defined a macro, using input from a previous question I asked here. The macro is intended to either set, clear, or check a GPIO pins state. The macro works as expected however a problem shows up when compiling. I get compiler warnings anywhere it's used:
Warning right-hand operand of comma expression has no effect
when I use the macro like this:
#define ON 1
#define OFF 2
#define ENA 3
#define OUT_3(x) (x==ON) ? (PORTJ.OUTSET=PIN2_bm) : (x==OFF) ? …Run Code Online (Sandbox Code Playgroud)