【问题标题】:0.1Hz rectangular wave generator with 30% duty cycle in assembly0.1Hz 矩形波发生器,组装时占空比为 30%
【发布时间】: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% 的占空比。

标签: assembly microc


【解决方案1】:

感谢您的帮助天气风向标先生我已经编辑了代码以执行 30% 的占空比,但延迟部分到目前为止我无法解决它....

这里是更新..

BCF TRISD,2
MOVLW   0x07
MOVWF   T0CON
HERE:   MOVLW   0xE5
MOVWF   TMR0L
MOVLW   0x48
MOVWF   TMR0H
BCF INTCON,TMR0IF
BTG PORTD,2
BSF T0CON,TMR0ON
AGAIN:  BTFSS   INTCON,TMR0IF
BRA AGAIN
BCF T0CON,TMR0ON
BRA HERE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    相关资源
    最近更新 更多