Как высветить ошибку, если макрос не определен?

Я хочу, чтобы моя программа высвечивала ошибку времени компиляции, такую ​​как "LCD_PORT notfined", если она не определена в самой программе. Для этого я изменил заголовочный файл следующим образом

.
.
.
#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!!");
}

2 ответа

Решение

Потому что вы определяете макрос только после включения заголовочного файла. Что вам нужно, это:

#define LCD_PORT PORTA

#include <lcd.h>

Вы должны определить это, прежде чем включать заголовок.

Другие вопросы по тегам