SysIo  1.9.0
Embedded Library and tools
Broche PWM

Detailed Description

Ce module fournit les fonctions permettant de contrôler des broches de sorties PWM.
Ce module utilise le réglage "mark-space ratio", c'est à dire que "value" correspond au nombre de cycles d'horloge à l'état haut alors que "range" correspond à la période du signal généré en nombre de cycles d'horloge.

Functions

bool bPwmIsOpen (xPwm *pwm)
 Indique si la broche est ouverte. More...
 
bool bPwmIsRunning (xPwm *pwm)
 Indique si la génération du signal est démarrée. More...
 
double dPwmClockFreq (void)
 Fréquence d'horloge actuelle. More...
 
double dPwmFreq (int iDiv)
 Valeur de fréquence d'horloge correspondant à un diviseur. More...
 
int iPwmClockDiv (void)
 Diviseur d'horloge actuel. More...
 
int iPwmClose (xPwm *pwm)
 Fermeture d'une broche PWM. More...
 
int iPwmDivisor (double dFreq)
 Valeur de diviseur correspondant à une fréquence d'horloge. More...
 
int iPwmRange (xPwm *pwm)
 Période du signal PWM. More...
 
int iPwmRun (xPwm *pwm)
 Démarrage de la génération du signal PWM. More...
 
int iPwmSetClockDiv (int iDiv)
 Modification du diviseur d'horloge. More...
 
int iPwmSetClockFreq (double dFreq)
 Modification de la fréquence d'horloge. More...
 
int iPwmSetRange (int range, xPwm *pwm)
 Régle la période du signal PWM. More...
 
int iPwmSetValue (int value, xPwm *pwm)
 Régle la largeur d'impulsion du signal PWM. More...
 
int iPwmStop (xPwm *pwm)
 Arrêt de la génération du signal PWM. More...
 
int iPwmValue (xPwm *pwm)
 Largeur d'implusion du signal PWM. More...
 
xPwmxPwmOpen (int iPin)
 Ouverture d'une broche PWM. More...
 

Typedefs

typedef struct xPwm xPwm
 Port de sortie PWM. More...
 

Typedef Documentation

typedef struct xPwm xPwm

#include <pwm.h>

Port de sortie PWM.

La structure est opaque pour l'utilisateur.

Definition at line 38 of file pwm.h.

Function Documentation

bool bPwmIsOpen ( xPwm pwm)

#include <pwm.h>

Indique si la broche est ouverte.

Parameters
pwmle pointeur sur la broche
Returns
true si ouverte, false sinon
bool bPwmIsRunning ( xPwm pwm)

#include <pwm.h>

Indique si la génération du signal est démarrée.

Parameters
pwmle pointeur sur la broche
Returns
true si démarrée, false sinon
double dPwmClockFreq ( void  )

#include <pwm.h>

Fréquence d'horloge actuelle.

Cette lecture ne peut être effectuée que si au moins une broche PWM est ouverte.

Returns
la valeur de la fréquence effectivement réglée
double dPwmFreq ( int  iDiv)

#include <pwm.h>

Valeur de fréquence d'horloge correspondant à un diviseur.

Un appel avec la valeur 1 permet de connaitre la fréquence de l'horloge "mère"

Parameters
iDivvaleur du diviseur
Returns
la fréquence d'horloge
int iPwmClockDiv ( void  )

#include <pwm.h>

Diviseur d'horloge actuel.

Cette lecture ne peut être effectuée que si au moins une broche PWM est ouverte.

Returns
la valeur de diviseur effectivement réglée, -1 si erreur
int iPwmClose ( xPwm pwm)

#include <pwm.h>

Fermeture d'une broche PWM.

Parameters
pwmle pointeur sur la broche
Returns
0, -1 si erreur
int iPwmDivisor ( double  dFreq)

#include <pwm.h>

Valeur de diviseur correspondant à une fréquence d'horloge.

Les fréquences d'horloges sont réglées grâce à un facteur de division qui est appliqué à une horloge "mère".
Du fait que ce diviseur est un nombre entier, les fréquences d'horloge ne peuvent être réglés qu'approximativement.

Parameters
dFreqfréquence d'horloge
Returns
la valeur du diviseur
int iPwmRange ( xPwm pwm)

#include <pwm.h>

Période du signal PWM.

Parameters
pwmle pointeur sur la broche
Returns
la période en nombre de cycles d'horloge, -1 si erreur
int iPwmRun ( xPwm pwm)

#include <pwm.h>

Démarrage de la génération du signal PWM.

Les caractéristiques du signal généré sont modifiés à l'aide des fonctions iPwmSetRange(), iPwmSetValue() et iPwmSetClockDiv()

Parameters
pwmle pointeur sur la broche
Returns
0, -1 si erreur
int iPwmSetClockDiv ( int  iDiv)

#include <pwm.h>

Modification du diviseur d'horloge.

Ce réglage ne peut être effectué que si au moins une broche PWM est ouverte. Le réglage est commun à toutes les broches PWM. Le nombre de valeurs disponibles dépend de l'architecture, la valeur est ajustée si elle dépasse les bornes (un avertissement est alors affiché)

Parameters
iDivvaleur du diviseur
Returns
la valeur de diviseur effectivement réglée, -1 si erreur
int iPwmSetClockFreq ( double  dFreq)

#include <pwm.h>

Modification de la fréquence d'horloge.

Ce réglage ne peut être effectué que si au moins une broche PWM est ouverte. Le réglage est commun à toutes les broches PWM. Le nombre de valeurs disponibles dépend de l'architecture, la valeur est ajustée si elle dépasse les bornes (un avertissement est alors affiché)

Parameters
dFreqfréquence d'horloge
Returns
la valeur de diviseur effectivement réglée, -1 si erreur
int iPwmSetRange ( int  range,
xPwm pwm 
)

#include <pwm.h>

Régle la période du signal PWM.

Parameters
rangepériode du signal en nombre de cycles d'horloge
pwmle pointeur sur la broche
Returns
0, -1 si erreur
int iPwmSetValue ( int  value,
xPwm pwm 
)

#include <pwm.h>

Régle la largeur d'impulsion du signal PWM.

Parameters
valueplargeur d'impulsion en nombre de cycles d'horloge
pwmle pointeur sur la broche
Returns
0, -1 si erreur
int iPwmStop ( xPwm pwm)

#include <pwm.h>

Arrêt de la génération du signal PWM.

Les réglages de la broche ne sont pas modifiés

Parameters
pwmle pointeur sur la broche
Returns
0, -1 si erreur
int iPwmValue ( xPwm pwm)

#include <pwm.h>

Largeur d'implusion du signal PWM.

Parameters
pwmle pointeur sur la broche
Returns
la largeur d'impulsion en nombre de cycles d'horloge, -1 si erreur
xPwm* xPwmOpen ( int  iPin)

#include <pwm.h>

Ouverture d'une broche PWM.

Parameters
iPinle numéro de la broche
Returns
le pointeur sur la broche, NULL en cas d'erreur