Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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.