0

我正在开发一个基于 MSP430 微芯片的项目,使用 IAR 编译器。这是简化的问题

在我的项目中,我有 3 个文件:

clock.h中:

#define MCLK_8MHZ
void clk_init(void);

clock.c中:

#include "clock.h"
void clk_init(void)
{
    #ifdef MCLK_8MHZ
        #define delay_ms(x) __delay_cycles((long)(1000000*(double)x/1000.0))  
    #endif
    #ifdef MCLK_12MHZ
        ...
    #endif
}

main.c 中:

#include "clock.h"
clk_init();
delay_ms(5);

并且编译器会说 函数“delay_ms”隐式声明

我认为它将 delay_ms() 误认为是函数而不是宏。当然我可以将它定义为一个真正的函数。但我认为这会损害时间控制的准确性。

如何解决这个问题呢?

4

1 回答 1

0

Do you need quotes around your include in main.c like:

#include "clock.h"

?

If that is your only warning, it's something else.

于 2013-07-18T12:50:45.287 回答