【发布时间】:2015-05-25 07:06:02
【问题描述】:
#define MHZ *1000000l
#define MSEC /1000l
这是函数定义
unsigned int SysTick_Config(unsigned int ticks)
{
if (ticks > SysTick_LOAD_RELOAD_Msk)
return (1); // Reload value impossible
STRELOAD = (ticks & SysTick_LOAD_RELOAD_Msk) - 1; // set reload register
return (0); // Function successful
}
函数的调用如下所述
SysTick_Config(96MHZ * 2.5MSEC);
我怀疑使用的宏。写 96MHZ 是否意味着它被 (96 * 1000000l) 取代? 96 是否乘以 1000000 ? 另外,#define MSEC /1000l 中的 /1000l 是什么意思?为什么使用 /。
我正在使用 IAR 嵌入式工作台
【问题讨论】:
-
编辑您的问题以包含
C标签;你能告诉我们你是如何编译你的代码的吗?你正在使用什么编译器?对于gcc,我有error: invalid suffix "MHZ" on integer constant。但如果我将其修改为SysTick_Config(96 MHZ * 2.5 MSEC); -
可能结尾不是'1',而是字母'l',整数常量的长后缀。
-
谢谢你..它的'l'而不是1..我的编译器显示l和1是一样的......所以,可能我很困惑
-
@tapanchawda 你为什么不编译它看看会发生什么?
-
我已经编译好了..没有错误