Ich habe diesen Code hier für eine Rechteckwelle von 50% Einschaltdauer und 0,1 Hz Frequenz mit 8 MHz Fosc zu erzeugen:0,1 Hz Rechteckwellengenerator mit 30% Einschaltdauer bei der Montage
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
Was ich will, ist, wie um diesen Code zu modifizieren, um Rechteckwellen anstelle von Rechteckwellen und mit 30% Tastverhältnis anstelle von 50% durchzuführen.
Ich hoffe, dass jemand mich und Dank fortschrittlicher
Haben zwei Schleifen, eine nach der anderen, mit verschiedenen Timer-Werte. Einer steuert die hohe Ausgabe, der andere steuert die niedrige Ausgabe. Ihre Summe gibt die erforderliche Periode an und ihr Verhältnis gibt den erforderlichen Arbeitszyklus an. Also wäre 50% der Spezialfall, bei dem die beiden Timer-Zähler gleich sind. –
Vielen Dank für Ihre Antwort ** Mr Weather Vane **, ich habe Ihren genauen Punkt nicht verstanden ... würde es Ihnen etwas ausmachen, mir zu zeigen, was Sie mit Code meinen? –
Das sieht ähnlich aus wie PIC-Code, den ich seit einiger Zeit nicht mehr geschrieben habe. Angenommen, die Wellenformperiode benötigt 10000 Timer-Zähler, basierend auf der Konfiguration der Timer-Einstellungen. Bei einem Tastverhältnis von 30% schreiben Sie die Ausgabe hoch und verwenden einen Timer, um 3000 Zählungen zu verzögern. Dann schreiben Sie den Ausgang niedrig und verwenden den Timer, um 7000 Zählungen zu verzögern (Gesamtdauer 10000). Jetzt wiederholen. Wenn das Ihr Code ist, sollten Sie es nicht zu schwierig finden, nachdem Sie für eine bestimmte Wellenformperiode einen Tastgrad von 50% erreicht haben. –