hola me estoy inciando en esto de los micros avr tengo un problema para usar el rtc
(real time conuter)
este es el codigo que use pero a la hora de cambiar el estado de PD0 (PORTD ^= 0x01 ) se supone que debe de verse el cambio por los pulsos de reloj
PERO NO HACE NADA!! QUISIERA QUE ME AYUDARAN GRACIAS
#define F_CPU 8000000UL //Oscilador interno de 8MHz
#include <avr/io.h> //Definición de puertos y terminales
#include <util/delay.h> //Libreria para retardos
#include <avr/interrupt.h> //Libreria para interrupciones
int main(void)
{
//Habilitar a todo el PORTD como salidas
DDRD = 0xFF;
//Esperar al menos 1 seg para estabilizacion del clk secundario
_delay_ms(1000);
//Habilitar el reloj externo y
//Configurar al micro para que funcione con el cristal externo de 32.768 KHz
//en forma asincrona (independiente del oscilador de 8MHz interno)
ASSR |= (1<<EXCLK) | (1<<AS2);
//32.768 KHz / 128 para hacer tiempos exactos de 1 segundo
//con cada interrupción por sobreflujo
TCCR2B |= (1<<CS22) | (1<<CS20);
//Habilitar la interrupción por sobre flujo
//para el Timer/Counter2 que es de 8 bits
TIMSK2 |= (1<<TOIE2);
//Habilitar las interrupciones
sei();
//Dejar al micro corriendo para que siga
//habiendo pulsos de reloj
for(;
{
}
}
//Vector de interrupción por sobreflujo
ISR(TIMER2_OVF_vect)
{
//Hacer toggle en PD0 para
//comprobar el funcionamiento
PORTD ^= 0x01 ;
(real time conuter)
este es el codigo que use pero a la hora de cambiar el estado de PD0 (PORTD ^= 0x01 ) se supone que debe de verse el cambio por los pulsos de reloj
PERO NO HACE NADA!! QUISIERA QUE ME AYUDARAN GRACIAS
#define F_CPU 8000000UL //Oscilador interno de 8MHz
#include <avr/io.h> //Definición de puertos y terminales
#include <util/delay.h> //Libreria para retardos
#include <avr/interrupt.h> //Libreria para interrupciones
int main(void)
{
//Habilitar a todo el PORTD como salidas
DDRD = 0xFF;
//Esperar al menos 1 seg para estabilizacion del clk secundario
_delay_ms(1000);
//Habilitar el reloj externo y
//Configurar al micro para que funcione con el cristal externo de 32.768 KHz
//en forma asincrona (independiente del oscilador de 8MHz interno)
ASSR |= (1<<EXCLK) | (1<<AS2);
//32.768 KHz / 128 para hacer tiempos exactos de 1 segundo
//con cada interrupción por sobreflujo
TCCR2B |= (1<<CS22) | (1<<CS20);
//Habilitar la interrupción por sobre flujo
//para el Timer/Counter2 que es de 8 bits
TIMSK2 |= (1<<TOIE2);
//Habilitar las interrupciones
sei();
//Dejar al micro corriendo para que siga
//habiendo pulsos de reloj
for(;
{
}
}
//Vector de interrupción por sobreflujo
ISR(TIMER2_OVF_vect)
{
//Hacer toggle en PD0 para
//comprobar el funcionamiento
PORTD ^= 0x01 ;