TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: ajrob en 23 de Octubre de 2013, 05:00:27
-
Buenas;
Tengo una duda a ver si me podéis ayudar. Lo que intento hacer es leer/escribir una eeprom cada 15 minutos.Es posible hacer una interrupción cada 15 minutos con los timers o necesito usar un circuito externo?
Muchas gracias
-
Una interrupción cada 15 minutos no podrás, pero sí puedes hacer una en el periodo más alto que consigas y allí incrementar un contador.
Cuando el contador llegue a una cifra tal que hayan trascurrido esos 15 minutos, puedes lanzar el proceso que necesites.
-
mira esto es un ejemplo;
necesitaría realizar esta orden de escritura cada 15 minutos..no entendí bien como debo realizarlo,si me podéis ayudar os lo agradecería mucho.
#include <18f4550.h>//Definimos la librería del Pic.
#FUSES INTHS,MCLR // Definimos los Fuses
#use delay(INTERNAL=4MHZ) //El reloj interno empleado es de 4hz
#use I2C(Master, sda=PIN_B0, scl=PIN_B1)
int8 sin_decimal=(26);
int8 decimales_cero=(00);
int16 direccion=(0b00000000);
void main()
{
for(direccion=0;direccion<=0X7ffe;direccion=direccion+2){
i2c_start();
delay_ms(50); //Se inicia la comunicación I2C.
i2c_write(0b10100000); //dirección del dispositivo y último bit 0 de escritura.
delay_ms(50);
i2c_write(direccion>>8); //escribe el valor alto en ésta dirección.
i2c_write(direccion); //escribe el valor alto en ésta dirección.
i2c_write(sin_decimal); // escribimos el dato que queremos almacenar.
i2c_write(decimales_cero); //escribimos un 0 para evitar un error(humedad=-1)
// delay_ms(1000);//--->1seg
i2c_stop(); // Finalizamos la comunicación I2C.
}
}
-
¡Pero ahí no tienes ninguna interrupción!
-
lo sé lo sé, ésto lo puse sin la interrupción por si me podíais orientar
-
Echa un vistazo a este hilo:ç
http://www.todopic.com.ar/foros/index.php?topic=26771.0