2013-04-13 3 views
0

Я хочу, чтобы моя программа выполняла ошибку времени компиляции, например, «LCD_PORT not defined», если она не определена в самой программе. Для этого я изменил файл заголовка, как этоКак пропустить ошибку, если макрос не определен?

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

ответ

1

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

#define LCD_PORT PORTA 

#include <lcd.h> 
+0

спасибо H2CO3 :) это работает :) – Adwait

0

Вам необходимо определить его перед включением заголовка.

+0

спасибо superman;) он работает ... :) – Adwait

Смежные вопросы