跳转到主内容
Knowledgebase
Home
Renesas Electronics China - Knowledgebase

想在TM0的计数值是0到CR01期间内输出H,从CR01到CR00期间输出L。但当重写CR01值时H和L的输出被倒置。

最新更新:2011年10月 07日

Question:

我正在使用 uPD780034A 的16位定时器作为 PPG 输出。
CR00 是固定的(脉冲周期固定),并且 CR01 周期地被写入一个给定的值(用作PWM输出)。
我想在 TM0 的计数值是0到 CR01 期间内输出"H",从 CR01 到 CR00 期间输出"L"。

但是当重写 CR01 值时,存在下面的情况,"H"和"L"的输出被倒置。 (为使这次的 CR01 值大于前次的 CR01值而重写计数值,重写的时序位于 "TM0 和前次的 CR01 匹配"发生 和"TM0 和此次的 CR01 匹配"发生之间。)

Answer:

这是一个正常的操作。
对于16为计数器,输出的反转依赖于定时器的值与比较寄存器的值匹配。
因此,在与 CR01 匹配而输出反转后,在与 CR00 匹配之前,一个与 CR01 的匹配将再次发生, 并且输出再一次反转。

请执行设置,以使:如果新的 CR01 值比现在的 CR01 值小, 对 CR01 的重写时序放于定时器和 CR01 的匹配中断发生时; 如果新的 CR01 值比现在的 CR01 值大, 对 CR01 的重写时序放于定时器和 CR00 的匹配中断发生时。

另外,如果设置 CR01 的时间总是比中断服务时间长, 建议在 CR00 匹配中断发生时设置 CR01 的值。

Suitable Products