Génération d'un signal PWM

N

nzkunal

Guest
Salut,

J'essaie d'écrire du code pour générer un signal PWM rapide (8-bit Timer).J'utilise une ATMEGA48 Atmel et la simplicité ont choisi D6 port qui correspond à OCR0A.

J'ai lu la feuille de données et j'essaie de comprendre ce code que j'ai besoin pour exploiter ce canal.

Initialisation
TCCR0A = ox83 si COM0A = 2 pour les non-inverseuse et WGM0 [2:0] = 3 pour TOP = MAX
Est-ce l'initialisation seulement J'ai besoin d'exécuter

Contrôle du rapport cyclique
Changer OCR0A dire si OCR0A = 0x7F donnera cyclique de 50%

Est-ce que ce code look correct?

Merci

 
Salut!
Essayez ce code.Elle travaille pour moi.L'horloge externe est 4MHz.

void timer0_init (void)
(
TCCR0B = 0x00; / / minuterie d'arrêt
TCNT0 = 0x00; / / count clair
OCR0A = 200; / / définissez la fréquence PWM
OCR0B = 20; / / set cyclique (pour 50% duty réglez-le sur 100)
TCCR0A = 0x33; / / chronomètre de départ

)

En plus de cela, il a été clairement mentionnée dans la fiche technique que le résultat sera visible sur la broche de sortie correspondante (OC0x) si et seulement si son orientation est définie comme une broche de sortie.

Espérons que cela résout votre problème.
Observe.

 

Welcome to EDABoard.com

Sponsor

Back
Top