Hola amigos de todas partes
antes que nada feliz 2007 y mucho exito para este año en todos sus proyectos.
Tengo unas cuantas dudas, estoy haciendo un programa que recibe 2 bytes por la usart en una variable long, quiero separar esta variable long y hacerla en 2 int, como puedo hacerlo en CCS PICc soy nuevo y quiero ver como se puede hacer, aparte tengo problemas con la int de la usart al parecer cuando simulo con el mplab no la hace, les anexo el codigo, espero que me puedan ayudar.
#FUSES WDT //Watch Dog Timer
#FUSES INTRC_IO //Internal RC Osc, no CLKOUT
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES BROWNOUT //Reset when brownout detected
#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#use delay(clock=4000000,RESTART_WDT)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8,restart_wdt)
#use fast_io(a)
#use fast_io(b)
#bit q4 =0x06.7
#bit q3 =0x06.6
#bit q2 =0x06.5
#bit q1 =0x06.4
#bit ledr =0x06.3
#bit ledv =0x06.0
int control;
#bit btx =control.0
#bit bobj =control.1
#bit bled =control.2
int ks=0, qs=0;
#int_RDA
RDA_isr(int &ks, int &qs)
{
int caso, datl;
long dato;
dato=getc();
caso=dato&&0xff00;
swap(caso);
switch (caso)
{
case 1: ks=datl; break;
case 2: qs=datl; break;
}
}
void main()
{
setup_timer_0(RTCC_INTERNAL);setup_wdt(WDT_2304MS);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
set_tris_a(0xff);
set_tris_b(0x06);
porta=0x00;
portb=0x00;
printf("Listo");
while(true)
{
//output_high(ledv);
ledv=1;
}
}
Saludos.