Problema Xmega PWM de Atmel

5

Estoy intentando que pwm funcione en el Atmel Xmega256A3BU. No obtengo el PWM deseado en el pin del puerto. Aquí está mi inicialización para la generación PWM en el código.

void pwm_init()
{
 PORTC_DIR = 0x01;             //Set PC.0 as the output port 
 TCC1_PER = 0xFFFF;            //Set the period of the waveform 
 TCC1_CTRLB |= 0x03;           //Single slope mode     
 TCC1_CTRLB |= 0x10;           //channel selection CCAEN
 TCC1_CTRLA |= 0x02;           //clock selection clk/2
}
void main( void )
{
  pwm_init();
  TCC1_CCABUF = 0x7FFF;                      //set the duty cycle as 50%
  while((TCC1_INTFLAGS & 0x01) == 0);     //wait for the new compare value to be loaded 
  TCC1_INTFLAGS = 0x00;                   //clear the interrupt flag
  while(1);
 }

Aquí, acabo de proporcionar el fragmento de mi código que se ejecuta a 32MHz. Entonces, ¿qué más me estoy perdiendo aquí? Cualquier ayuda sería muy apreciada. Estoy haciendo esto en el banco de trabajo AVR IAR. Entonces, si alguien puede compartir su código PWM, eso también sería útil.

    
pregunta Jimit

1 respuesta

3

Aquí está el código que resolvió mi problema de PWM. Es un código independiente para la generación PWM para ATXmega256A3BU. Utiliza el temporizador 0 para la generación de PWM en el pin PC.0.

#include "ioxm256a3bu.h"
#include <stdint.h>
#include <stdio.h>

void pwm_init(void);

int main( void )
{
 pwm_init();
 TCC0_CCABUF = 0x7FFF;                      //set the duty cycle as 50%
 while((TCC0_INTFLAGS & 0x01) == 0);     //wait for the new compare value to be loaded 
 TCC0_INTFLAGS = 0x00;                   //clear the interrupt flag
 while(1);
}

 void pwm_init()
{
 PORTC_DIR = 0x01;             //Set PC.0 as the output port 
 TCC0_PER = 0xFFFF;            //Set the period of the waveform 
 TCC0_CTRLB |= 0x03;           //Single slope mode     
 TCC0_CTRLB |= 0x10;           //channel selection CCAEN
 TCC0_CTRLA |= 0x02;           //clock selection clk/2
}
    
respondido por el Jimit

Lea otras preguntas en las etiquetas