TODOPIC
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
. ¿Perdiste tu
email de activación
?
1 Hora
1 Día
1 Semana
1 Mes
Siempre
Ingresar con nombre de usuario, contraseña y duración de la sesión
Este tema
Este sub-foro
Todo el foro
Google
Inicio
Ayuda
Buscar
Ingresar
Registrarse
TODOPIC
»
Otros Microcontroladores / Dispositivos programables
»
Microcontroladores 8 bits
(Moderador:
stk500
) »
PWM con el ATtiny2313
« anterior
próximo »
Imprimir
Páginas: [
1
]
Ir Abajo
Autor
Tema: PWM con el ATtiny2313 (Leído 3784 veces)
0 Usuarios y 1 Visitante están viendo este tema.
jonathanPIC888
Colaborador
PIC18
Mensajes: 320
PWM con el ATtiny2313
«
en:
08 de Octubre de 2010, 22:38:27 »
Bueno les dejo el código para probar el uso del PWM en el timer 0 del ATtiny2313:
Código: C
/*************************************************
PROGRAMAS DE EJEMPLO PARA EL ATTINY2313 - 20PU.
PROGRAMADOR: Moyano Jonathan.
Fecha: Setiembre del 2010.
Programa: Enciende y apaga un LED conectado al
puerto PB2 del microcontrolador progresivamente mediante PWM.
Cristal: 4Mhz.
Programador: PK2-ISP.
************************************************/
#include <avr/io.h> // Definiciones de hardware.
#include <util/delay.h> // Librería para generar retardos.
// Led conectado al PIN PB2 del micro donde está la salida PWM.
#define LEDPIN 2
// Definimos el valor máximo que puede tomar el PWM.
#define PWM_MAX 255
int
main
(
void
)
{
DDRB
=
0x1F
;
// PB4 a PB0 como salidas.
PORTB
=
0x00
;
// Ponemos todas las salidas a 0.
uint8_t
brillo
=
0
;
// Declara e inicializa la variable brillo 0 = led apagado; 0xFF = led con máximo brillo.
// -------------------------
// Iniciamos el módulo PWM.
// PWM de 8 bits, fase correcta.
// 8 bits nos darán 256 niveles de brillo.
TCCR0A
|=
(
1
<<
WGM00
)
;
// Limpiamos los bits OC0A/OC0B en el comparador.
// Setea OC0A/OC0B en la parte inferior (Modo no invertido)
TCCR0A
|=
(
1
<<
COM0A1
)
;
// Seteamos el prescaler a 64.
// 4 MHz / 64*256 = Frecuencia de PWM = ~235 Hz
TCCR0B
=
(
1
<<
CS00
)
|
(
1
<<
CS01
)
;
// -------------------------
while
(
1
)
{
for
(
brillo
=
0
;
brillo
<=
PWM_MAX
;
brillo
++
)
{
// Cargamos el valor de brillo en el comparador.
OCR0A
=
brillo
;
// Ponemos un retardo para ver el efecto.
_delay_ms
(
10
)
;
}
return
0
;
}
}
Espero les sirva
En línea
Imprimir
Páginas: [
1
]
Ir Arriba
« anterior
próximo »
TODOPIC
»
Otros Microcontroladores / Dispositivos programables
»
Microcontroladores 8 bits
(Moderador:
stk500
) »
PWM con el ATtiny2313
anything