我是如何为嵌入式软件测试一些特定的 C 宏的。
例如,如果我有以下宏:
/*
Set a pin as an input
port (B,C, D or E)
pin - pin to set (0-7)
*/
#define _SET_INPUT_PIN(port,pin) DDR ## port &= ~(1<<pin)
#define SET_INPUT_PIN(...) _SET_INPUT_PIN(__VA_ARGS__)
Run Code Online (Sandbox Code Playgroud)
我想用两个端口测试它,一个存在(LED_OK)另一个不存在(LED_FAIL):
#define LED_OK D,3
#define LED_FAIL D,8
Run Code Online (Sandbox Code Playgroud)
当我尝试测试它时,LED_OK 和 LED_FAIL 都可以正常工作,但某种警告/失败应该提醒 LED_FAIL 不存在,因为 PORTD 只定义了引脚 0 到 7。
那么,当我通过LED 时,如何检查“ pin ”是否在范围内?