主程序:
/*==============外部文件============*/
#include "STM8S103K.h"
#include "CarL.h"
CarL.h中的内容如下:
#define Red5PwmH TIM1_CCR2H
#define Red5PwmL TIM1_CCR2L
#define Gre5PwmH TIM1_CCR1H
#define Gre5PwmL TIM1_CCR1L
/*==============全局变量===========*/
extern void InitGpio(void);
extern void ClockSwitch(void);
extern void Time1PwmSet(void);
extern void Time2PwmSet(void);
extern void Time4Set(void);
extern void ClrTimPwmL(void);
main()
{
InitGpio();
ClockSwitch();
Time1PwmSet();
Time2PwmSet();
Time4Set();
_asm("rim"); //允许CPU全局中断
while (1)
{
Gre5PwmH = 01; //第一路脉宽
Time2PwmSet();
}
}
外部函数,不和Main函数同一个文件:
void ClrTimPwmL(void)
{
Red5PwmL = 0;
Gre5PwmL = 0;
}
本人有用的是COMSIC编译器,
编译出现:
#error cpstm8 timepwmset.c:51(1+8) Gre5PwmL undefined
#error cpstm8 timepwmset.c:50(1+8) Red5PwmL undefined
说Gre5PwmL 和Red5PwmL 没有定义
请问高手:#define是不是不能定义外部文件中的函数的内容呢 |