aqui mando el programa,lo que pasa con proteus a mi tambien me paso y es por eso que me confundia al poner el serial monitor y no era lo que me mandaba el proteus, esto pense,por que el proteus su virtual terminal esta como ascci,es por eso que los caracteres al poner printf("%X",0x1E), lo saca como 1E,pero en realidad lo estas viendo como ascci,
#FUSES HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=16934411)
#use rs232(baud=115200,parity=N,xmit=PIN_C6,rcv=PIN_C7)
#use standard_io(b)
#byte porta=5
char dato;
int1 flag;
//////////////////////interrupciones!!!!!!!!!!!!!!!!
#int_rda
void secuencia(){
dato=0x00;
if(kbhit()){
dato=getc();
}
}
///////////////////////
#int_EXT
void interrupcion_isr(){
flag=1;
}
//////////////////////funciones/////////////////////////
///////////////////sincronizacion////////////////
enter(){
printf("%c%c%c%c%c%c%c%c%c%c",0x1E,0x00,0x0C,0xD1,0x00,0x07,0x00,0x01,0x00,0x03);
printf("%c%c%c%c%c%c",0x00,0x01,0x60,0x00,0x72,0xD7);
}
//////////////////////////////////////////////1E 00 0C D1 00 07 00 01 00 03,00 01 60 00 72 D7
llamar(){
printf("%c%c%c%c%c%c%c%c%c%c",0x1E,0x00,0x10,0x01,0x00,0x23,0x00,0x01,0x00,0x01);
printf("%c%c%c%c%c%c%c%c%c%c",0x0A,0x00,0x39,0x00,0x38,0x00,0x31,0x00,0x31,0x00);
printf("%c%c%c%c%c%c%c%c%c%c",0x30,0x00,0x35,0x00,0x34,0x00,0x32,0x00,0x31,0x00);
printf("%c%c%c%c%c%c%c%c%c%c",0x38,0x05,0x01,0x05,0x00,0x02,0x00,0x00,0x01,0x01);
printf("%c%c%c%c",0x61,0x00,0x6E,0x21);
}
//1E 00 10 01 00 23 00 01 00 01,
//0A 00 39 00 38 00 31 00 31 00,
//30 00 35 00 34 00 32 00 31 00,
//38 05 01 05 00 02 00 00 01 01,
//61 00 6E 21
/////////////////////////////////////
cortar(){
printf("%c%c%c%c%c%c%c%c%c%c",0x1E,0x00,0x0C,0x01,0x00,0x07,0x00,0x01,0x00,0x08);
printf("%c%c%c%c%c%c",0x60,0x01,0x63,0x00,0x11,0x0E);
}
////////1E 00 0C 01 00 07 00 01 00 08 ,60 01 63 00 11 0E
/////////////////////////////////////////////programa///////////////////////////
void main(){
delay_ms(333); // Espero a que todo se estabilice e ...
disable_interrupts(global); // Inicializo el Micro y ...
disable_interrupts(int_rda);
disable_interrupts(int_ext);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
set_tris_a(0);
set_tris_c(0b10000000); // Habilito como entrada RC7 para canal RS232
set_tris_b(0xFF);
ext_int_edge(L_TO_H);
enable_interrupts(global);
enable_interrupts(int_ext);
while(1){
ext_int_edge(L_TO_H);
if (flag==1){
delay_ms(333);
flag=0;
porta=0x01;
enter();
delay_ms(100);
enter();
delay_ms(1000);
llamar();
delay_ms(1);
}else{
porta=0x00;
}
}
}
este es el programa ya medio terminado,ya que no me sale la interrupcion esterna,jejeje,habra que afinarlo
