Cours:InfoS2 tdGenerationSignal
Révision datée du 12 mars 2024 à 08:34 par Bjacquot (discussion | contributions) (→Configuration du timer 2 en {{Rouge|fast PWM}})
Pensez à mettre sur la 1ère ligne de votre code : // Compiler: Avrgcc device: nomDuMicrocontroleur
fichier pour simuler avec simulIDE : infouc_TdGenerationSignal.sim1
datasheet aTmega328p
Cahier des charges
Configuration du timer 2 en fast PWM
On utilise le Timer 2 pour générer un signal MLI qui sera filtré par un filtre passe-bas passif.
Chercher dans la datasheet du µcontroleur (lien ci dessus) la section décrivant ce périphérique et plus particulièrement les pages donnant la descriptions des registres
En utilisant les différents tableaux dans la datasheet :
- configurer le timer 2 en mode 7 : Fast PWM avec valeur TOP = OCR2A
- sachant que Fmli = Fcpu / (P . (OCR2A+1)) et on souhaite une fréquence de xx kHz
- choisir et configurer une valeur de Prédiviseur
- choisir une valeur pour OCR2A
- le prédiviseur (qui changera la Fmli )
- la configuration des bits COMxAx sachant que nous utilisons le mode fast PWM
! Fcpu = 8 MHz !
Compléter en conséquence le programme avec la configuration du timer :
int main()
{
// configuration des sorties
// timer en mode fast PWM (mode 3)
// valeur du prediviseur
// génération de la sortie par le timer
// rapport cyclique
while(1)
{
// on peut changer le rapport cyclique régulièrement
_delay_ms(500);
}
}