【发布时间】:2016-05-17 05:46:32
【问题描述】:
我这里有这个代码,用于生成一个占空比为 50%、频率为 0.1Hz、频率为 8MHz Fosc 的方波:
BCF TRISD,7
MOVLW 0x07
MOVWF T0CON
HERE MOVLW 0x67
MOVWF TMR0L
MOVLW 0x69
MOVWF TMR0H
BCF INTCON,TMR0IF
BTG PORTD,7
BSF T0CON,TMROON
AGAIN BTFSS INTCON,TMR0IF
BRA AGAIN
BCF T0CON,TMR0ON
BRA HERE
我想要的是如何修改此代码以执行矩形波而不是方波,并使用 30% 的占空比而不是 50%。
希望有人能帮助我,并在此致谢
【问题讨论】:
-
有两个循环,一个接一个,具有不同的计时器值。一个控制高输出,另一个控制低输出。它们的总和给出了所需的周期,它们的比率给出了所需的占空比。所以 50% 是两个计时器计数相等的特殊情况。
-
感谢您的回复天气风向标先生,我没有明白您的确切意思...您介意告诉我您所说的代码是什么意思吗?
-
这看起来类似于 PIC 代码,我已经有一段时间没有写了。但假设波形周期需要 10000 个定时器计数,基于定时器设置的配置。对于 30% 的占空比,您将输出写入高电平,并使用计时器延迟 3000 次计数。然后将输出写入低电平,并使用定时器延迟 7000 次计数(总周期 10000)。现在重复。如果这是您的代码,您应该不会觉得太难,因为在给定的波形周期内管理了 50% 的占空比。