2016-05-17 12 views
0

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

+0

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

+0

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? –

+0

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

Antwort

0

Danke für die Hilfe helfen kann Herr Wetterfahne Ich habe den Code bearbeitet die 30% Tastverhältnis durchzuführen, aber die Verzögerung Teil ich es nicht so lösen konnte weit ....

Hier ist das Update ..

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