Salut quelqu un pourrait il m aider car je ne sais pas comment faire un signal pwm avec un pic 10f222 merci de votre aide
-----
09/08/2007, 03h21
#2
invite9d3f5cd9
Date d'inscription
janvier 1970
Messages
167
Re : Signal pwm
Bonsoir,
Ce PIC ne possède qu'une seule minuterie TMR0. Il faut donc l'utiliser pour faire à la fois la durée ON et la durée OFF.
Il n'y a pas d'interruption de généré par la minuterie.
On programme le TMR0 avec le préscaler pour générer une unité de temps arbitraire. Supposons 10 µs.
Si on veut une durée On de 1 ms et une durée OFF de 100 µs. il faut 100 unités de temps pour la durée ON et 10 unités pour la durée OFF.
Pour générer la durée ON on place dans le registre du TMR0 la valeur X = 256 - 100 = 156.
Pour générer la durée OFF on place dans le registre de TMR0 X = 256 - 10 = 246.
Pour savoir si la durée est terminé, on lit le registre de TMR0 et on vérifie dans le registre STATUS si la valeur lue est nulle ZERO.
Procédure:
On choisit une sortie GP0 par exemple et on la met à 1 et on met le registre de TMR0 à 156.
On surveille le registre TMR0 et quand il contient une valeur nulle, on y place 246 et on met GP0 à 0.
Je ne te dis pas tous les détails pour TRIS et le registre d'option. Mais je répond à la question.
Salutations
09/08/2007, 09h47
#3
inviteec009e1f
Date d'inscription
janvier 1970
Messages
13
Re : Signal pwm
Merci beaucoup!
Je dois realiser un temps on de 300µs et un temps off de 700µs
(1khz avec un rapport cyclique de 30%)
Comment faire pour choisir le prescaler dans mon cas??
Merci d avance
09/08/2007, 21h06
#4
inviteec009e1f
Date d'inscription
janvier 1970
Messages
13
Re : Signal pwm
Personne?
Aujourd'hui
A voir en vidéo sur Futura
10/08/2007, 03h53
#5
invite9d3f5cd9
Date d'inscription
janvier 1970
Messages
167
Re : Signal pwm
Envoyé par jujuscarface
Merci beaucoup!
Je dois realiser un temps on de 300µs et un temps off de 700µs
(1khz avec un rapport cyclique de 30%)
Comment faire pour choisir le prescaler dans mon cas??
Merci d avance
Tu peux utiliser l'horloge du PIC (FOSC/4) ou une externe sur la broche GP2.
Le choix de l'horloge externe pourrait être de 10 kHz et mettre le prescaler à 1 pour obtenir de unités de temps de 10 µs.
Le choix de l'horloge interne peut être de 4/8 MHz. Si on choisit 4 MHz, FOSC/4 sera de 1Mhz. Si on sélectionne 1:16 pour le prescaleron aura des unités de temps de 16 µs. Pour obtenir 1:16 pour le prescaler, il faut mettre les bits PS2 = 0 PS1=1 PS0=1 dans le registre OPTION. Avec une unité de temps de 16 µs tu pourras faire 304 µs et 704 µs. La fréquence sera un peu plus petite que 1 kHz, soit 992 Hz. Je pense qu'il a moyen de modifier un peu la fréquence de 4 MHz par programmation et pourvoir s'approcher de 1 kHZ.
J'espère que c'est clair.