Генератор прямоугольной волны 0,1 Гц с рабочим циклом 30% в сборке

У меня есть этот код здесь для генерации прямоугольной волны с рабочим циклом 50% и частотой 0,1 Гц с Fosc 8 МГц:

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%.

Я надеюсь, что кто-то может помочь мне, и спасибо заранее

1 ответ

Спасибо за помощь, господин Weather Vane. Я отредактировал код для выполнения 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
Другие вопросы по тегам