IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Générer un PWM sur un DSPIC30F en C


Sujet :

C

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 8
    Par défaut Générer un PWM sur un DSPIC30F en C
    Bonjour tout le monde,
    Voila pour un projet que j'ai a faire, je dois générer un simple signal PWM sur un DSPIC30F,
    un signal de fréquence 20KHZ par exemple. Je veux le faire sortir sur le port B, et cela en langage C.
    Mais je ne sais pas comment faire, et je ne trouve pas de documentation claire.
    Quelqu'un pourrait-il me montrer un code source simple qui ne fais que générer ce PWM de 20 KHZ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 107
    Par défaut
    Bonjour

    Vous avez plusieurs solutions pour générer une PWM sur un micro.

    L'utilisation d'un timer (compteur) est courante pour ce type de signal.

    1-En parcourant rapidement la datasheet, votre micro dispose d'un module Output Compare / PWM mode (page 101/102 chaputre 13.4) en mode "single PWM"
    Il faut renseigner la période (dépend de Tosc période/fréquence du micro) et le rapport cyclique, configurer la sortie de ce module en "output compare", indiquer si vous souhaitez utiliser un prescaler (pour avoir la fréquence souhaitée en sortie) et enfin lancer le timer.
    Par contre l'affectation de la sortie doit être imposée (a vérifier sur quel port)...

    2- Sinon, en fonction des autres ressources du micro : utiliser un autre timer et affecter un port dans l'interruption générée quand il atteint la valeur.

    Pour un code source en C, ceci n'est pas évident, çà dépend de nombreux paramètres (configuration de votre micro, ressources dispo...)

    En espérant que cela va vous aider

    datasheet : http://ww1.microchip.com/downloads/e...doc/70083g.pdf

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 8
    Par défaut
    Merci beaucoup, je vois mieux le principe maintenant.
    Je vais essayer de traduire tout ça en C...

Discussions similaires

  1. [Turbo Pascal] Générer du son sur la carte son
    Par boudakou dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 20/02/2009, 19h23
  2. Générer un lien sur une de mes vidéo flash
    Par P4board dans le forum Intégration
    Réponses: 0
    Dernier message: 19/02/2009, 11h24
  3. Générer un clic sur un bouton
    Par urban45 dans le forum Windows
    Réponses: 1
    Dernier message: 14/11/2008, 22h31
  4. [ImageMagick] Générer un texte sur une image
    Par kevinf dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 29/11/2007, 14h21
  5. Comment générer du code sur une feuille de calcul?
    Par mardona dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/05/2007, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo