0

如果程序本身没有定义它,我希望我的程序闪现编译时错误,如“LCD_PORT 未定义”。为此,我像这样修改了头文件

.
.
.
#if LCD_IO_MODE
#ifndef LCD_PORT
#error LCD_PORT not defined //(e.g. #define LCD_PORT PORTA/B/C/D)
#endif

#define LCD_DATA0_PORT   LCD_PORT     /**< port for 4bit data bit 0 */
#define LCD_DATA1_PORT   LCD_PORT     /**< port for 4bit data bit 1 */
.
.
.
...

但即使在定义 LCD_PORT 之后(如以下程序中),它也会闪烁错误。

#include <avr/io.h>
#include <lcd.h>

#define LCD_PORT PORTA

int main(void)
{
    lcd_init(LCD_DISP_ON_CURSOR); 
    lcd_home();
    lcd_puts("Hello world!!");
}
4

2 回答 2

1

因为您仅在包含头文件后才定义宏。你需要的是这样的:

#define LCD_PORT PORTA

#include <lcd.h>
于 2013-04-13T07:52:16.760 回答
0

您需要在包含标题之前定义它。

于 2013-04-13T07:53:14.837 回答