Está en la página 1de 4

Fast PWM mode

PROFESOR
Fiestas Ugas, Antonio Esteban

CURSO
Microcontroladores

ALUMNOS:
Castillo Zavaleta, Santiago Evaristo
Fernández Campos, Piero Frank
Rivas Huamanñahui, Misael Mateo
Villamizar Morales, Patrick Michael

Lima – Perú

2022-02
1. Código:
#include <avr/io.h>
void t_config(void)
{
TCCR0A|=0x83;
TCCR0B|=0x05;
TIMSK0|=0x02;
}
int main(void)
{
DDRD=0x40;
t_config();
OCR0A=100;
/* Replace with your application code */
while (1)
{
}
}
2. Explicación de código:

Se crea la función “t_config” sin ningún valor a retorno por lo que dentro del paréntesis se coloca
“void”. Dentro de esta función se colocan las respectivas configuraciones en los registros TCCR0A,
TCCR0B y TIMSK0. Al TCCR0A se le asigna el valor de 0x83, o 0b10000011 y al registro TCCR0B se le
da el valor de 0x05, o 0b00000101 lo cual si se ve la imagen 1 y 2 se puede reconocer que con el
bit 0 y 1 del registro TCCR0A junto con el bit 3 del registro TCCR0B dan la configuración para el Fast
PWM mode como se puede observar en la imagen 3. A su vez también se debe observar en la
imagen 1 que el bit 7 y 6 tendrán la combinación de 10, lo cual al estar configurado en el Fast
PWM mode indica lo visto en la imagen 4, lo que ocurre es que pone la salida en 0 y después lo
pone en 1.

Posteriormente, en el registro TIMSK0 se configura el preescalador con el bit 0, 1 y 2, al colocar el


valor de 0x02 o 0b00000010 se tendría el preescalador de 1024. Por lo que la nueva frecuencia es
el resultado de dividir 16000000/1024 lo que resulta en una frecuencia de 15625 Hz.

Imagen 1. Bits del registro TCCR0A.


Imagen 2. Bits del registro TCCR0B.

Imagen 3. Configuraciones del PWM.

Imagen 4. Configuraciones del comparador A.

En cuanto a la segunda parte del código, se define como salida al PIND6 ya que es la salida de
OC0A, después de ello se llama a la función “t_config”, para después designar en OCR0A (El
comparador A) el número con el que irá comparando, en este caso 100. Y posteriormente se
realiza un bucle while (1) que siempre se repetirá y no tendrá ningún contenido dentro. Con lo
mencionado anteriormente, lo que debería de aparecer en el osciloscopio debería ser lo siguiente:
3. Comentario de lo aprendido
 Se aprendió a utilizar y configurar los registros TCCR0A, TCCR0B y TIMSK0 para
poder hacer uso del Fast PWM mode y también las configuraciones necesarias en
los registros antes mencionados para que este funcione de manera adecuada, a su
vez se conoció que el PIND6 era la salida de OC0A y el PIND5 era la salida de OC0B
4. Conclusiones
 El uso del Fast PWM mode llegó a ser mucho más eficiente que el timer normal,
para configurar el periodo cuando la señal esté en 1 y posteriormente en 0, ya que
con el Fast PWM mode se necesitaron menos líneas de código a comparación del
normal.

También podría gustarte