Feliz año Compañeros!
Mi duda es la siguente, tengo dos "flips flops" en forma de sub-rutinas que quiero ejecutar al mismo tiempo, pero solo ocurre con la que pongo de primera (Fijense en el primer if). ¿Qué puedo hacer?
Les subo el codigo en lenguaje C:
Saludos y gracias
Mi duda es la siguente, tengo dos "flips flops" en forma de sub-rutinas que quiero ejecutar al mismo tiempo, pero solo ocurre con la que pongo de primera (Fijense en el primer if). ¿Qué puedo hacer?
Les subo el codigo en lenguaje C:
Código:
#include <16f628A.h>
#fuses XT,NOWDT,NOPROTECT
#use delay (clock=4000000)
#use standard_io(b)
#define PA0 PIN_A0
#define PA1 PIN_A1
#define PA2 PIN_A2
#define PA3 PIN_A3
#define PA4 PIN_A4
#define PB0 PIN_B0
#define PB1 PIN_B1
#define PB2 PIN_B2
#define PB3 PIN_B3
#define PB4 PIN_B4
#define PB5 PIN_B5
#define PB6 PIN_B6
#define PB7 PIN_B7
int a=0,b=0,c=0,d=0;
void bascula_volt();
void bascula_amp();
/********************************Programa*****************************************/
void main(){
set_tris_b(0b00000000);
set_tris_a(0b00011111);
output_b(0b00000000);
while(true){
if (input (PA4)==0)
{
delay_us (200);
output_high (PB7);
bascula_amp();
bascula_volt();
}
}
}
void bascula_volt()
{
while (true){
if (input(PA0)==0)
{
delay_us (200);
a=1;
b=0;
}
if (input (PA1)==0)
{
delay_us (200);
b=1;
a=0;
}
if ((b==0)&&(a==1))
{
output_high (PB0);
}
if ((b==1)&&(a==0))
{
output_low (PB0);
}
}
}
void bascula_amp ()
{
while (true){
if (input(PA2)==0)
{
delay_us (200);
c=1;
d=0;
}
if (input (PA3)==0)
{
delay_us (200);
d=1;
c=0;
}
if ((c==0)&&(d==1))
{
output_high (PB1);
}
if ((c==1)&&(d==0))
{
output_low (PB1);
}
}
}
Saludos y gracias