我正在使用MPLAB IDE用C编写dspic33微控制器的代码。
这两段代码给予不同的dummOut_period值。使用const long时,它工作正常,而使用宏时,它给出了错误的值。为什么会这样?
const long PWM_FREQ = 25000; //Frequency of output PWM Voltage and Temp
const long PWM_CLOCK_FREQ = 500000000; //500Mhz PWM clock inside uC
pwmOut_period = PWM_CLOCK_FREQ / PWM_FREQ;
#define PWM_FREQ 25000 //Frequency of output PWM Voltage and Temp
#define PWM_CLOCK_FREQ 500000000 //500Mhz PWM clock inside uC
pwmOut_period = PWM_CLOCK_FREQ / PWM_FREQ;
字符串
1条答案
按热度按时间knpiaxh11#
宏在预处理器中被扩展为文字。无后缀的整数文字的类型为
int
,long int
或long long int
,这取决于值可以容纳的最小类型。在这种情况下,我提出,
int
类型被使用。两个int
s的划分可能会导致不同的值,而不是划分两个long
s。