[转帖]对于在XS1的计时器什么是溢出周期?
我使用了一般的定时器计数1微秒的周期:
timer t;
int time;
t :> time;
t when timerafter (time + 100) :> time;
and port timers:
out port p = XS1_PORT_1F;
int time;
p <: 1 @ time;
p @ (time + 100) <: 0;
然而,当我计数较长(几毫秒),端口计时器给出错误的结果。对于这两种类型的定时器什么是溢出周期,我什么时候应该使用一个比另一个?
回答:
端口定时器是16位,默认情况下它们的时钟在100MHz随参考时钟。因此,他们涵盖了一系列655us(655360ns)。如果您正在使用的时间超过了,那么你将不得不使用一个定时器和端口时间的组合。
定时器计数器被重置在点它们连接到启动时钟。因此他们将不符合的最显着的16位定时器。。然而,假设它们仍对100MHz的基准时钟运行,那么就可以得到定时器和至少显著16位和端口计时器值之间的偏移量。
发表时间:2014年8月20日9:55:39