Cours:InfoS2 tdGenerationSignal : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Configuration du timer 2 en {{Rouge|fast PWM}})
(Configuration du timer 2 en {{Rouge|fast PWM}})
Ligne 18 : Ligne 18 :
  
 
{{Question|En utilisant les différents tableaux dans la datasheet :}}
 
{{Question|En utilisant les différents tableaux dans la datasheet :}}
*configurer le timer 2 en mode 7 : Fast PWM avec valeur TOP = OCR2A
+
*configurer le timer 2 en {{Rouge|mode 7}} : Fast PWM avec valeur TOP = OCR2A
*sachant que Fmli = Fcpu / (P . (OCR2A+1)) et on souhaite une fréquence de xx kHz
+
*sachant que Fmli = Fcpu / (P . (OCR2A+1)) et on souhaite une fréquence de {{Rouge|160 kHz}}
**choisir et configurer une valeur de Prédiviseur
+
**choisir et configurer une valeur de {{Rouge|Prédiviseur}}
**choisir une valeur pour OCR2A
+
**choisir une valeur pour {{Rouge|OCR2A}}
*le prédiviseur (qui changera la Fmli )
+
*la configuration des bits {{Rouge|COM2??}} sachant que nous utilisons le mode fast PWM sur la broche {{Rouge|OC2B}}
*la configuration des bits COMxAx sachant que nous utilisons le mode fast PWM
+
 
! Fcpu = 8 MHz !
 
  
 
{{Question|Compléter en conséquence le programme avec la configuration du timer :}}
 
{{Question|Compléter en conséquence le programme avec la configuration du timer :}}

Version du 12 mars 2024 à 09:36

Atmega328pPinout.jpeg

Fiche résumé

Retour à la liste des Tds/Tps

Éléments de correction

simuler avec simulIDE

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.

Todo.jpg 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

Question.jpg 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 160 kHz
    • choisir et configurer une valeur de Prédiviseur
    • choisir une valeur pour OCR2A
  • la configuration des bits COM2?? sachant que nous utilisons le mode fast PWM sur la broche OC2B


Question.jpg 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);
  }
}