Hola, necesito ayuda por favor, estoy intentando decodificar un mando SONY y no puedoooo!!!! leo los tiempos y armo una secuencia pero no puedo compararla...
nose que estara malo si el calculo del tiempo o la comparacion (que se la quite al codigo porque no sirve)
Si alguien ha hecho esto antes me puede ayudar por favor... o postear un codigo porfavor.
Chau!
#include <16F84A.h>
#use delay (clock=40000000)
#fuses XT,NOWDT,NOPROTECT,NOPUT
#use fast_io(b)
#define on output_high
#define off output_low
#define in input
int1 Flanco=0;
int1 edata=0;
int16 t1=0x00,t2=0x00,tt=0x00;
float ts=0.0;
int c,t[3],s=0;
#int_ext
void handle_ext_int()
{ /* calculo de tiempo LOW */
if(Flanco==0)
{
t1=get_timer0();
ext_int_edge(L_TO_H);
Flanco=1;
}
else
{
t2=get_timer0();
ext_int_edge(H_TO_L);
Flanco=0;
set_timer0(0);
if(edata==0)
{
edata=1;
}
}
}
void main(void)
{
disable_interrupts(GLOBAL);
off(PIN_B1);
off(PIN_B2);
set_tris_b(0b000001);
set_tris_a(0b0);
setup_timer_0 (RTCC_INTERNAL|RTCC_DIV_32);
ext_int_edge(H_TO_L);
Flanco = 0;
enable_interrupts(int_ext);
enable_interrupts(global);
set_timer0(0);
for(;;)
{
for(c=0,s=0;c<=9,edata==1;)
{
if(edata==1)
{ /* generacion de secuencia en data[c] */
c++;
if(t2 > t1)
{
tt = (t2 - t1);
ts = 32* tt;
}
if((ts>2350)&&(ts<2450)) s=1;
if((ts>550)&&(ts<650)) data[c]=0;
if((ts>1150)&&(ts<1250)) data[c]=0;
}
/* aca se lee la secuencia despues de s=1...*/
}
}
}