J'ai ce code ici pour générer une onde carrée de 50% du cycle de service et la fréquence de 0,1 Hz avec 8 MHz Fosc:0.1Hz générateur d'onde rectangulaire avec 30% du cycle de service dans l'assemblage
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
Ce que je veux est de savoir comment pour modifier ce code afin d'effectuer une onde rectangulaire au lieu de l'onde carrée et avec un facteur de marche de 30% au lieu de 50%.
J'espère que quelqu'un peut me aider et grâce avancées
ont deux boucles, l'une après l'autre, avec des valeurs de minuterie différentes. L'un contrôle la sortie haute, l'autre contrôle la sortie basse. Leur somme donne la période requise et leur rapport donne le cycle de service requis. Donc, 50% serait le cas spécial où les deux comptes de minuterie sont égaux. –
Merci pour votre réponse ** M. Weather Vane **, je n'ai pas compris votre point exact ... cela vous dérangerait-il de me montrer ce que vous entendez par code? –
Cela ressemble au code PIC, que je n'ai pas écrit depuis un certain temps. Mais supposons que la période de forme d'onde nécessite 10 000 comptages de minuterie, en fonction de la configuration des paramètres de minuterie. Pour un cycle de travail de 30%, vous écrivez la sortie haute, et utilisez une minuterie pour retarder 3000 comptes. Ensuite, vous écrivez la sortie basse, et utilisez la minuterie pour retarder 7000 comptes (période totale 10000). Répétez maintenant. Si c'est votre code, vous ne devriez pas le trouver trop difficile, ayant réussi un cycle de service de 50% pour une période de forme d'onde donnée. –