Autor Tema: 18f452 y puerto paralelo  (Leído 1391 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado sereno

  • PIC10
  • *
  • Mensajes: 1
18f452 y puerto paralelo
« en: 08 de Diciembre de 2009, 12:11:37 »
Hola, estoy haciendo pruebas con el pic 18f452, algo muy sencillo, leo por el puerto paralelo esclavo (el D) y lo mando por el serie.
El problema está en que no detecta que las entrada en el puerto D han cambiado.
Sí que entra en la interrupción del psp cuando mando un dato pero siempre me aparece el dato que había antes de encender el PIC
No se que puedo estar haciendo mal.
Este es el codigo del programa, es muy simple,  por si vierais algo mal:
Código: [Seleccionar]
#include <18F452.h>
#use delay(clock=10M)
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
#fuses HS, PROTECT, NOLVP, PUT, NOBROWNOUT, CPD

#define PIN_BUSY PIN_B7

int dato=0, contador=0;

#INT_PSP //rutina interrupcion puerto paralelo
void Psp_Data_Rcv(){
printf(" puerto paralelo interrupcion %d ",contador);
contador++;
output_low(PIN_BUSY);
dato = INPUT_D();
printf(" int:%d ",dato);
output_high(PIN_BUSY);
}


void main() {
   enable_interrupts(GLOBAL);
        enable_interrupts(INT_RDA);
enable_interrupts(INT_PSP);

setup_adc_ports(NO_ANALOGS);
setup_psp(PSP_ENABLED);

set_tris_a(0b00000000); //todo salidas
set_tris_b(0b00000000);
set_tris_c(0b10100000);
set_tris_d(0b11111111); //todo entradas
set_tris_e(0b00000111);

output_high(PIN_BUSY);

while(true) {
printf("x");
}
}
Gracias y un saludo.


 

anything