Hola
Resulta que estoy haciendo una alarma pero usando el delay(); donde un rele se queda activado durante 30 segundos, pero en ese momento que se apague y prenda un led. Y lo estoy haciendo con rtos, entonces por el delay las demás tareas se pausan.
Este es un código simple usando delay:
¿Cual sería la alternativa para no usar delay, sin perjudicar a otros procesos?
Resulta que estoy haciendo una alarma pero usando el delay(); donde un rele se queda activado durante 30 segundos, pero en ese momento que se apague y prenda un led. Y lo estoy haciendo con rtos, entonces por el delay las demás tareas se pausan.
Este es un código simple usando delay:
Código:
#include <16f628A.H>
#fuses xt, put, NOWDT, INTRC_IO, NOPUT, NOPROTECT, NOBROWNOUT, NOMCLR, NOLVP, NOCPD
#use delay(clock=4000000)
#use standard_io(b)
#use standard_io(a)
#BYTE port_a= 0x05
#BYTE port_b= 0x07
void Tarea();
void main(){
set_tris_B(0x00);
set_tris_a(0xFF);
output_b(0x00);
disable_interrupts(GLOBAL);
do{
Tarea();
}while(1);
}
void Tarea()
{
if (input(pin_a0)==1){
output_high(PIN_b1);
delay_ms(3000);
output_low(PIN_b1);
delay_ms(3000);
output_high(PIN_b1);
delay_ms(3000);
output_low(PIN_b1);
delay_ms(3000);
}
}
¿Cual sería la alternativa para no usar delay, sin perjudicar a otros procesos?